mirror of
https://github.com/Benexl/FastAnime.git
synced 2026-01-02 16:00:01 -08:00
47 lines
1.1 KiB
Python
47 lines
1.1 KiB
Python
from dataclasses import dataclass
|
|
from typing import Literal, Optional
|
|
|
|
|
|
@dataclass(frozen=True)
|
|
class SearchParams:
|
|
"""Parameters for searching anime."""
|
|
|
|
query: str
|
|
|
|
# pagination and sorting
|
|
current_page: int = 1
|
|
page_limit: int = 20
|
|
sort_by: str = "relevance"
|
|
order: Literal["asc", "desc"] = "desc"
|
|
|
|
# filters
|
|
translation_type: Literal["sub", "dub"] = "sub"
|
|
genre: Optional[str] = None
|
|
year: Optional[int] = None
|
|
status: Optional[str] = None
|
|
allow_nsfw: bool = True
|
|
allow_unknown: bool = True
|
|
country_of_origin: Optional[str] = None
|
|
|
|
|
|
@dataclass(frozen=True)
|
|
class EpisodeStreamsParams:
|
|
"""Parameters for fetching episode streams."""
|
|
|
|
query: str
|
|
anime_id: str
|
|
episode: str
|
|
translation_type: Literal["sub", "dub"] = "sub"
|
|
server: Optional[str] = None
|
|
quality: Literal["1080", "720", "480", "360"] = "720"
|
|
subtitles: bool = True
|
|
|
|
|
|
@dataclass(frozen=True)
|
|
class AnimeParams:
|
|
"""Parameters for fetching anime details."""
|
|
|
|
id: str
|
|
# HACK: for the sake of providers which require previous data
|
|
query: str
|