|
|
|
@ -540,6 +540,8 @@ class MediaCollectionLink(db.Entity):
|
|
|
|
|
|
|
|
|
|
class MediaElement(db.Entity, UriHolder, Tagable):
|
|
|
|
|
|
|
|
|
|
### columns
|
|
|
|
|
|
|
|
|
|
id: int = orm.PrimaryKey(
|
|
|
|
|
int,
|
|
|
|
|
auto=True,
|
|
|
|
@ -607,6 +609,25 @@ class MediaElement(db.Entity, UriHolder, Tagable):
|
|
|
|
|
reverse="blocked_by",
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
### for UriHolder
|
|
|
|
|
|
|
|
|
|
@property
|
|
|
|
|
def _primary_uri(self) -> str:
|
|
|
|
|
return self.uri
|
|
|
|
|
|
|
|
|
|
def _set_primary_uri(self, uri: str) -> None:
|
|
|
|
|
self.uri = uri
|
|
|
|
|
|
|
|
|
|
@property
|
|
|
|
|
def _get_uri_set(self) -> Set[str]:
|
|
|
|
|
return {m.uri for m in self.uris}
|
|
|
|
|
|
|
|
|
|
def _set_uri_set(self, uri_set: Set[str]) -> None:
|
|
|
|
|
self.uris = set()
|
|
|
|
|
self.add_uris(uri_set)
|
|
|
|
|
|
|
|
|
|
### for Tagable
|
|
|
|
|
|
|
|
|
|
@property
|
|
|
|
|
def orm_assigned_tags(self) -> Query[Tag]:
|
|
|
|
|
return self.tag_list
|
|
|
|
@ -618,6 +639,8 @@ class MediaElement(db.Entity, UriHolder, Tagable):
|
|
|
|
|
tag for link in self.collection_links for tag in link.collection.direct_tags
|
|
|
|
|
]
|
|
|
|
|
|
|
|
|
|
### properties
|
|
|
|
|
|
|
|
|
|
@property
|
|
|
|
|
def was_extracted(self) -> bool:
|
|
|
|
|
return self.last_updated is not None
|
|
|
|
@ -707,24 +730,11 @@ class MediaElement(db.Entity, UriHolder, Tagable):
|
|
|
|
|
link for link in self.collection_links if link.collection.watch_in_order
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
### for UriHolder
|
|
|
|
|
|
|
|
|
|
@property
|
|
|
|
|
def _primary_uri(self) -> str:
|
|
|
|
|
return self.uri
|
|
|
|
|
|
|
|
|
|
def _set_primary_uri(self, uri: str) -> None:
|
|
|
|
|
self.uri = uri
|
|
|
|
|
|
|
|
|
|
@property
|
|
|
|
|
def _get_uri_set(self) -> Set[str]:
|
|
|
|
|
return {m.uri for m in self.uris}
|
|
|
|
|
|
|
|
|
|
def _set_uri_set(self, uri_set: Set[str]) -> None:
|
|
|
|
|
self.uris = set()
|
|
|
|
|
self.add_uris(uri_set)
|
|
|
|
|
def info_link(self) -> str:
|
|
|
|
|
return f"/media/{self.id}"
|
|
|
|
|
|
|
|
|
|
### own methods
|
|
|
|
|
### methods
|
|
|
|
|
|
|
|
|
|
def merge_to(self, other: MediaElement) -> None:
|
|
|
|
|
if self.watched:
|
|
|
|
@ -762,10 +772,6 @@ class MediaElement(db.Entity, UriHolder, Tagable):
|
|
|
|
|
def before_update(self) -> None:
|
|
|
|
|
self.add_single_uri(self.uri)
|
|
|
|
|
|
|
|
|
|
@property
|
|
|
|
|
def info_link(self) -> str:
|
|
|
|
|
return f"/media/{self.id}"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class MediaThumbnail(db.Entity):
|
|
|
|
|
|
|
|
|
|