From e6f2bc1a20c49d01ef45efddb0f541ae4d62335c Mon Sep 17 00:00:00 2001 From: Vishnunarayan K I Date: Sat, 28 Sep 2019 21:58:47 +0530 Subject: [PATCH] fix(anistream): fallback to other version if one isn't available --- anime_downloader/sites/anistream.py | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/anime_downloader/sites/anistream.py b/anime_downloader/sites/anistream.py index b3e0d9b..f7c97c9 100644 --- a/anime_downloader/sites/anistream.py +++ b/anime_downloader/sites/anistream.py @@ -30,12 +30,23 @@ class Anistream(Anime, sitename='anistream.xyz'): version = self.config.get('version', 'subbed') soup = helpers.soupify(helpers.get(self.url)) versions = soup.select_one('.card-body').select('ul') + def get_links(version): + links = [v.attrs['href'] for v in version.select('a')][::-1] + return links + dubbed = get_links(versions[1]) + subbed = get_links(versions[0]) + # TODO: This should be handled more gracefully + # revist once config API is finalized if version.lower() == 'dubbed': - version = versions[1] + choice = dubbed + other = subbed else: - version = versions[0] - links = [v.attrs['href'] for v in version.select('a')][::-1] - return links + choice = subbed + other = dubbed + if choice: + return choice + # TODO: warn about choice not available + return other def _scrape_metadata(self): soup = helpers.soupify(helpers.get(self.url))