From adcf26b51820094e33b599ced59cf047afab25a1 Mon Sep 17 00:00:00 2001 From: Lars Noack Date: Thu, 16 May 2024 14:10:00 +0200 Subject: [PATCH] feat: renamed main album collection to album collection --- music_kraken/objects/song.py | 27 ++++++++++++-------- music_kraken/pages/bandcamp.py | 4 +-- music_kraken/pages/encyclopaedia_metallum.py | 2 +- music_kraken/pages/musify.py | 2 +- tests/test_collection.py | 16 ++++++------ 5 files changed, 28 insertions(+), 23 deletions(-) diff --git a/music_kraken/objects/song.py b/music_kraken/objects/song.py index 4156a93..bab1ae3 100644 --- a/music_kraken/objects/song.py +++ b/music_kraken/objects/song.py @@ -153,7 +153,12 @@ class Song(Base): "song_collection": self, } self.artist_collection.extend_object_to_attribute = { - "main_album_collection": self.album_collection + "album_collection": self.album_collection + } + + + self.album_collection.append_object_to_attribute = { + "artist_collection": self } self.feature_artist_collection.push_to = [self.artist_collection] @@ -314,7 +319,7 @@ class Album(Base): } self.artist_collection.append_object_to_attribute = { - "main_album_collection": self + "album_collection": self } self.artist_collection.extend_object_to_attribute = { "label_collection": self.label_collection @@ -475,7 +480,7 @@ class Artist(Base): source_collection: SourceCollection contact_collection: Collection[Contact] - main_album_collection: Collection[Album] + album_collection: Collection[Album] label_collection: Collection[Label] _default_factories = { @@ -489,7 +494,7 @@ class Artist(Base): "general_genre": lambda: "", "source_collection": SourceCollection, - "main_album_collection": Collection, + "album_collection": Collection, "contact_collection": Collection, "label_collection": Collection, } @@ -520,7 +525,7 @@ class Artist(Base): Base.__init__(**real_kwargs) - DOWNWARDS_COLLECTION_STRING_ATTRIBUTES = ("main_album_collection",) + DOWNWARDS_COLLECTION_STRING_ATTRIBUTES = ("album_collection",) UPWARDS_COLLECTION_STRING_ATTRIBUTES = ("label_collection",) def __init_collections__(self): @@ -537,7 +542,7 @@ class Artist(Base): return if object_type is Album: - self.main_album_collection.extend(object_list) + self.album_collection.extend(object_list) return if object_type is Label: @@ -550,7 +555,7 @@ class Artist(Base): def update_albumsort(self): """ This updates the albumsort attributes, of the albums in - `self.main_album_collection`, and sorts the albums, if possible. + `self.album_collection`, and sorts the albums, if possible. It is advised to only call this function, once all the albums are added to the artist. @@ -568,7 +573,7 @@ class Artist(Base): # order albums in the previously defined section album: Album - for album in self.main_album_collection: + for album in self.album_collection: sections[type_section[album.album_type]].append(album) def sort_section(_section: List[Album], last_albumsort: int) -> int: @@ -599,7 +604,7 @@ class Artist(Base): album_list.extend(sections[section_index]) # replace the old collection with the new one - self.main_album_collection._data = album_list + self.album_collection._data = album_list INDEX_DEPENDS_ON = ("name", "source_collection", "contact_collection") @property @@ -625,8 +630,8 @@ class Artist(Base): r += get_collection_string(self.label_collection, " under {}") r += OPTION_BACKGROUND.value - if len(self.main_album_collection) > 0: - r += f" with {len(self.main_album_collection)} albums" + if len(self.album_collection) > 0: + r += f" with {len(self.album_collection)} albums" r += BColors.ENDC.value diff --git a/music_kraken/pages/bandcamp.py b/music_kraken/pages/bandcamp.py index c938189..2c15bcb 100644 --- a/music_kraken/pages/bandcamp.py +++ b/music_kraken/pages/bandcamp.py @@ -237,7 +237,7 @@ class Bandcamp(Page): html_music_grid = soup.find("ol", {"id": "music-grid"}) if html_music_grid is not None: for subsoup in html_music_grid.find_all("li"): - artist.main_album_collection.append(self._parse_album(soup=subsoup, initial_source=source)) + artist.album_collection.append(self._parse_album(soup=subsoup, initial_source=source)) for i, data_blob_soup in enumerate(soup.find_all("div", {"id": ["pagedata", "collectors-data"]})): data_blob = data_blob_soup["data-blob"] @@ -246,7 +246,7 @@ class Bandcamp(Page): dump_to_file(f"bandcamp_artist_data_blob_{i}.json", data_blob, is_json=True, exit_after_dump=False) if data_blob is not None: - artist.main_album_collection.extend( + artist.album_collection.extend( self._parse_artist_data_blob(json.loads(data_blob), source.url) ) diff --git a/music_kraken/pages/encyclopaedia_metallum.py b/music_kraken/pages/encyclopaedia_metallum.py index 9074e57..0cf313c 100644 --- a/music_kraken/pages/encyclopaedia_metallum.py +++ b/music_kraken/pages/encyclopaedia_metallum.py @@ -663,7 +663,7 @@ class EncyclopaediaMetallum(Page): artist.notes = band_notes discography: List[Album] = self._fetch_artist_discography(artist_id) - artist.main_album_collection.extend(discography) + artist.album_collection.extend(discography) return artist diff --git a/music_kraken/pages/musify.py b/music_kraken/pages/musify.py index 54d849a..e8078fb 100644 --- a/music_kraken/pages/musify.py +++ b/music_kraken/pages/musify.py @@ -1054,7 +1054,7 @@ class Musify(Page): if not self.fetch_options.download_all and album.album_type in self.fetch_options.album_type_blacklist: continue - artist.main_album_collection.append(album) + artist.album_collection.append(album) def fetch_artist(self, source: Source, **kwargs) -> Artist: """ diff --git a/tests/test_collection.py b/tests/test_collection.py index 186e814..98e8695 100644 --- a/tests/test_collection.py +++ b/tests/test_collection.py @@ -37,7 +37,7 @@ class TestCollection(unittest.TestCase): is the same object """ - a = self.complicated_object().main_album_collection[0] + a = self.complicated_object().album_collection[0] b = a.song_collection[0].album_collection[0] c = a.song_collection[1].album_collection[0] d = b.song_collection[0].album_collection[0] @@ -62,9 +62,9 @@ class TestCollection(unittest.TestCase): """ a = self.complicated_object() - b = a.main_album_collection[0].artist_collection[0] - c = b.main_album_collection[0].artist_collection[0] - d = c.main_album_collection[0].artist_collection[0] + b = a.album_collection[0].artist_collection[0] + c = b.album_collection[0].artist_collection[0] + d = c.album_collection[0].artist_collection[0] self.assertTrue(a.id == b.id == c.id == d.id) self.assertTrue(a.name == b.name == c.name == d.name == "artist") @@ -86,7 +86,7 @@ class TestCollection(unittest.TestCase): ] ) - self.assertTrue(artist.id == artist.main_album_collection[0].song_collection[0].artist_collection[0].id) + self.assertTrue(artist.id == artist.album_collection[0].song_collection[0].artist_collection[0].id) def test_artist_collection_sync(self): album_1 = Album( @@ -115,9 +115,9 @@ class TestCollection(unittest.TestCase): def test_song_artist_relations(self): a = self.complicated_object() - b = a.main_album_collection[0].song_collection[0].artist_collection[0] - c = b.main_album_collection[0].song_collection[0].artist_collection[0] - d = c.main_album_collection[0].song_collection[0].artist_collection[0] + b = a.album_collection[0].song_collection[0].artist_collection[0] + c = b.album_collection[0].song_collection[0].artist_collection[0] + d = c.album_collection[0].song_collection[0].artist_collection[0] self.assertTrue(a.id == b.id == c.id == d.id) self.assertTrue(a.name == b.name == c.name == d.name == "artist")