@ -189,8 +189,8 @@ class Tag(db.Entity, Tagable, TagProto["Tag"]):
super_tag_list : Iterable [ Tag ] = orm . Set ( lambda : Tag , reverse = " sub_tag_list " )
sub_tag_list : Iterable [ Tag ] = orm . Set ( lambda : Tag , reverse = " super_tag_list " )
_ collection_list: Iterable [ MediaCollection ] = orm . Set ( lambda : MediaCollection )
_ media_list: Iterable [ MediaElement ] = orm . Set ( lambda : MediaElement )
collection_list: Iterable [ MediaCollection ] = orm . Set ( lambda : MediaCollection )
media_list: Iterable [ MediaElement ] = orm . Set ( lambda : MediaElement )
@property
def orm_assigned_tags ( self ) - > Query [ Tag ] :
@ -202,7 +202,6 @@ class Tag(db.Entity, Tagable, TagProto["Tag"]):
class TagKey ( db . Entity ) :
num_id : int = orm . PrimaryKey ( int , auto = True )
tag_key : str = orm . Required ( str , unique = True )
""" Format: <domain>[/<kind>][/<id>]
@ -330,8 +329,9 @@ class MediaElement(db.Entity, UriHolder, Tagable):
int ,
auto = True ,
)
uri: str = orm . Required (
__ uri: str = orm . Required (
str ,
column = " uri " ,
unique = True ,
)
@ -377,7 +377,7 @@ class MediaElement(db.Entity, UriHolder, Tagable):
tag_list : Iterable [ Tag ] = orm . Set (
lambda : Tag ,
)
uris: Iterable [ MediaUriMapping ] = orm . Set (
__ uri_li st : Iterable [ MediaUriMapping ] = orm . Set (
lambda : MediaUriMapping ,
)
collection_links : Iterable [ MediaCollectionLink ] = orm . Set (
@ -393,21 +393,35 @@ class MediaElement(db.Entity, UriHolder, Tagable):
reverse = " blocked_by " ,
)
@classmethod
def new (
cls ,
* ,
extractor_name : str ,
extractor_key : str ,
uri : str ,
) - > MediaElement :
return cls (
extractor_name = extractor_name ,
extractor_key = extractor_key ,
_MediaElement__uri = uri , # manual mangling for MediaElement
)
### for UriHolder
@property
def _primary_uri ( self ) - > str :
return self . uri
return self . __ uri
def _set_primary_uri ( self , uri : str ) - > None :
self . uri = uri
self . __ uri = uri
@property
def _get_uri_set ( self ) - > Set [ str ] :
return { m . uri for m in self . uris }
def _ uri_set( self ) - > Set [ str ] :
return { m . uri for m in self . __ uri_li st }
def _set_uri_set ( self , uri_set : Set [ str ] ) - > None :
self . uris = set ( )
self . __ uri_li st = set ( )
self . add_uris ( uri_set )
### for Tagable
@ -530,7 +544,7 @@ class MediaElement(db.Entity, UriHolder, Tagable):
other . ignored = True
if self . progress > = 0 and other . progress < = 0 :
other . progress = self . progress
for uri_map in self . uris:
for uri_map in self . __ uri_li st :
uri_map . element = other
for link in self . collection_links :
if not MediaCollectionLink . get ( collection = link . collection , element = other ) :
@ -557,7 +571,7 @@ class MediaElement(db.Entity, UriHolder, Tagable):
self . before_update ( )
def before_update ( self ) - > None :
self . add_single_uri ( self . uri)
self . add_single_uri ( self . __ uri)
class MediaThumbnail ( db . Entity ) :
@ -640,8 +654,9 @@ class MediaCollection(db.Entity, UriHolder, Tagable):
int ,
auto = True ,
)
uri: str = orm . Required (
__ uri: str = orm . Required (
str ,
column = " uri " ,
unique = True ,
)
@ -697,7 +712,7 @@ class MediaCollection(db.Entity, UriHolder, Tagable):
tag_list : Iterable [ Tag ] = orm . Set (
lambda : Tag ,
)
uris: Iterable [ CollectionUriMapping ] = orm . Set (
__ uri_ set : Iterable [ CollectionUriMapping ] = orm . Set (
lambda : CollectionUriMapping ,
)
media_links : Iterable [ MediaCollectionLink ] = orm . Set (
@ -707,21 +722,35 @@ class MediaCollection(db.Entity, UriHolder, Tagable):
lambda : MediaCollection ,
)
@classmethod
def new (
cls ,
* ,
extractor_name : str ,
extractor_key : str ,
uri : str ,
) - > MediaCollection :
return cls (
extractor_name = extractor_name ,
extractor_key = extractor_key ,
_MediaCollection__uri = uri , # manual mangling for MediaCollection
)
### for UriHolder
@property
def _primary_uri ( self ) - > str :
return self . uri
return self . __ uri
def _set_primary_uri ( self , uri : str ) - > None :
self . uri = uri
self . __ uri = uri
@property
def _get_uri_set ( self ) - > Set [ str ] :
return { m . uri for m in self . uris }
def _ uri_set( self ) - > Set [ str ] :
return { m . uri for m in self . __ uri_ set }
def _set_uri_set ( self , uri_set : Set [ str ] ) - > None :
self . uris = set ( )
self . __ uri_ set = set ( )
self . add_uris ( uri_set )
### for Tagable
@ -917,7 +946,7 @@ class MediaCollection(db.Entity, UriHolder, Tagable):
self . before_update ( )
def before_update ( self ) - > None :
self . add_single_uri ( self . uri)
self . add_single_uri ( self . __ uri)
class CollectionUriMapping ( db . Entity ) :