diff --git a/README.md b/README.md index bbb3bfc..8227d14 100644 --- a/README.md +++ b/README.md @@ -75,6 +75,7 @@ Yeah. Me too! That's why this tool exists. - EraiRaws - EgyAnime - usually m3u8 (good for streaming, not so much for downloading) - FastAni +- GenoAnime - GurminderBoparai (AnimeChameleon) - itsaturday - Justdubs diff --git a/anime_downloader/sites/genoanime.py b/anime_downloader/sites/genoanime.py new file mode 100644 index 0000000..c7763b8 --- /dev/null +++ b/anime_downloader/sites/genoanime.py @@ -0,0 +1,41 @@ + +from anime_downloader.sites.anime import Anime, AnimeEpisode, SearchResult +from anime_downloader.sites import helpers + + +class GenoAnime(Anime, sitename="genoanime"): + sitename = "genoanime" + + @classmethod + def search(cls, query): + soup = helpers.soupify(helpers.post( + "https://genoanime.com/data/searchdata.php", data={"anime": query})) + + search_results = [ + SearchResult( + title=x.text, + url=x.get("href").replace("./", "https://genoanime.com/") + ) + for x in soup.select("h5 > a[href]") + ] + + return search_results + + def _scrape_episodes(self): + soup = helpers.soupify(helpers.get(self.url)) + links = [x.get("href").replace("./", "https://genoanime.com/") + for x in soup.select("a.episode[href]")] + + # Conveniently always ends in episode=1 even for movies + return [(int(x.split("=")[-1]), x) for x in links] + + def _scrape_metadata(self): + soup = helpers.soupify(helpers.get(self.url)) + self.title = soup.h3.text + + +class GenoAnimeEpisode(AnimeEpisode, sitename='genoanime'): + def _get_sources(self): + soup = helpers.soupify(helpers.get(self.url)) + soup = helpers.soupify(helpers.get(soup.iframe.get("src"))) + return [("no_extractor", soup.source.get("src"))] diff --git a/anime_downloader/sites/init.py b/anime_downloader/sites/init.py index 76647ff..1030e95 100644 --- a/anime_downloader/sites/init.py +++ b/anime_downloader/sites/init.py @@ -27,6 +27,7 @@ ALL_ANIME_SITES = [ ('erairaws', 'erai-raws', 'EraiRaws'), ('egyanime', 'egyanime', 'EgyAnime'), ('fastani', 'fastani', 'FastAni'), + ('genoanime', 'genoanime', 'GenoAnime'), ('itsaturday', 'itsaturday', 'Itsaturday'), ('justdubs', 'justdubs', 'JustDubs'), # ('kickass', 'kickass', 'KickAss'),