diff --git a/fastanime/libs/anime_provider/aniwave/api.py b/fastanime/libs/anime_provider/aniwave/api.py deleted file mode 100644 index 087556a..0000000 --- a/fastanime/libs/anime_provider/aniwave/api.py +++ /dev/null @@ -1,65 +0,0 @@ -from html.parser import HTMLParser - -from yt_dlp.utils import clean_html, get_element_by_class, get_elements_by_class - -from ..base_provider import AnimeProvider -from .constants import ANIWAVE_BASE, SEARCH_HEADERS - - -class ParseAnchorAndImgTag(HTMLParser): - def __init__(self): - super().__init__() - self.img_tag = None - self.a_tag = None - - def handle_starttag(self, tag, attrs): - if tag == "img": - self.img_tag = {attr[0]: attr[1] for attr in attrs} - if tag == "a": - self.a_tag = {attr[0]: attr[1] for attr in attrs} - - -class AniWaveApi(AnimeProvider): - def search_for_anime(self, anime_title, *args): - self.session.headers.update(SEARCH_HEADERS) - search_url = f"{ANIWAVE_BASE}/filter" - params = {"keyword": anime_title} - res = self.session.get(search_url, params=params) - search_page = res.text - search_results_html_list = get_elements_by_class("item", search_page) - results = [] - for result_html in search_results_html_list: - aniposter_html = get_element_by_class("poster", result_html) - episode_html = get_element_by_class("sub", aniposter_html) - episodes = clean_html(episode_html) or 12 - if not aniposter_html: - return - parser = ParseAnchorAndImgTag() - parser.feed(aniposter_html) - image_data = parser.img_tag - anime_link_data = parser.a_tag - if not image_data or not anime_link_data: - continue - - episodes = int(episodes) - - # finally!! - image_link = image_data["src"] - title = image_data["alt"] - anime_id = anime_link_data["href"] - - results.append( - { - "availableEpisodes": list(range(1, episodes)), - "id": anime_id, - "title": title, - "poster": image_link, - } - ) - self.search_results = results - return {"pageInfo": {}, "results": results} - - def get_anime(self, anime_id, *args): - anime_page_url = f"{ANIWAVE_BASE}{anime_id}" - self.session.get(anime_page_url) - # TODO: to be continued; mostly js so very difficult diff --git a/fastanime/libs/anime_provider/aniwave/constants.py b/fastanime/libs/anime_provider/aniwave/constants.py deleted file mode 100644 index 1549c0e..0000000 --- a/fastanime/libs/anime_provider/aniwave/constants.py +++ /dev/null @@ -1,20 +0,0 @@ -ANIWAVE_BASE = "https://aniwave.to" - -SEARCH_HEADERS = { - "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/png,image/svg+xml,*/*;q=0.8", - "Accept-Language": "en-US,en;q=0.5", - # 'Accept-Encoding': 'Utf-8', - "Referer": "https://aniwave.to/filter", - "DNT": "1", - "Upgrade-Insecure-Requests": "1", - "Sec-Fetch-Dest": "document", - "Sec-Fetch-Mode": "navigate", - "Sec-Fetch-Site": "same-origin", - "Sec-Fetch-User": "?1", - "Connection": "keep-alive", - "Alt-Used": "aniwave.to", - # 'Cookie': '__pf=1; usertype=guest; session=BElk9DJdO3sFdDmLiGxuNiM9eGYO1TjktGsmdwjV', - "Priority": "u=0, i", - # Requests doesn't support trailers - # 'TE': 'trailers', -}