From eb08bea3c6a4f0a15717bf709180ed69f55b30c1 Mon Sep 17 00:00:00 2001 From: AbdullahM0hamed <25087116+AbdullahM0hamed@users.noreply.github.com> Date: Fri, 19 Feb 2021 00:47:41 +0000 Subject: [PATCH] Add quality selection to animeout --- anime_downloader/sites/animeout.py | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/anime_downloader/sites/animeout.py b/anime_downloader/sites/animeout.py index 4d3209a..d8aad28 100644 --- a/anime_downloader/sites/animeout.py +++ b/anime_downloader/sites/animeout.py @@ -13,7 +13,8 @@ class AnimeOut(Anime, sitename='animeout'): @classmethod def search(cls, query): - search_results = helpers.soupify(helpers.get(cls.url, params={'s': query})).select('h3.post-title > a') + search_results = helpers.soupify(helpers.get( + cls.url, params={'s': query})).select('h3.post-title > a') # Removes the unneded metadata from the title # Used by MAL matcher clean_title_regex = r'\(.*?\)' @@ -31,7 +32,19 @@ class AnimeOut(Anime, sitename='animeout'): # Only uses the direct download links for consistency. soup = helpers.soupify(helpers.get(self.url)) elements = soup.select('article.post a') - return [i.get('href') for i in elements if 'Direct Download' in i.text] + episodes = [i.get('href') + for i in elements if 'Direct Download' in i.text] + + filters = [self.quality, "1080p", "720p"] + quality_filtered = [] + + for i in range(3): + if not quality_filtered: + quality_filtered = [x for x in episodes if filters[i] in x] + else: + break + + return episodes if not quality_filtered else quality_filtered def _scrape_metadata(self): soup = helpers.soupify(helpers.get(self.url))