Avoided ID pollution from loading and deleting artists

This commit is contained in:
krateng 2022-04-07 21:20:35 +02:00
parent a142804bfe
commit 9f26cce34b
2 changed files with 11 additions and 2 deletions

View File

@ -20,10 +20,17 @@ def load_associated_rules():
# load from file
raw = tsv.parse_all(data_dir["rules"](),"string","string","string")
rules = [{'source_artist':b,'target_artist':c} for [a,b,c] in raw if a=="countas"]
#for rule in rules:
# print(f"Rule to replace {rule['source_artist']} with {rule['target_artist']}:")
# test = {k:sqldb.get_artist_id(rule[k],create_new=False) for k in rule}
# if test['source_artist'] is None: print("axed")
#allartists = set([*[r['source_artist'] for r in rules],*[r['target_artist'] for r in rules]])
# find ids
rules = [{k:sqldb.get_artist_id(rule[k]) for k in rule} for rule in rules]
rules = [{k:sqldb.get_artist_id(rule[k],create_new=False) for k in rule} for rule in rules]
rules = [r for r in rules if r['source_artist'] is not None]
# write to db
ops = [

View File

@ -328,7 +328,7 @@ def get_track_id(trackdict,dbconn=None):
@cached_wrapper
@connection_provider
def get_artist_id(artistname,dbconn=None):
def get_artist_id(artistname,create_new=True,dbconn=None):
nname = normalize_name(artistname)
#print("looking for",nname)
@ -342,6 +342,8 @@ def get_artist_id(artistname,dbconn=None):
#print("ID for",artistname,"was",row[0])
return row.id
if not create_new: return None
op = DB['artists'].insert().values(
name=artistname,
name_normalized=nname