mirror of
https://github.com/zoriya/Kyoo.git
synced 2025-05-24 02:02:36 -04:00
45 lines
1.1 KiB
Python
45 lines
1.1 KiB
Python
import os
|
|
from datetime import date
|
|
from itertools import chain
|
|
|
|
from typing import Literal
|
|
|
|
from providers.types.movie import Movie
|
|
from providers.types.show import Show
|
|
|
|
|
|
def format_date(date: date | int | None) -> str | None:
|
|
if date is None:
|
|
return None
|
|
if isinstance(date, int):
|
|
return f"{date}-01-01"
|
|
return date.isoformat()
|
|
|
|
|
|
def select_image(
|
|
self: Movie | Show,
|
|
kind: Literal["posters"] | Literal["thumbnails"] | Literal["logos"],
|
|
) -> str | None:
|
|
# For now, the API of kyoo only support one language so we remove the others.
|
|
default_language = os.environ["LIBRARY_LANGUAGES"].split(",")[0]
|
|
return next(
|
|
chain(
|
|
(
|
|
getattr(self.translations[self.original_language], kind)
|
|
if self.original_language
|
|
and self.original_language in self.translations
|
|
else []
|
|
),
|
|
getattr(self.translations[default_language], kind)
|
|
if default_language in self.translations
|
|
else [],
|
|
*(getattr(x, kind) for x in self.translations.values()),
|
|
),
|
|
None,
|
|
)
|
|
|
|
|
|
class ProviderError(RuntimeError):
|
|
def __init__(self, *args: object) -> None:
|
|
super().__init__(*args)
|