mirror of
				https://github.com/zoriya/Kyoo.git
				synced 2025-11-03 19:17:16 -05:00 
			
		
		
		
	
		
			
				
	
	
		
			33 lines
		
	
	
		
			1001 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			33 lines
		
	
	
		
			1001 B
		
	
	
	
		
			Python
		
	
	
	
	
	
from __future__ import annotations
 | 
						|
from typing import TYPE_CHECKING
 | 
						|
 | 
						|
if TYPE_CHECKING:
 | 
						|
	from providers.implementations.themoviedatabase import TheMovieDatabase
 | 
						|
 | 
						|
from typing import List, Optional
 | 
						|
from providers.types.metadataid import MetadataID
 | 
						|
 | 
						|
 | 
						|
class IdMapper:
 | 
						|
	def init(self, *, language: str, tmdb: Optional[TheMovieDatabase]):
 | 
						|
		self.language = language
 | 
						|
		self._tmdb = tmdb
 | 
						|
 | 
						|
	async def get_show(
 | 
						|
		self, show: dict[str, MetadataID], *, required: Optional[List[str]] = None
 | 
						|
	):
 | 
						|
		ids = show
 | 
						|
 | 
						|
		# Only fetch using tmdb if one of the required ids is not already known.
 | 
						|
		should_fetch = required is not None and any((x not in ids for x in required))
 | 
						|
		if self._tmdb and self._tmdb.name in ids and should_fetch:
 | 
						|
			tmdb_info = await self._tmdb.identify_show(ids[self._tmdb.name].data_id)
 | 
						|
			return {**ids, **tmdb_info.external_id}
 | 
						|
		return ids
 | 
						|
 | 
						|
	async def get_movie(
 | 
						|
		self, movie: dict[str, MetadataID], *, required: Optional[List[str]] = None
 | 
						|
	):
 | 
						|
		# TODO: actually do something here
 | 
						|
		return movie
 |