add last fm similar artists to db table

+ add db methods for the above
+ try and discard last fm store
This commit is contained in:
mungai-njoroge
2023-07-01 01:39:39 +03:00
parent 4a9d6bc3e6
commit f5de09bd09
11 changed files with 209 additions and 49 deletions
+7 -1
View File
@@ -43,6 +43,7 @@ class Album:
self.og_title = self.title
self.image = self.albumhash + ".webp"
# Fetch album artists from title
if get_flag(ParserFlags.EXTRACT_FEAT):
featured, self.title = parse_feat_from_title(self.title)
@@ -56,6 +57,7 @@ class Album:
TrackStore.append_track_artists(self.albumhash, featured, self.title)
# Handle album version data
if get_flag(ParserFlags.CLEAN_ALBUM_TITLE):
get_versions = not get_flag(ParserFlags.MERGE_ALBUM_VERSIONS)
@@ -66,6 +68,8 @@ class Album:
if "super_deluxe" in self.versions:
self.versions.remove("deluxe")
self.versions = [v.replace("_", " ") for v in self.versions]
else:
self.base_title = get_base_title_and_versions(
self.title, get_versions=False
@@ -180,10 +184,12 @@ class Album:
Args:
tracks (list[Track]): The tracks of the album.
"""
if self.date:
return
dates = {t.date for t in tracks if t.date}
if len(dates) == 0:
self.date = 0
return
self.date = datetime.datetime.fromtimestamp(min(dates)).year
+13
View File
@@ -0,0 +1,13 @@
from dataclasses import dataclass
@dataclass
class SimilarArtist:
artisthash: str
similar_artist_hashes: str
def get_artist_hash_set(self) -> set[str]:
"""
Returns a set of similar artists.
"""
return set(self.similar_artist_hashes.split("~"))