diff --git a/vrobbler/apps/scrobbles/tsv.py b/vrobbler/apps/scrobbles/tsv.py index bfc9ae1..4bd9d9d 100644 --- a/vrobbler/apps/scrobbles/tsv.py +++ b/vrobbler/apps/scrobbles/tsv.py @@ -6,6 +6,11 @@ import pytz from music.models import Album, Artist, Track from scrobbles.models import Scrobble +from vrobbler.apps.scrobbles.musicbrainz import ( + lookup_album_dict_from_mb, + lookup_artist_id_from_mb, +) + logger = logging.getLogger(__name__) @@ -32,9 +37,8 @@ def process_audioscrobbler_tsv_file(file_path, user_tz=None): continue artist, artist_created = Artist.objects.get_or_create(name=row[0]) if artist_created: - logger.debug(f"Created artist {artist}") - else: - logger.debug(f"Found artist {artist}") + artist.musicbrainz_id = lookup_artist_id_from_mb(artist.name) + artist.save(update_fields=["musicbrainz_id"]) album = None album_created = False @@ -52,9 +56,22 @@ def process_audioscrobbler_tsv_file(file_path, user_tz=None): album.artists.add(artist) if album_created: - logger.debug(f"Created album {album}") - else: - logger.debug(f"Found album {album}") + album_dict = lookup_album_dict_from_mb( + album.name, artist_name=artist.name + ) + album.year = album_dict["year"] + album.musicbrainz_id = album_dict["mb_id"] + album.musicbrainz_releasegroup_id = album_dict["mb_group_id"] + album.musicbrainz_albumartist_id = artist.musicbrainz_id + album.save( + update_fields=[ + "year", + "musicbrainz_id", + "musicbrainz_releasegroup_id", + "musicbrainz_albumartist_id", + ] + ) + album.artists.add(artist) track, track_created = Track.objects.get_or_create( title=row[2], @@ -62,13 +79,10 @@ def process_audioscrobbler_tsv_file(file_path, user_tz=None): album=album, ) - if track_created: - logger.debug(f"Created track {track}") - else: - logger.debug(f"Found track {track}") - if track_created: track.musicbrainz_id = row[7] + track.run_time = int(row[4]) + track.run_time_ticks = int(row[4]) * 1000 track.save() timestamp = (