From edff93917efaa1b2619b370fc917138ad2f25997 Mon Sep 17 00:00:00 2001 From: Zoe Roux Date: Sat, 18 Mar 2023 17:42:55 +0900 Subject: [PATCH] Create python types --- scanner/providers/types/genre.py | 22 ++++++++++++++++++++++ scanner/providers/types/movie.py | 30 ++++++++++++++++++++++++++++++ scanner/providers/types/status.py | 7 +++++++ 3 files changed, 59 insertions(+) create mode 100644 scanner/providers/types/genre.py create mode 100644 scanner/providers/types/movie.py create mode 100644 scanner/providers/types/status.py diff --git a/scanner/providers/types/genre.py b/scanner/providers/types/genre.py new file mode 100644 index 00000000..1c1d9b18 --- /dev/null +++ b/scanner/providers/types/genre.py @@ -0,0 +1,22 @@ +from enum import Enum + + +class Genre(Enum): + ACTION = "action" + ADVENTURE = "adventure" + ANIMATION = "animation" + COMEDY = "comedy" + CRIME = "crime" + DOCUMENTARY = "documentary" + DRAMA = "drama" + FAMILY = "family" + FANTASY = "fantasy" + HISTORY = "history" + HORROR = "horror" + MUSIC = "music" + MYSTERY = "mystery" + ROMANCE = "romance" + SCIENCE_FICTION = "scienceFiction" + THRILLER = "thriller" + WAR = "war" + WESTERN = "western" diff --git a/scanner/providers/types/movie.py b/scanner/providers/types/movie.py new file mode 100644 index 00000000..0aae2a32 --- /dev/null +++ b/scanner/providers/types/movie.py @@ -0,0 +1,30 @@ +from dataclasses import dataclass, field +from datetime import datetime +from typing import Optional +from .genre import Genre +from .status import Status + +@dataclass +class MovieTranslation: + name: str + keywords: list[str] = field(default_factory=list) + overview: Optional[str] = None + +@dataclass +class Movie: + aliases: list[str] = field(default_factory=list) + release_date: Optional[datetime | int] = None + status: Status = Status.UNKNOWN + studio: Optional[int | str] = None + genres: list[Genre] = field(default_factory=list) + + poster: list[str] = field(default_factory=list) + thumbnails: list[str] = field(default_factory=list) + logo: list[str] = field(default_factory=list) + + path: Optional[str] = None + # TODO: handle staff + # staff: list[Staff] + + translations: dict[str, MovieTranslation] = field(default_factory=dict) + diff --git a/scanner/providers/types/status.py b/scanner/providers/types/status.py new file mode 100644 index 00000000..e6a754e3 --- /dev/null +++ b/scanner/providers/types/status.py @@ -0,0 +1,7 @@ +from enum import Enum + +class Status(Enum): + UNKNOWN = "unknown" + FINISHED = "finished" + AIRING = "airing" + PLANNED = "planned"