Fix imports from LastFM without albums
This commit is contained in:
@ -56,6 +56,7 @@ class LastFM:
|
|||||||
album = get_or_create_album(lfm_scrobble.pop("album"), artist)
|
album = get_or_create_album(lfm_scrobble.pop("album"), artist)
|
||||||
|
|
||||||
lfm_scrobble["artist"] = artist
|
lfm_scrobble["artist"] = artist
|
||||||
|
if album:
|
||||||
lfm_scrobble["album"] = album
|
lfm_scrobble["album"] = album
|
||||||
track = get_or_create_track(**lfm_scrobble)
|
track = get_or_create_track(**lfm_scrobble)
|
||||||
|
|
||||||
|
|||||||
@ -1,7 +1,6 @@
|
|||||||
import logging
|
import logging
|
||||||
import re
|
import re
|
||||||
|
from typing import Optional
|
||||||
from musicbrainzngs.caa import musicbrainz
|
|
||||||
|
|
||||||
from music.musicbrainz import (
|
from music.musicbrainz import (
|
||||||
lookup_album_dict_from_mb,
|
lookup_album_dict_from_mb,
|
||||||
@ -41,15 +40,19 @@ def get_or_create_artist(name: str, mbid: str = None) -> Artist:
|
|||||||
return artist
|
return artist
|
||||||
|
|
||||||
|
|
||||||
def get_or_create_album(name: str, artist: Artist, mbid: str = None) -> Album:
|
def get_or_create_album(
|
||||||
|
name: str, artist: Artist, mbid: str = None
|
||||||
|
) -> Optional[Album]:
|
||||||
album = None
|
album = None
|
||||||
album_dict = lookup_album_dict_from_mb(name, artist_name=artist.name)
|
album_dict = lookup_album_dict_from_mb(name, artist_name=artist.name)
|
||||||
|
|
||||||
|
name = name or album_dict["name"]
|
||||||
mbid = mbid or album_dict["mb_id"]
|
mbid = mbid or album_dict["mb_id"]
|
||||||
|
|
||||||
logger.debug(f"Looking up album {name} and mbid: {mbid}")
|
logger.debug(f"Looking up album {name} and mbid: {mbid}")
|
||||||
|
|
||||||
album = Album.objects.filter(musicbrainz_id=mbid).first()
|
album = Album.objects.filter(musicbrainz_id=mbid).first()
|
||||||
if not album:
|
if not album and name:
|
||||||
album = Album.objects.create(name=name, musicbrainz_id=mbid)
|
album = Album.objects.create(name=name, musicbrainz_id=mbid)
|
||||||
album.year = album_dict["year"]
|
album.year = album_dict["year"]
|
||||||
album.musicbrainz_releasegroup_id = album_dict["mb_group_id"]
|
album.musicbrainz_releasegroup_id = album_dict["mb_group_id"]
|
||||||
@ -63,6 +66,8 @@ def get_or_create_album(name: str, artist: Artist, mbid: str = None) -> Album:
|
|||||||
)
|
)
|
||||||
album.artists.add(artist)
|
album.artists.add(artist)
|
||||||
album.fetch_artwork()
|
album.fetch_artwork()
|
||||||
|
if not album:
|
||||||
|
logger.warn(f"No album found for {name} and {mbid}")
|
||||||
|
|
||||||
return album
|
return album
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user