From bcdf8eaffde10ed5ff55f2a6a80b70c3f91da759 Mon Sep 17 00:00:00 2001 From: Blatzar <46196380+Blatzar@users.noreply.github.com> Date: Sat, 14 Mar 2020 15:08:49 +0000 Subject: [PATCH] added animeout.py in the correct directory --- anime_downloader/sites/animeout.py | 55 ++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 anime_downloader/sites/animeout.py diff --git a/anime_downloader/sites/animeout.py b/anime_downloader/sites/animeout.py new file mode 100644 index 0000000..bcb9fdd --- /dev/null +++ b/anime_downloader/sites/animeout.py @@ -0,0 +1,55 @@ +import logging +import re + +from anime_downloader.sites.anime import Anime, AnimeEpisode, SearchResult +from anime_downloader.sites import helpers + +class AnimeOut(Anime, sitename='animeout'): + sitename = 'animeout' + url = f'https://{sitename}.xyz/' + @classmethod + def search(cls, query): + search_results = helpers.soupify(helpers.get(cls.url, + params={'s': query})).select('h3.post-title > a') + + title_data = { + 'data' : [] + } + for a in range(len(search_results)): + url = search_results[a].get('href') + title = search_results[a].text + data = { + 'url' : url, + 'title' : title, + } + title_data['data'].append(data) + + search_results = [ + SearchResult( + title=result["title"], + url=result["url"]) + for result in title_data.get('data', []) + ] + return(search_results) + + def _scrape_episodes(self): + soup = helpers.soupify(helpers.get(self.url)) + elements = soup.select('div.article-content > p > a') + + episode_links = [] + for a in elements: + if 'Direct Download' in a.text: + episode_links.append(a.get('href')) + return [a for a in episode_links] + + def _scrape_metadata(self): + soup = helpers.soupify(helpers.get(self.url)) + self.title = soup.select('h1.page-title')[0].text + +class AnimeOutEpisode(AnimeEpisode, sitename='animeout'): + def _get_sources(self): + soup = helpers.soupify(helpers.get(self.url)) + link = soup.select('div.Center > p > h2 > a')[0].get('href') + script = helpers.soupify(helpers.get(link)).select('script')[2].text + url = re.search(r'http[^"]*',script).group() + return [('no_extractor', url,)]