mirror of
https://github.com/Benexl/FastAnime.git
synced 2025-12-12 15:50:01 -08:00
feat: relations recommendation stubs
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
import logging
|
||||
from enum import Enum
|
||||
from typing import List, Optional
|
||||
from typing import Optional
|
||||
|
||||
from httpx import Client
|
||||
|
||||
@@ -8,8 +8,12 @@ from ....core.config import AnilistConfig
|
||||
from ....core.utils.graphql import (
|
||||
execute_graphql,
|
||||
)
|
||||
from ..base import (
|
||||
BaseApiClient,
|
||||
from ..base import BaseApiClient
|
||||
from ..params import (
|
||||
MediaAiringScheduleParams,
|
||||
MediaCharactersParams,
|
||||
MediaRecommendationParams,
|
||||
MediaRelationsParams,
|
||||
MediaSearchParams,
|
||||
UpdateUserMediaListEntryParams,
|
||||
UserMediaListSearchParams,
|
||||
@@ -204,6 +208,32 @@ class AniListApi(BaseApiClient):
|
||||
else False
|
||||
)
|
||||
|
||||
def get_recommendation_for(self, params: MediaRecommendationParams):
|
||||
variables = {"mediaRecommendationId": params.id, "page": params.page}
|
||||
response = execute_graphql(
|
||||
ANILIST_ENDPOINT, self.http_client, gql.GET_RECOMMENDATIONS, variables
|
||||
)
|
||||
return response
|
||||
|
||||
def get_characters_of(self, params: MediaCharactersParams):
|
||||
variables = {"id": params.id}
|
||||
response = execute_graphql(
|
||||
ANILIST_ENDPOINT, self.http_client, gql.GET_CHARACTERS, variables
|
||||
)
|
||||
return response
|
||||
|
||||
def get_related_anime_for(self, params: MediaRelationsParams):
|
||||
variables = {"id": params.id}
|
||||
response = execute_graphql(
|
||||
ANILIST_ENDPOINT, self.http_client, gql.GET_MEDIA_RELATIONS, variables
|
||||
)
|
||||
|
||||
def get_airing_schedule_for(self, params: MediaAiringScheduleParams):
|
||||
variables = {"id": params.id}
|
||||
response = execute_graphql(
|
||||
ANILIST_ENDPOINT, self.http_client, gql.GET_AIRING_SCHEDULE, variables
|
||||
)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
from httpx import Client
|
||||
|
||||
@@ -21,6 +21,7 @@ query ($id: Int) {
|
||||
}
|
||||
description
|
||||
episodes
|
||||
duration
|
||||
trailer {
|
||||
site
|
||||
id
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
query ($mediaRecommendationId: Int, $page: Int) {
|
||||
Page(perPage: 50, page: $page) {
|
||||
recommendations(mediaRecommendationId: $mediaRecommendationId) {
|
||||
query ($id: Int, $page: Int,$per_page:Int) {
|
||||
Page(perPage: $per_page, page: $page) {
|
||||
recommendations(mediaRecommendationId: $id) {
|
||||
media {
|
||||
id
|
||||
idMal
|
||||
@@ -18,13 +18,9 @@ query ($mediaRecommendationId: Int, $page: Int) {
|
||||
medium
|
||||
large
|
||||
}
|
||||
mediaListEntry {
|
||||
status
|
||||
id
|
||||
progress
|
||||
}
|
||||
description
|
||||
episodes
|
||||
duration # Added duration here
|
||||
trailer {
|
||||
site
|
||||
id
|
||||
|
||||
@@ -81,3 +81,27 @@ class UpdateUserMediaListEntryParams:
|
||||
status: Optional[UserMediaListStatus] = None
|
||||
progress: Optional[str] = None
|
||||
score: Optional[float] = None
|
||||
|
||||
|
||||
@dataclass(frozen=True)
|
||||
class MediaRecommendationParams:
|
||||
id: int
|
||||
page: Optional[int] = 1
|
||||
per_page: Optional[int] = None
|
||||
|
||||
|
||||
@dataclass(frozen=True)
|
||||
class MediaCharactersParams:
|
||||
id: int
|
||||
|
||||
|
||||
@dataclass(frozen=True)
|
||||
class MediaRelationsParams:
|
||||
id: int
|
||||
# page: Optional[int] = 1
|
||||
# per_page: Optional[int] = None
|
||||
|
||||
|
||||
@dataclass(frozen=True)
|
||||
class MediaAiringScheduleParams:
|
||||
id: int
|
||||
|
||||
Reference in New Issue
Block a user