mirror of
https://github.com/Benexl/FastAnime.git
synced 2025-12-29 06:03:29 -08:00
chore: reorganize codebase to make anilist top level
This commit is contained in:
3
fastanime/anilist.py
Normal file
3
fastanime/anilist.py
Normal file
@@ -0,0 +1,3 @@
|
||||
from .libs.anilist.api import AniListApi
|
||||
|
||||
AniList = AniListApi()
|
||||
@@ -1,6 +1,6 @@
|
||||
import click
|
||||
|
||||
from ....libs.anilist.anilist import AniList
|
||||
from ....anilist import AniList
|
||||
from ...interfaces.anilist_interfaces import select_anime
|
||||
from ...utils.tools import QueryDict
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import click
|
||||
|
||||
from ....libs.anilist.anilist import AniList
|
||||
from ....anilist import AniList
|
||||
from ...interfaces.anilist_interfaces import select_anime
|
||||
from ...utils.tools import QueryDict
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@ import random
|
||||
|
||||
import click
|
||||
|
||||
from ....libs.anilist.anilist import AniList
|
||||
from ....anilist import AniList
|
||||
from ...interfaces.anilist_interfaces import select_anime
|
||||
from ...utils.tools import QueryDict
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import click
|
||||
|
||||
from ....libs.anilist.anilist import AniList
|
||||
from ....anilist import AniList
|
||||
from ...interfaces.anilist_interfaces import select_anime
|
||||
from ...utils.tools import QueryDict
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import click
|
||||
|
||||
from ....libs.anilist.anilist import AniList
|
||||
from ....anilist import AniList
|
||||
from ...interfaces.anilist_interfaces import select_anime
|
||||
from ...utils.tools import QueryDict
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import click
|
||||
|
||||
from ....libs.anilist.anilist import AniList
|
||||
from ....anilist import AniList
|
||||
from ...interfaces.anilist_interfaces import select_anime
|
||||
from ...utils.tools import QueryDict
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import click
|
||||
|
||||
from ....libs.anilist.anilist import AniList
|
||||
from ....anilist import AniList
|
||||
from ...interfaces.anilist_interfaces import select_anime
|
||||
from ...utils.tools import QueryDict
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import click
|
||||
|
||||
from ....libs.anilist.anilist import AniList
|
||||
from ....anilist import AniList
|
||||
from ...interfaces.anilist_interfaces import select_anime
|
||||
from ...utils.tools import QueryDict
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@ from rich import print
|
||||
from rich.prompt import Prompt
|
||||
|
||||
from ... import USER_CONFIG_PATH
|
||||
from ...libs.anilist.anilist import AniList
|
||||
from ...anilist import AniList
|
||||
from ...libs.anilist.anilist_data_schema import AnilistBaseMediaDataSchema
|
||||
from ...libs.anime_provider.types import Anime, SearchResult, Server
|
||||
from ...libs.fzf import fzf
|
||||
|
||||
@@ -23,14 +23,13 @@ from .queries_graphql import (
|
||||
# from kivy.network.urlrequest import UrlRequestRequests
|
||||
|
||||
|
||||
class AniList:
|
||||
class AniListApi:
|
||||
"""
|
||||
This class provides an abstraction for the anilist api
|
||||
"""
|
||||
|
||||
@classmethod
|
||||
def get_data(
|
||||
cls, query: str, variables: dict = {}
|
||||
self, query: str, variables: dict = {}
|
||||
) -> tuple[bool, AnilistDataSchema]:
|
||||
"""
|
||||
The core abstraction for getting data from the anilist api
|
||||
@@ -43,7 +42,7 @@ class AniList:
|
||||
variables to pass to the anilist api
|
||||
"""
|
||||
url = "https://graphql.anilist.co"
|
||||
# req=UrlRequestRequests(url, cls.got_data,)
|
||||
# req=UrlRequestRequests(url, self.got_data,)
|
||||
try:
|
||||
# TODO: check if data is as expected
|
||||
response = requests.post(
|
||||
@@ -68,9 +67,8 @@ class AniList:
|
||||
except Exception as e:
|
||||
return (False, {"Error": f"{e}"}) # type: ignore
|
||||
|
||||
@classmethod
|
||||
def search(
|
||||
cls,
|
||||
self,
|
||||
query: str | None = None,
|
||||
sort: str | None = None,
|
||||
genre_in: list[str] | None = None,
|
||||
@@ -99,86 +97,75 @@ class AniList:
|
||||
for key, val in list(locals().items())[1:]:
|
||||
if val is not None and key not in ["variables"]:
|
||||
variables[key] = val
|
||||
search_results = cls.get_data(search_query, variables=variables)
|
||||
search_results = self.get_data(search_query, variables=variables)
|
||||
return search_results
|
||||
|
||||
@classmethod
|
||||
def get_anime(cls, id: int):
|
||||
def get_anime(self, id: int):
|
||||
"""
|
||||
Gets a single anime by a valid anilist anime id
|
||||
"""
|
||||
variables = {"id": id}
|
||||
return cls.get_data(anime_query, variables)
|
||||
return self.get_data(anime_query, variables)
|
||||
|
||||
@classmethod
|
||||
def get_trending(cls, *_, **kwargs):
|
||||
def get_trending(self, *_, **kwargs):
|
||||
"""
|
||||
Gets the currently trending anime
|
||||
"""
|
||||
trending = cls.get_data(trending_query)
|
||||
trending = self.get_data(trending_query)
|
||||
return trending
|
||||
|
||||
@classmethod
|
||||
def get_most_favourite(cls, *_, **kwargs):
|
||||
def get_most_favourite(self, *_, **kwargs):
|
||||
"""
|
||||
Gets the most favoured anime on anilist
|
||||
"""
|
||||
most_favourite = cls.get_data(most_favourite_query)
|
||||
most_favourite = self.get_data(most_favourite_query)
|
||||
return most_favourite
|
||||
|
||||
@classmethod
|
||||
def get_most_scored(cls, *_, **kwargs):
|
||||
def get_most_scored(self, *_, **kwargs):
|
||||
"""
|
||||
Gets most scored anime on anilist
|
||||
"""
|
||||
most_scored = cls.get_data(most_scored_query)
|
||||
most_scored = self.get_data(most_scored_query)
|
||||
return most_scored
|
||||
|
||||
@classmethod
|
||||
def get_most_recently_updated(cls, *_, **kwargs):
|
||||
def get_most_recently_updated(self, *_, **kwargs):
|
||||
"""
|
||||
Gets most recently updated anime from anilist
|
||||
"""
|
||||
most_recently_updated = cls.get_data(most_recently_updated_query)
|
||||
most_recently_updated = self.get_data(most_recently_updated_query)
|
||||
return most_recently_updated
|
||||
|
||||
@classmethod
|
||||
def get_most_popular(cls, *_, **kwargs):
|
||||
def get_most_popular(self):
|
||||
"""
|
||||
Gets most popular anime on anilist
|
||||
"""
|
||||
most_popular = cls.get_data(most_popular_query)
|
||||
most_popular = self.get_data(most_popular_query)
|
||||
return most_popular
|
||||
|
||||
# FIXME:dont know why its not giving useful data
|
||||
@classmethod
|
||||
def get_recommended_anime_for(cls, id: int, *_, **kwargs):
|
||||
recommended_anime = cls.get_data(recommended_query)
|
||||
def get_recommended_anime_for(self, id: int, *_, **kwargs):
|
||||
recommended_anime = self.get_data(recommended_query)
|
||||
return recommended_anime
|
||||
|
||||
@classmethod
|
||||
def get_charcters_of(cls, id: int, *_, **kwargs):
|
||||
def get_charcters_of(self, id: int, *_, **kwargs):
|
||||
variables = {"id": id}
|
||||
characters = cls.get_data(anime_characters_query, variables)
|
||||
characters = self.get_data(anime_characters_query, variables)
|
||||
return characters
|
||||
|
||||
@classmethod
|
||||
def get_related_anime_for(cls, id: int, *_, **kwargs):
|
||||
def get_related_anime_for(self, id: int, *_, **kwargs):
|
||||
variables = {"id": id}
|
||||
related_anime = cls.get_data(anime_relations_query, variables)
|
||||
related_anime = self.get_data(anime_relations_query, variables)
|
||||
return related_anime
|
||||
|
||||
@classmethod
|
||||
def get_airing_schedule_for(cls, id: int, *_, **kwargs):
|
||||
def get_airing_schedule_for(self, id: int, *_, **kwargs):
|
||||
variables = {"id": id}
|
||||
airing_schedule = cls.get_data(airing_schedule_query, variables)
|
||||
airing_schedule = self.get_data(airing_schedule_query, variables)
|
||||
return airing_schedule
|
||||
|
||||
@classmethod
|
||||
def get_upcoming_anime(cls, page: int = 1, *_, **kwargs):
|
||||
def get_upcoming_anime(self, page: int = 1, *_, **kwargs):
|
||||
"""
|
||||
Gets upcoming anime from anilist
|
||||
"""
|
||||
variables = {"page": page}
|
||||
upcoming_anime = cls.get_data(upcoming_anime_query, variables)
|
||||
upcoming_anime = self.get_data(upcoming_anime_query, variables)
|
||||
return upcoming_anime
|
||||
Reference in New Issue
Block a user