mirror of
https://github.com/Benexl/FastAnime.git
synced 2025-12-26 04:41:34 -08:00
108 lines
2.5 KiB
Python
108 lines
2.5 KiB
Python
from dataclasses import dataclass
|
|
from typing import List, Optional, Union
|
|
|
|
from .types import (
|
|
MediaFormat,
|
|
MediaGenre,
|
|
MediaSeason,
|
|
MediaSort,
|
|
MediaStatus,
|
|
MediaTag,
|
|
MediaType,
|
|
UserMediaListSort,
|
|
UserMediaListStatus,
|
|
)
|
|
|
|
|
|
@dataclass(frozen=True)
|
|
class MediaSearchParams:
|
|
query: Optional[str] = None
|
|
page: int = 1
|
|
per_page: Optional[int] = None
|
|
sort: Optional[Union[MediaSort, List[MediaSort]]] = None
|
|
|
|
# IDs
|
|
id_in: Optional[List[int]] = None
|
|
|
|
# Genres
|
|
genre_in: Optional[List[MediaGenre]] = None
|
|
genre_not_in: Optional[List[MediaGenre]] = None
|
|
|
|
# Tags
|
|
tag_in: Optional[List[MediaTag]] = None
|
|
tag_not_in: Optional[List[MediaTag]] = None
|
|
|
|
# Status
|
|
status_in: Optional[List[MediaStatus]] = None # Corresponds to [MediaStatus]
|
|
status: Optional[MediaStatus] = None # Corresponds to MediaStatus
|
|
status_not_in: Optional[List[MediaStatus]] = None # Corresponds to [MediaStatus]
|
|
|
|
# Popularity
|
|
popularity_greater: Optional[int] = None
|
|
popularity_lesser: Optional[int] = None
|
|
|
|
# Average Score
|
|
averageScore_greater: Optional[int] = None
|
|
averageScore_lesser: Optional[int] = None
|
|
|
|
# Season and Year
|
|
seasonYear: Optional[int] = None
|
|
season: Optional[MediaSeason] = None
|
|
|
|
# Start Date (FuzzyDateInt is often an integer representation like YYYYMMDD)
|
|
startDate_greater: Optional[int] = None
|
|
startDate_lesser: Optional[int] = None
|
|
startDate: Optional[int] = None
|
|
|
|
# End Date (FuzzyDateInt)
|
|
endDate_greater: Optional[int] = None
|
|
endDate_lesser: Optional[int] = None
|
|
|
|
# Format and Type
|
|
format_in: Optional[List[MediaFormat]] = None
|
|
type: Optional[MediaType] = None
|
|
|
|
# On List
|
|
on_list: Optional[bool] = None
|
|
|
|
|
|
@dataclass(frozen=True)
|
|
class UserMediaListSearchParams:
|
|
status: UserMediaListStatus
|
|
page: int = 1
|
|
type: Optional[MediaType] = None
|
|
sort: Optional[UserMediaListSort] = None
|
|
per_page: Optional[int] = None
|
|
|
|
|
|
@dataclass(frozen=True)
|
|
class UpdateUserMediaListEntryParams:
|
|
media_id: int
|
|
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
|