diff --git a/fastanime/AnimeProvider.py b/fastanime/AnimeProvider.py index 5fb7064..50719b6 100644 --- a/fastanime/AnimeProvider.py +++ b/fastanime/AnimeProvider.py @@ -62,11 +62,7 @@ class AnimeProvider: ) def search_for_anime( - self, - user_query, - translation_type, - nsfw=True, - unknown=True, + self, search_keywords, translation_type, **kwargs ) -> "SearchResults | None": """core abstraction over all providers search functionality @@ -82,7 +78,7 @@ class AnimeProvider: """ anime_provider = self.anime_provider results = anime_provider.search_for_anime( - user_query, translation_type, nsfw, unknown + search_keywords, translation_type, **kwargs ) return results @@ -90,6 +86,7 @@ class AnimeProvider: def get_anime( self, anime_id: str, + **kwargs, ) -> "Anime | None": """core abstraction over getting info of an anime from all providers @@ -101,7 +98,7 @@ class AnimeProvider: [TODO:return] """ anime_provider = self.anime_provider - results = anime_provider.get_anime(anime_id) + results = anime_provider.get_anime(anime_id, **kwargs) return results @@ -110,6 +107,7 @@ class AnimeProvider: anime_id, episode: str, translation_type: str, + **kwargs, ) -> "Iterator[Server] | None": """core abstractions for getting juicy streams from all providers @@ -124,6 +122,6 @@ class AnimeProvider: """ anime_provider = self.anime_provider results = anime_provider.get_episode_streams( - anime_id, episode, translation_type + anime_id, episode, translation_type, **kwargs ) return results diff --git a/fastanime/cli/interfaces/anilist_interfaces.py b/fastanime/cli/interfaces/anilist_interfaces.py index f154dad..d22cbe1 100644 --- a/fastanime/cli/interfaces/anilist_interfaces.py +++ b/fastanime/cli/interfaces/anilist_interfaces.py @@ -1372,12 +1372,9 @@ def media_actions_menu( media_actions_menu(config, fastanime_runtime_state) return + relations = relations[1]["data"]["Page"]["relations"] # pyright:ignore fastanime_runtime_state.anilist_results_data = { - "data": { - "Page": { - "media": relations[1]["data"]["Media"]["relations"]["nodes"] - } # pyright:ignore - } + "data": {"Page": {"media": relations["nodes"]}} # pyright:ignore } anilist_results_menu(config, fastanime_runtime_state) diff --git a/fastanime/libs/anime_provider/allanime/api.py b/fastanime/libs/anime_provider/allanime/api.py index 32bc9ba..536f4ad 100644 --- a/fastanime/libs/anime_provider/allanime/api.py +++ b/fastanime/libs/anime_provider/allanime/api.py @@ -81,11 +81,11 @@ class AllAnime(AnimeProvider): search_keywords: str, translation_type: str, *, + nsfw=DEFAULT_NSFW, + unknown=DEFAULT_UNKNOWN, limit=DEFAULT_PER_PAGE, page=DEFAULT_PAGE, country_of_origin=DEFAULT_COUNTRY_OF_ORIGIN, - nsfw=DEFAULT_NSFW, - unknown=DEFAULT_UNKNOWN, **kwargs, ): """ @@ -134,7 +134,7 @@ class AllAnime(AnimeProvider): } @debug_provider - def get_anime(self, id: str): + def get_anime(self, id: str, **kwargs): """ Fetches anime details using the provided show ID. Args: @@ -179,7 +179,13 @@ class AllAnime(AnimeProvider): )["episode"] @debug_provider - def _get_server(self, embed, anime_title: str, allanime_episode: "AllAnimeEpisode"): + def _get_server( + self, + embed, + anime_title: str, + allanime_episode: "AllAnimeEpisode", + episode_number, + ): """ Retrieves the streaming server information for a given anime episode based on the provided embed data. Args: @@ -384,7 +390,7 @@ class AllAnime(AnimeProvider): @debug_provider def get_episode_streams( - self, anime_id, episode_number: str, translation_type="sub" + self, anime_id, episode_number: str, translation_type="sub", **kwargs ): """ Retrieve streaming information for a specific episode of an anime. @@ -425,7 +431,9 @@ class AllAnime(AnimeProvider): ): logger.debug(f"Found {embed['sourceName']} but ignoring") continue - if server := self._get_server(embed, anime_title, allanime_episode): + if server := self._get_server( + embed, anime_title, allanime_episode, episode_number + ): yield server diff --git a/fastanime/libs/anime_provider/animepahe/api.py b/fastanime/libs/anime_provider/animepahe/api.py index 3d7c7be..bb268d6 100644 --- a/fastanime/libs/anime_provider/animepahe/api.py +++ b/fastanime/libs/anime_provider/animepahe/api.py @@ -32,7 +32,7 @@ class AnimePahe(AnimeProvider): HEADERS = REQUEST_HEADERS @debug_provider - def search_for_anime(self, search_keywords: str, *args, **kwargs): + def search_for_anime(self, search_keywords: str, translation_type, **kwargs): response = self.session.get( ANIMEPAHE_ENDPOINT, params={"m": "search", "q": search_keywords} ) @@ -111,7 +111,7 @@ class AnimePahe(AnimeProvider): return data @debug_provider - def get_anime(self, session_id: str, *args): + def get_anime(self, session_id: str, **kwargs): page = 1 if d := self.store.get(str(session_id), "search_result"): anime_result: "AnimePaheSearchResult" = d @@ -211,7 +211,7 @@ class AnimePahe(AnimeProvider): @debug_provider def get_episode_streams( - self, anime_id, episode_number: str, translation_type, *args + self, anime_id, episode_number: str, translation_type, **kwargs ): anime_title = "" # extract episode details from memory diff --git a/fastanime/libs/anime_provider/hianime/api.py b/fastanime/libs/anime_provider/hianime/api.py index f206959..7d10bc9 100644 --- a/fastanime/libs/anime_provider/hianime/api.py +++ b/fastanime/libs/anime_provider/hianime/api.py @@ -43,7 +43,7 @@ class HiAnime(AnimeProvider): # HEADERS = {"Referer": "https://hianime.to/home"} @debug_provider - def search_for_anime(self, anime_title: str, *args): + def search_for_anime(self, anime_title: str, translation_type, **kwargs): query = quote_plus(anime_title) url = f"https://hianime.to/search?keyword={query}" response = self.session.get(url) @@ -91,7 +91,7 @@ class HiAnime(AnimeProvider): return {"pageInfo": {}, "results": results} @debug_provider - def get_anime(self, hianime_id, *args): + def get_anime(self, hianime_id, **kwargs): anime_result = {} if d := self.store.get(str(hianime_id), "search_result"): anime_result = d @@ -144,7 +144,7 @@ class HiAnime(AnimeProvider): } @debug_provider - def get_episode_streams(self, anime_id, episode, translation_type, *args): + def get_episode_streams(self, anime_id, episode, translation_type, **kwargs): if d := self.store.get(str(anime_id), "anime_info"): episodes_info = d episode_details = [