Skip to content

Commit

Permalink
deal with error when no episodes are returned by server (status code …
Browse files Browse the repository at this point in the history
…500)
  • Loading branch information
pheyvaer committed Jun 27, 2018
1 parent c6ff880 commit 35048ce
Showing 1 changed file with 28 additions and 20 deletions.
48 changes: 28 additions & 20 deletions lib/downloader.js
Original file line number Diff line number Diff line change
Expand Up @@ -183,29 +183,37 @@ function recursiveEpisodes(url, anime) {
let rawData = '';
episodes.on('data', (chunk) => { rawData += chunk; });
episodes.on('end', () => {
let parsedData;

try {
const parsedData = JSON.parse(rawData);

parsedData.data.forEach(e => {
e.anime_id = anime.id;
e.anime_slug = anime.attributes.slug;

delete e.relationships;
delete e.links;
});

//console.log(url + ' before ' + episodesArray.length);
episodesArray = episodesArray.concat(parsedData.data);
//console.log(url + ' after ' + episodesArray.length);

if (parsedData.links.next) {
recursiveEpisodes(parsedData.links.next, anime).then(a => {
deferred.resolve(episodesArray.concat(a));
});
parsedData = JSON.parse(rawData);

if (parsedData.data) {
parsedData.data.forEach(e => {
e.anime_id = anime.id;
e.anime_slug = anime.attributes.slug;

delete e.relationships;
delete e.links;
});

//console.log(url + ' before ' + episodesArray.length);
episodesArray = episodesArray.concat(parsedData.data);
//console.log(url + ' after ' + episodesArray.length);

if (parsedData.links.next) {
recursiveEpisodes(parsedData.links.next, anime).then(a => {
deferred.resolve(episodesArray.concat(a));
});
} else {
deferred.resolve(episodesArray);
}
} else {
deferred.resolve(episodesArray);
}
console.error(`No episodes are available for ${anime.attributes.slug}`);
deferred.resolve(episodesArray);
}
} catch (e) {
console.log(anime.attributes.slug);
console.error(e.message);
deferred.reject(e);
}
Expand Down

0 comments on commit 35048ce

Please sign in to comment.