Removed unwanted entity creations, added more errors for missing entities

This commit is contained in:
krateng 2023-10-28 14:26:14 +02:00
parent a47c0da55f
commit f9ccb10edf
2 changed files with 18 additions and 11 deletions

View File

@ -505,7 +505,9 @@ def get_performance(dbconn=None,**keys):
if "track" in keys:
track_id = sqldb.get_track_id(keys['track'],dbconn=dbconn)
track_id = sqldb.get_track_id(keys['track'],create_new=False,dbconn=dbconn)
if not track_id:
raise exceptions.TrackDoesNotExist(keys['track'])
#track = sqldb.get_track(track_id,dbconn=dbconn)
charts = get_charts_tracks(timerange=rng,resolve_ids=False,dbconn=dbconn)
rank = None
@ -514,7 +516,9 @@ def get_performance(dbconn=None,**keys):
rank = c["rank"]
break
elif "artist" in keys:
artist_id = sqldb.get_artist_id(keys['artist'],dbconn=dbconn)
artist_id = sqldb.get_artist_id(keys['artist'],create_new=False,dbconn=dbconn)
if not artist_id:
raise exceptions.ArtistDoesNotExist(keys['artist'])
#artist = sqldb.get_artist(artist_id,dbconn=dbconn)
# ^this is the most useless line in programming history
# but I like consistency
@ -525,7 +529,9 @@ def get_performance(dbconn=None,**keys):
rank = c["rank"]
break
elif "album" in keys:
album_id = sqldb.get_album_id(keys['album'],dbconn=dbconn)
album_id = sqldb.get_album_id(keys['album'],create_new=False,dbconn=dbconn)
if not album_id:
raise exceptions.AlbumDoesNotExist(keys['album'])
#album = sqldb.get_album(album_id,dbconn=dbconn)
charts = get_charts_albums(timerange=rng,resolve_ids=False,dbconn=dbconn)
rank = None
@ -688,7 +694,7 @@ def track_info(dbconn=None,**keys):
if track is None: raise exceptions.MissingEntityParameter()
track_id = sqldb.get_track_id(track,create_new=False,dbconn=dbconn)
if not track_id: raise exceptions.TrackDoesNotExist(track['title'])
if not track_id: raise exceptions.TrackDoesNotExist(track)
track = sqldb.get_track(track_id,dbconn=dbconn)
alltimecharts = get_charts_tracks(timerange=alltime(),resolve_ids=False,dbconn=dbconn)
@ -742,7 +748,7 @@ def album_info(dbconn=None,reduced=False,**keys):
if album is None: raise exceptions.MissingEntityParameter()
album_id = sqldb.get_album_id(album,create_new=False,dbconn=dbconn)
if not album_id: raise exceptions.AlbumDoesNotExist(album['albumtitle'])
if not album_id: raise exceptions.AlbumDoesNotExist(album)
album = sqldb.get_album(album_id,dbconn=dbconn)
@ -891,7 +897,6 @@ def start_db():
dbstatus['complete'] = True
# cache some stuff that we'll probably need
# (would be done anyway by start page)
with sqldb.engine.connect() as dbconn:
with dbconn.begin():
for week in ranges(step='week'):

View File

@ -323,7 +323,8 @@ def album_dict_to_db(info,dbconn=None):
##### Actual Database interactions
# TODO: remove all resolve_id args and do that logic outside the caching
# TODO: remove all resolve_id args and do that logic outside the caching to improve hit chances
# TODO: maybe also factor out all intitial get entity funcs (some here, some in __init__) and throw exceptions
@connection_provider
def add_scrobble(scrobbledict,update_album=False,dbconn=None):
@ -836,9 +837,9 @@ def get_scrobbles_of_artist(artist,since=None,to=None,resolve_references=True,li
if to is None: to=now()
if associated:
artist_ids = get_associated_artists(artist,resolve_ids=False,dbconn=dbconn) + [get_artist_id(artist,dbconn=dbconn)]
artist_ids = get_associated_artists(artist,resolve_ids=False,dbconn=dbconn) + [get_artist_id(artist,create_new=False,dbconn=dbconn)]
else:
artist_ids = [get_artist_id(artist,dbconn=dbconn)]
artist_ids = [get_artist_id(artist,create_new=False,dbconn=dbconn)]
jointable = sql.join(DB['scrobbles'],DB['trackartists'],DB['scrobbles'].c.track_id == DB['trackartists'].c.track_id)
@ -879,7 +880,8 @@ def get_scrobbles_of_track(track,since=None,to=None,resolve_references=True,limi
if since is None: since=0
if to is None: to=now()
track_id = get_track_id(track,dbconn=dbconn)
track_id = get_track_id(track,create_new=False,dbconn=dbconn)
op = DB['scrobbles'].select().where(
DB['scrobbles'].c.timestamp<=to,
@ -906,7 +908,7 @@ def get_scrobbles_of_album(album,since=None,to=None,resolve_references=True,limi
if since is None: since=0
if to is None: to=now()
album_id = get_album_id(album,dbconn=dbconn)
album_id = get_album_id(album,create_new=False,dbconn=dbconn)
jointable = sql.join(DB['scrobbles'],DB['tracks'],DB['scrobbles'].c.track_id == DB['tracks'].c.id)