diff --git a/anime_downloader/config.py b/anime_downloader/config.py index a73233d..81350f0 100644 --- a/anime_downloader/config.py +++ b/anime_downloader/config.py @@ -31,6 +31,9 @@ DEFAULT_CONFIG = { 'provider': 'twist.moe', }, "siteconfig": { + 'animefrenzy': { + "version": "subbed" + }, 'animixplay': { "server": "vidstream", }, diff --git a/anime_downloader/sites/animefrenzy.py b/anime_downloader/sites/animefrenzy.py new file mode 100644 index 0000000..558331d --- /dev/null +++ b/anime_downloader/sites/animefrenzy.py @@ -0,0 +1,55 @@ +from anime_downloader.sites.anime import Anime, AnimeEpisode, SearchResult +from anime_downloader.sites import helpers +import json +import re +import logging + +logger = logging.getLogger(__name__) + +class AnimeFrenzy(Anime, sitename='animefrenzy'): + sitename='animefrenzy' + @classmethod + def search(cls, query): + r = helpers.get("https://animefrenzy.net/search", params = {"q": query}) + soup = helpers.soupify(r) + titleName = soup.select("div.conm > a.cona") + search_results = [ + SearchResult( + title = a.text, + url = 'https://animefrenzy.net/' + a.get('href') + ) + for a in titleName + ] + return(search_results) + + def _scrape_episodes(self): + soup = helpers.soupify(helpers.get(self.url)) + lang = self.config.get("version") + if lang == "subbed": + ep_list = [x for x in soup.select("div.sub1 > a")] + elif lang == "dubbed": + ep_list = [x for x in soup.select("div.dub1 > a")] + else: + logger.warning("Wrong Language Setting, Defaulting to Subbed") + ep_list = [x for x in soup.select("div.sub1 > a")] + + episodes = ["https://animefrenzy.net" + x.get("href") for x in ep_list] + + if len(episodes) == 0: + logger.warning("No Episodes available, if lang is \"dubbed\" try switching to subbed") + + return episodes[::-1] +# raise NotImplementedError + + def _scrape_metadata(self): + soup = helpers.soupify(helpers.get(self.url)) + self.title = soup.select_one("div.infodes > h1").text + +class AnimeFrenzyEpisode(AnimeEpisode, sitename='animefrenzy'): + def _get_sources(self): + logger.debug(self.url) + soup = helpers.soupify(helpers.get(self.url)) + link = soup.select_one("div.host > a.btn-video") + logger.debug(link) + return [("vidstreaming", link.get("data-video-link"))] +# raise NotImplementedError diff --git a/anime_downloader/sites/init.py b/anime_downloader/sites/init.py index a21e09b..344958e 100644 --- a/anime_downloader/sites/init.py +++ b/anime_downloader/sites/init.py @@ -31,10 +31,10 @@ ALL_ANIME_SITES = [ ('vostfree', 'vostfree', 'VostFree'), ('voiranime','voiranime','VoirAnime'), ('vidstream','vidstream','VidStream'), - ('animixplay','animixplay','AniMixPlay') + ('animixplay','animixplay','AniMixPlay'), + ('animefrenzy','animefrenzy','AnimeFrenzy') ] - def get_anime_class(url): """ Get anime class corresposing to url or name.