From 317fee916b128184faadef71dcf85667cf727a6e Mon Sep 17 00:00:00 2001 From: Benexl Date: Mon, 7 Jul 2025 13:49:25 +0300 Subject: [PATCH] chore: remove api from project --- fastanime/api/__init__.py | 1 - fastanime/api/api.py | 93 --------------------------------------- 2 files changed, 94 deletions(-) delete mode 100644 fastanime/api/__init__.py delete mode 100644 fastanime/api/api.py diff --git a/fastanime/api/__init__.py b/fastanime/api/__init__.py deleted file mode 100644 index 8b13789..0000000 --- a/fastanime/api/__init__.py +++ /dev/null @@ -1 +0,0 @@ - diff --git a/fastanime/api/api.py b/fastanime/api/api.py deleted file mode 100644 index e148f75..0000000 --- a/fastanime/api/api.py +++ /dev/null @@ -1,93 +0,0 @@ -from typing import Literal - -from fastapi import FastAPI -from requests import post -from thefuzz import fuzz - -from ..BaseAnimeProvider import BaseAnimeProvider -from ..Utility.data import anime_normalizer - -app = FastAPI() -anime_provider = BaseAnimeProvider("allanime", "true", "true") -ANILIST_ENDPOINT = "https://graphql.anilist.co" - - -@app.get("/search") -def search_for_anime(title: str, translation_type: Literal["dub", "sub"] = "sub"): - return anime_provider.search_for_anime(title, translation_type) - - -@app.get("/anime/{anime_id}") -def get_anime(anime_id: str): - return anime_provider.get_anime(anime_id) - - -@app.get("/anime/{anime_id}/watch") -def get_episode_streams( - anime_id: str, episode: str, translation_type: Literal["sub", "dub"] -): - return anime_provider.get_episode_streams(anime_id, episode, translation_type) - - -def get_anime_by_anilist_id(anilist_id: int): - query = f""" - query {{ - Media(id: {anilist_id}) {{ - id - title {{ - romaji - english - native - }} - synonyms - episodes - duration - }} - }} - """ - response = post(ANILIST_ENDPOINT, json={"query": query}).json() - return response["data"]["Media"] - - -@app.get("/watch/{anilist_id}") -def get_episode_streams_by_anilist_id( - anilist_id: int, episode: str, translation_type: Literal["sub", "dub"] -): - anime = get_anime_by_anilist_id(anilist_id) - if not anime: - return - if search_results := anime_provider.search_for_anime( - str(anime["title"]["romaji"] or anime["title"]["english"]), translation_type - ): - if not search_results["results"]: - return - - def match_title(possible_user_requested_anime_title): - possible_user_requested_anime_title = anime_normalizer.get( - possible_user_requested_anime_title, possible_user_requested_anime_title - ) - title_a = str(anime["title"]["romaji"]) - title_b = str(anime["title"]["english"]) - percentage_ratio = max( - *[ - fuzz.ratio( - title.lower(), possible_user_requested_anime_title.lower() - ) - for title in anime["synonyms"] - ], - fuzz.ratio( - title_a.lower(), possible_user_requested_anime_title.lower() - ), - fuzz.ratio( - title_b.lower(), possible_user_requested_anime_title.lower() - ), - ) - return percentage_ratio - - provider_anime = max( - search_results["results"], key=lambda x: match_title(x["title"]) - ) - anime_provider.get_anime(provider_anime["id"]) - return anime_provider.get_episode_streams( - provider_anime["id"], episode, translation_type - )