feat: cleaned data objects
This commit is contained in:
parent
1ad62df0ab
commit
ee1aaa13b0
@ -340,12 +340,6 @@ class Album(Base):
|
|||||||
if len(self.song_collection) > 0:
|
if len(self.song_collection) > 0:
|
||||||
r += f" with {len(self.song_collection)} songs"
|
r += f" with {len(self.song_collection)} songs"
|
||||||
return r
|
return r
|
||||||
|
|
||||||
@property
|
|
||||||
def options(self) -> List[P]:
|
|
||||||
options = [*self.artist_collection, self, *self.song_collection]
|
|
||||||
|
|
||||||
return options
|
|
||||||
|
|
||||||
def update_tracksort(self):
|
def update_tracksort(self):
|
||||||
"""
|
"""
|
||||||
@ -372,18 +366,6 @@ class Album(Base):
|
|||||||
tracksort_map[i] = existing_list.pop(0)
|
tracksort_map[i] = existing_list.pop(0)
|
||||||
tracksort_map[i].tracksort = i
|
tracksort_map[i].tracksort = i
|
||||||
|
|
||||||
def compile(self, merge_into: bool = False):
|
|
||||||
"""
|
|
||||||
compiles the recursive structures,
|
|
||||||
and does depending on the object some other stuff.
|
|
||||||
|
|
||||||
no need to override if only the recursive structure should be built.
|
|
||||||
override self.build_recursive_structures() instead
|
|
||||||
"""
|
|
||||||
|
|
||||||
self.update_tracksort()
|
|
||||||
self._build_recursive_structures(build_version=random.randint(0, 99999), merge=merge_into)
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def copyright(self) -> str:
|
def copyright(self) -> str:
|
||||||
if self.date is None:
|
if self.date is None:
|
||||||
@ -429,7 +411,7 @@ class Artist(Base):
|
|||||||
lyrical_themes: List[str]
|
lyrical_themes: List[str]
|
||||||
|
|
||||||
general_genre: str
|
general_genre: str
|
||||||
unformated_location: str
|
unformatted_location: str
|
||||||
|
|
||||||
source_collection: SourceCollection
|
source_collection: SourceCollection
|
||||||
contact_collection: Collection[Contact]
|
contact_collection: Collection[Contact]
|
||||||
@ -442,7 +424,7 @@ class Artist(Base):
|
|||||||
"name": str,
|
"name": str,
|
||||||
"unified_name": lambda: None,
|
"unified_name": lambda: None,
|
||||||
"country": lambda: None,
|
"country": lambda: None,
|
||||||
"unformated_location": lambda: None,
|
"unformatted_location": lambda: None,
|
||||||
|
|
||||||
"formed_in": ID3Timestamp,
|
"formed_in": ID3Timestamp,
|
||||||
"notes": FormattedText,
|
"notes": FormattedText,
|
||||||
@ -461,17 +443,17 @@ class Artist(Base):
|
|||||||
# This is automatically generated
|
# This is automatically generated
|
||||||
def __init__(self, name: str = "", unified_name: str = None, country: Country = None,
|
def __init__(self, name: str = "", unified_name: str = None, country: Country = None,
|
||||||
formed_in: ID3Timestamp = None, notes: FormattedText = None, lyrical_themes: List[str] = None,
|
formed_in: ID3Timestamp = None, notes: FormattedText = None, lyrical_themes: List[str] = None,
|
||||||
general_genre: str = None, unformated_location: str = None, source_list: List[Source] = None,
|
general_genre: str = None, unformatted_location: str = None, source_list: List[Source] = None,
|
||||||
contact_list: List[Contact] = None, feature_song_list: List[Song] = None,
|
contact_list: List[Contact] = None, feature_song_list: List[Song] = None,
|
||||||
main_album_list: List[Album] = None, label_list: List[Label] = None, **kwargs) -> None:
|
main_album_list: List[Album] = None, label_list: List[Label] = None, **kwargs) -> None:
|
||||||
|
|
||||||
super().__init__(name=name, unified_name=unified_name, country=country, formed_in=formed_in, notes=notes,
|
super().__init__(name=name, unified_name=unified_name, country=country, formed_in=formed_in, notes=notes,
|
||||||
lyrical_themes=lyrical_themes, general_genre=general_genre,
|
lyrical_themes=lyrical_themes, general_genre=general_genre,
|
||||||
unformated_location=unformated_location, source_list=source_list, contact_list=contact_list,
|
unformatted_location=unformatted_location, source_list=source_list, contact_list=contact_list,
|
||||||
feature_song_list=feature_song_list, main_album_list=main_album_list, label_list=label_list,
|
feature_song_list=feature_song_list, main_album_list=main_album_list, label_list=label_list,
|
||||||
**kwargs)
|
**kwargs)
|
||||||
|
|
||||||
DOWNWARDS_COLLECTION_STRING_ATTRIBUTES = ("feature_song_collection", "main_album_collection")
|
DOWNWARDS_COLLECTION_STRING_ATTRIBUTES = ("main_album_collection", "feature_song_collection")
|
||||||
UPWARDS_COLLECTION_STRING_ATTRIBUTES = ("label_collection",)
|
UPWARDS_COLLECTION_STRING_ATTRIBUTES = ("label_collection",)
|
||||||
|
|
||||||
def __init_collections__(self):
|
def __init_collections__(self):
|
||||||
@ -504,12 +486,6 @@ class Artist(Base):
|
|||||||
self.label_collection.extend(object_list)
|
self.label_collection.extend(object_list)
|
||||||
return
|
return
|
||||||
|
|
||||||
@property
|
|
||||||
def options(self) -> List[P]:
|
|
||||||
options = [self, *self.main_album_collection.shallow_list, *self.feature_album]
|
|
||||||
print(options)
|
|
||||||
return options
|
|
||||||
|
|
||||||
def update_albumsort(self):
|
def update_albumsort(self):
|
||||||
"""
|
"""
|
||||||
This updates the albumsort attributes, of the albums in
|
This updates the albumsort attributes, of the albums in
|
||||||
@ -585,19 +561,6 @@ class Artist(Base):
|
|||||||
|
|
||||||
return metadata
|
return metadata
|
||||||
|
|
||||||
"""
|
|
||||||
def __str__(self, include_notes: bool = False):
|
|
||||||
string = self.name or ""
|
|
||||||
if include_notes:
|
|
||||||
plaintext_notes = self.notes.get_plaintext()
|
|
||||||
if plaintext_notes is not None:
|
|
||||||
string += "\n" + plaintext_notes
|
|
||||||
return string
|
|
||||||
"""
|
|
||||||
|
|
||||||
def __repr__(self):
|
|
||||||
return f"Artist(\"{self.name}\")"
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def option_string(self) -> str:
|
def option_string(self) -> str:
|
||||||
r = OPTION_FOREGROUND.value + self.name + BColors.ENDC.value + OPTION_BACKGROUND.value
|
r = OPTION_FOREGROUND.value + self.name + BColors.ENDC.value + OPTION_BACKGROUND.value
|
||||||
@ -613,43 +576,6 @@ class Artist(Base):
|
|||||||
|
|
||||||
return r
|
return r
|
||||||
|
|
||||||
@property
|
|
||||||
def options(self) -> List[P]:
|
|
||||||
options = [self]
|
|
||||||
options.extend(self.main_album_collection)
|
|
||||||
options.extend(self.feature_song_collection)
|
|
||||||
return options
|
|
||||||
|
|
||||||
@property
|
|
||||||
def feature_album(self) -> Album:
|
|
||||||
return Album(
|
|
||||||
title="features",
|
|
||||||
album_status=AlbumStatus.UNRELEASED,
|
|
||||||
album_type=AlbumType.COMPILATION_ALBUM,
|
|
||||||
is_split=True,
|
|
||||||
albumsort=666,
|
|
||||||
dynamic=True,
|
|
||||||
song_list=self.feature_song_collection.shallow_list
|
|
||||||
)
|
|
||||||
|
|
||||||
def get_all_songs(self) -> List[Song]:
|
|
||||||
"""
|
|
||||||
returns a list of all Songs.
|
|
||||||
probably not that useful, because it is unsorted
|
|
||||||
"""
|
|
||||||
collection = self.feature_song_collection.copy()
|
|
||||||
for album in self.discography:
|
|
||||||
collection.extend(album.song_collection)
|
|
||||||
|
|
||||||
return collection
|
|
||||||
|
|
||||||
@property
|
|
||||||
def discography(self) -> List[Album]:
|
|
||||||
flat_copy_discography = self.main_album_collection.copy()
|
|
||||||
flat_copy_discography.append(self.feature_album)
|
|
||||||
|
|
||||||
return flat_copy_discography
|
|
||||||
|
|
||||||
|
|
||||||
"""
|
"""
|
||||||
Label
|
Label
|
||||||
|
Loading…
Reference in New Issue
Block a user