mirror of
https://github.com/zoriya/Kyoo.git
synced 2025-05-24 02:02:36 -04:00
Cleanup composite provider
This commit is contained in:
parent
4cd11152c8
commit
819dbf3aab
@ -4,7 +4,7 @@ from langcodes import Language
|
||||
|
||||
from ..models.movie import Movie, SearchMovie
|
||||
from ..models.serie import SearchSerie, Serie
|
||||
from .provider import Provider, ProviderError
|
||||
from .provider import Provider
|
||||
|
||||
|
||||
class CompositeProvider(Provider):
|
||||
@ -27,24 +27,6 @@ class CompositeProvider(Provider):
|
||||
async def get_movie(self, external_id: dict[str, str]) -> Movie | None:
|
||||
return await self._themoviedb.get_movie(external_id)
|
||||
|
||||
async def find_movie(
|
||||
self, title: str, year: int | None, external_id: dict[str, str]
|
||||
) -> Movie:
|
||||
ret = await self.get_movie(external_id)
|
||||
if ret is not None:
|
||||
return ret
|
||||
search = await self.search_movies(title, year, language=[])
|
||||
if not any(search):
|
||||
raise ProviderError(
|
||||
f"Couldn't find a movie with title {title}. (year: {year}"
|
||||
)
|
||||
ret = await self.get_movie(
|
||||
{k: v.data_id for k, v in search[0].external_id.items()}
|
||||
)
|
||||
if not ret:
|
||||
raise ValueError()
|
||||
return ret
|
||||
|
||||
@override
|
||||
async def search_series(
|
||||
self, title: str, year: int | None, *, language: list[Language]
|
||||
@ -58,21 +40,3 @@ class CompositeProvider(Provider):
|
||||
return None
|
||||
# TODO: complete metadata with info from tmdb
|
||||
return ret
|
||||
|
||||
async def find_serie(
|
||||
self, title: str, year: int | None, external_id: dict[str, str]
|
||||
) -> Serie:
|
||||
ret = await self.get_serie(external_id)
|
||||
if ret is not None:
|
||||
return ret
|
||||
search = await self.search_series(title, year, language=[])
|
||||
if not any(search):
|
||||
raise ProviderError(
|
||||
f"Couldn't find a serie with title {title}. (year: {year}"
|
||||
)
|
||||
ret = await self.get_serie(
|
||||
{k: v.data_id for k, v in search[0].external_id.items()}
|
||||
)
|
||||
if not ret:
|
||||
raise ValueError()
|
||||
return ret
|
||||
|
@ -35,6 +35,42 @@ class Provider(ABC):
|
||||
async def get_serie(self, external_id: dict[str, str]) -> Serie | None:
|
||||
raise NotImplementedError
|
||||
|
||||
async def find_movie(
|
||||
self, title: str, year: int | None, external_id: dict[str, str]
|
||||
) -> Movie:
|
||||
ret = await self.get_movie(external_id)
|
||||
if ret is not None:
|
||||
return ret
|
||||
search = await self.search_movies(title, year, language=[])
|
||||
if not any(search):
|
||||
raise ProviderError(
|
||||
f"Couldn't find a movie with title {title}. (year: {year}"
|
||||
)
|
||||
ret = await self.get_movie(
|
||||
{k: v.data_id for k, v in search[0].external_id.items()}
|
||||
)
|
||||
if not ret:
|
||||
raise ValueError()
|
||||
return ret
|
||||
|
||||
async def find_serie(
|
||||
self, title: str, year: int | None, external_id: dict[str, str]
|
||||
) -> Serie:
|
||||
ret = await self.get_serie(external_id)
|
||||
if ret is not None:
|
||||
return ret
|
||||
search = await self.search_series(title, year, language=[])
|
||||
if not any(search):
|
||||
raise ProviderError(
|
||||
f"Couldn't find a serie with title {title}. (year: {year}"
|
||||
)
|
||||
ret = await self.get_serie(
|
||||
{k: v.data_id for k, v in search[0].external_id.items()}
|
||||
)
|
||||
if not ret:
|
||||
raise ValueError()
|
||||
return ret
|
||||
|
||||
|
||||
class ProviderError(RuntimeError):
|
||||
def __init__(self, *args: object) -> None:
|
||||
|
@ -1,8 +1,7 @@
|
||||
import asyncio
|
||||
import os
|
||||
from collections.abc import Generator
|
||||
from datetime import datetime, timedelta
|
||||
from itertools import accumulate, zip_longest
|
||||
from datetime import datetime
|
||||
from logging import getLogger
|
||||
from statistics import mean
|
||||
from typing import Any, cast, override
|
||||
@ -10,8 +9,6 @@ from typing import Any, cast, override
|
||||
from aiohttp import ClientSession
|
||||
from langcodes import Language
|
||||
|
||||
from matcher.cache import cache
|
||||
|
||||
from ..models.collection import Collection, CollectionTranslation
|
||||
from ..models.entry import Entry, EntryTranslation
|
||||
from ..models.genre import Genre
|
||||
|
Loading…
x
Reference in New Issue
Block a user