diff --git a/README.md b/README.md index 92e23c9..e3642b4 100644 --- a/README.md +++ b/README.md @@ -51,6 +51,7 @@ Yeah. Me too! That's why this tool exists. - Animefreak - Gogoanime - Dubbedanime +- a2zanime - itsaturday - Animeflv - Kissanime - requires Node.js diff --git a/anime_downloader/sites/a2zanime.py b/anime_downloader/sites/a2zanime.py new file mode 100644 index 0000000..70a2b53 --- /dev/null +++ b/anime_downloader/sites/a2zanime.py @@ -0,0 +1,67 @@ +import logging +import re + +from anime_downloader.sites.anime import Anime, AnimeEpisode, SearchResult +from anime_downloader.sites import helpers + +class A2zanime(Anime, sitename='a2zanime'): + sitename = 'a2zanime' + url = f'https://{sitename}.com' + + @classmethod + def search(cls, query): + search_results = helpers.soupify(helpers.get(f'{cls.url}/search?url=search&q={query}')).select('div.main-con > a') + + title_data = { + 'data' : [] + } + for a in range(len(search_results)): + url = cls.url + search_results[a].get('href') + title = search_results[a].get('title') + 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)) + #print(soup) + elements = soup.select('div.card-bodyu > a') + + + episode_links = [] + for a in elements[::-1]: + episode_links.append('https://a2zanime.com' + 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.title')[0].text + +class A2zanimeEpisode(AnimeEpisode, sitename='a2zanime'): + def _get_sources(self): + #You can get multiple sources from this + soup = helpers.soupify(helpers.get(self.url)) + regex = r"data-video-link=\"//[^\"]*" + url = 'https:' + re.search(regex,str(soup)).group().replace('data-video-link="','') + + soup = helpers.soupify(helpers.get(url)) + url = (soup.select('div > iframe')[0].get('src')) + + soup = helpers.soupify(helpers.get(url)) + url = re.search(r'https://vidstreaming\.io/download\?[^"]*',str(soup)).group() + + soup = helpers.soupify(helpers.get(url)) + url = soup.select('div.dowload > a')[0].get('href') + + return [('no_extractor', url ,)] diff --git a/anime_downloader/sites/init.py b/anime_downloader/sites/init.py index 4021e2b..749bec0 100644 --- a/anime_downloader/sites/init.py +++ b/anime_downloader/sites/init.py @@ -13,6 +13,7 @@ ALL_ANIME_SITES = [ ('animefreak', 'animefreak', 'AnimeFreak'), ('animeflix', 'animeflix', 'AnimeFlix'), ('dubbedanime','dubbedanime','Dubbedanime'), + ('a2zanime','a2zanime','A2zanime'), ]