Use ExtractedDataLight where data cannot be supplied

master
Felix Stupp 2 years ago
parent d6768135f3
commit 9ffb34b972
Signed by: zocker
GPG Key ID: 93E1BD26F6B02FB7

@ -8,7 +8,7 @@ from pony import orm # TODO remove
from ...models import MediaCollection from ...models import MediaCollection
from ..all.tt_rss import HeadlineList, TtRssConnectionParameter, TtRssUri from ..all.tt_rss import HeadlineList, TtRssConnectionParameter, TtRssUri
from ..generic import ExtractedData, SuitableLevel from ..generic import ExtractedData, ExtractedDataLight, SuitableLevel
from .base import CollectionExtractor from .base import CollectionExtractor
@ -41,8 +41,8 @@ class TtRssCollectionExtractor(CollectionExtractor[HeadlineList]):
def _cache_expired(self, object: MediaCollection) -> bool: def _cache_expired(self, object: MediaCollection) -> bool:
return (datetime.now() - object.last_updated) > timedelta(minutes=15) return (datetime.now() - object.last_updated) > timedelta(minutes=15)
def _extract_offline(self, uri: str) -> ExtractedData[HeadlineList]: def _extract_offline(self, uri: str) -> ExtractedDataLight:
return ExtractedData( return ExtractedDataLight(
extractor_name=self.name, extractor_name=self.name,
object_key=uri, object_key=uri,
object_uri=uri, object_uri=uri,

@ -9,7 +9,7 @@ from pony import orm # TODO remove
import youtubesearchpython import youtubesearchpython
from ...models import MediaCollection from ...models import MediaCollection
from ..generic import ExtractedData, SuitableLevel from ..generic import ExtractedData, ExtractedDataLight, SuitableLevel
from .base import CollectionExtractor from .base import CollectionExtractor
@ -59,9 +59,9 @@ class YouTubeCollectionExtractor(CollectionExtractor[Dict]):
last_release_date last_release_date
) )
def _extract_offline(self, uri: str) -> ExtractedData[Dict]: def _extract_offline(self, uri: str) -> ExtractedDataLight:
playlist_id = self.__convert_if_required(self.__get_id(uri)) playlist_id = self.__convert_if_required(self.__get_id(uri))
return ExtractedData( return ExtractedDataLight(
extractor_name=self.name, extractor_name=self.name,
object_key=playlist_id, object_key=playlist_id,
object_uri=uri, object_uri=uri,

@ -67,7 +67,7 @@ class ExtractedDataLight:
@dataclass @dataclass
class ExtractedData(ExtractedDataLight, Generic[T]): class ExtractedData(ExtractedDataLight, Generic[T]):
data: T = dataclasses.field(default=None, repr=False, compare=False) data: T = dataclasses.field(repr=False, compare=False)
@property @property
def has_data(self) -> bool: def has_data(self) -> bool:
@ -128,7 +128,7 @@ class GeneralExtractor(Generic[E, T]):
def _cache_expired(self, object: E) -> bool: def _cache_expired(self, object: E) -> bool:
return False return False
def _extract_offline_only(self, uri: str) -> ExtractedData[T]: def _extract_offline_only(self, uri: str) -> ExtractedDataLight:
raise NotImplementedError() raise NotImplementedError()
def _extract_online(self, uri: str) -> ExtractedData[T]: def _extract_online(self, uri: str) -> ExtractedData[T]:
@ -142,7 +142,7 @@ class GeneralExtractor(Generic[E, T]):
# defined # defined
def _extract_offline(self, uri: str) -> ExtractedData[T]: def _extract_offline(self, uri: str) -> ExtractedDataLight:
return ( return (
self._extract_offline_only(uri) self._extract_offline_only(uri)
if self.can_extract_offline(uri) if self.can_extract_offline(uri)

Loading…
Cancel
Save