fix download
This commit is contained in:
@@ -912,22 +912,69 @@ class AniWorldApp {
|
||||
|
||||
try {
|
||||
const folders = Array.from(this.selectedSeries);
|
||||
let totalEpisodesAdded = 0;
|
||||
let failedSeries = [];
|
||||
|
||||
const response = await this.makeAuthenticatedRequest('/api/anime/download', {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
},
|
||||
body: JSON.stringify({ folders })
|
||||
});
|
||||
// For each selected series, get its missing episodes and add to queue
|
||||
for (const folder of folders) {
|
||||
const serie = this.seriesData.find(s => s.folder === folder);
|
||||
if (!serie || !serie.episodeDict) {
|
||||
failedSeries.push(folder);
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!response) return;
|
||||
const data = await response.json();
|
||||
// Convert episodeDict format {season: [episodes]} to episode identifiers
|
||||
const episodes = [];
|
||||
for (const [season, episodeNumbers] of Object.entries(serie.episodeDict)) {
|
||||
if (Array.isArray(episodeNumbers)) {
|
||||
for (const episode of episodeNumbers) {
|
||||
episodes.push({
|
||||
season: parseInt(season),
|
||||
episode: episode
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (data.status === 'success') {
|
||||
this.showToast('Download started', 'success');
|
||||
if (episodes.length === 0) {
|
||||
continue;
|
||||
}
|
||||
|
||||
// Add episodes to download queue
|
||||
const response = await this.makeAuthenticatedRequest('/api/queue/add', {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
},
|
||||
body: JSON.stringify({
|
||||
serie_id: serie.key,
|
||||
serie_name: serie.name,
|
||||
episodes: episodes,
|
||||
priority: 'NORMAL'
|
||||
})
|
||||
});
|
||||
|
||||
if (!response) {
|
||||
failedSeries.push(folder);
|
||||
continue;
|
||||
}
|
||||
|
||||
const data = await response.json();
|
||||
if (data.status === 'success') {
|
||||
totalEpisodesAdded += episodes.length;
|
||||
} else {
|
||||
failedSeries.push(folder);
|
||||
}
|
||||
}
|
||||
|
||||
// Show result message
|
||||
if (totalEpisodesAdded > 0) {
|
||||
const message = failedSeries.length > 0
|
||||
? `Added ${totalEpisodesAdded} episode(s) to queue (${failedSeries.length} series failed)`
|
||||
: `Added ${totalEpisodesAdded} episode(s) to download queue`;
|
||||
this.showToast(message, 'success');
|
||||
} else {
|
||||
this.showToast(`Download error: ${data.message}`, 'error');
|
||||
this.showToast('Failed to add episodes to queue', 'error');
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('Download error:', error);
|
||||
|
||||
Reference in New Issue
Block a user