mirror of
				https://github.com/zoriya/Kyoo.git
				synced 2025-11-03 19:17:16 -05:00 
			
		
		
		
	
		
			
				
	
	
		
			42 lines
		
	
	
		
			986 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			42 lines
		
	
	
		
			986 B
		
	
	
	
		
			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,
 | 
						|
	type: 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], type)
 | 
						|
				if self.original_language
 | 
						|
				else []
 | 
						|
			),
 | 
						|
			getattr(self.translations[default_language], type),
 | 
						|
			*(getattr(x, type) for x in self.translations.values()),
 | 
						|
		),
 | 
						|
		None,
 | 
						|
	)
 | 
						|
 | 
						|
 | 
						|
class ProviderError(RuntimeError):
 | 
						|
	def __init__(self, *args: object) -> None:
 | 
						|
		super().__init__(*args)
 |