Fixed renaming track to existing track

This commit is contained in:
krateng 2022-04-21 15:13:14 +02:00
parent fbbd959295
commit ff71a9c526
2 changed files with 15 additions and 3 deletions

View File

@ -621,6 +621,7 @@ def edit_artist(id,name):
@api.post("edit_track")
@authenticated_function(api=True)
@catch_exceptions
def edit_track(id,title):
"""Internal Use Only"""
result = database.edit_track(id,{'title':title})

View File

@ -7,6 +7,7 @@ from threading import Lock
from ..pkg_global.conf import data_dir
from .dbcache import cached_wrapper, cached_wrapper_individual
from . import exceptions as exc
from doreah.logging import log
from doreah.regular import runhourly, runmonthly
@ -283,7 +284,7 @@ def delete_scrobble(scrobble_id,dbconn=None):
@cached_wrapper
@connection_provider
def get_track_id(trackdict,dbconn=None):
def get_track_id(trackdict,create_new=True,dbconn=None):
ntitle = normalize_name(trackdict['title'])
artist_ids = [get_artist_id(a) for a in trackdict['artists']]
artist_ids = list(set(artist_ids))
@ -313,6 +314,8 @@ def get_track_id(trackdict,dbconn=None):
#print("ID for",trackdict['title'],"was",row[0])
return row.id
if not create_new: return None
op = DB['tracks'].insert().values(
**track_dict_to_db(trackdict)
@ -372,8 +375,16 @@ def edit_artist(id,artistupdatedict,dbconn=None):
return True
@connection_provider
def edit_track(id,trackdict,dbconn=None):
dbentry = track_dict_to_db(trackdict)
def edit_track(id,trackupdatedict,dbconn=None):
track = get_track(id)
track.update(trackupdatedict)
dbentry = track_dict_to_db(trackupdatedict)
existing_track = get_track_id(track,create_new=False,dbconn=dbconn)
if existing_track:
raise exc.TrackExists(track)
op = DB['tracks'].update().where(
DB['tracks'].c.id==id