Fix Tidal/Qobuz enrichment backfill failing on dict-type copyright and isrc fields
This commit is contained in:
parent
ef43e4b5a6
commit
5db10b552d
2 changed files with 19 additions and 7 deletions
|
|
@ -608,7 +608,9 @@ class QobuzWorker:
|
||||||
""", (duration_ms, album_id))
|
""", (duration_ms, album_id))
|
||||||
|
|
||||||
copyright_text = data.get('copyright')
|
copyright_text = data.get('copyright')
|
||||||
if copyright_text:
|
if isinstance(copyright_text, dict):
|
||||||
|
copyright_text = copyright_text.get('text', copyright_text.get('name', ''))
|
||||||
|
if copyright_text and isinstance(copyright_text, str):
|
||||||
cursor.execute("""
|
cursor.execute("""
|
||||||
UPDATE albums SET copyright = ?
|
UPDATE albums SET copyright = ?
|
||||||
WHERE id = ? AND (copyright IS NULL OR copyright = '')
|
WHERE id = ? AND (copyright IS NULL OR copyright = '')
|
||||||
|
|
@ -669,7 +671,9 @@ class QobuzWorker:
|
||||||
""", (1 if parental else 0, track_id))
|
""", (1 if parental else 0, track_id))
|
||||||
|
|
||||||
isrc = data.get('isrc')
|
isrc = data.get('isrc')
|
||||||
if isrc:
|
if isinstance(isrc, dict):
|
||||||
|
isrc = isrc.get('value', isrc.get('id', ''))
|
||||||
|
if isrc and isinstance(isrc, str):
|
||||||
cursor.execute("""
|
cursor.execute("""
|
||||||
UPDATE tracks SET isrc = ?
|
UPDATE tracks SET isrc = ?
|
||||||
WHERE id = ? AND (isrc IS NULL OR isrc = '')
|
WHERE id = ? AND (isrc IS NULL OR isrc = '')
|
||||||
|
|
@ -684,7 +688,9 @@ class QobuzWorker:
|
||||||
""", (duration_ms, track_id))
|
""", (duration_ms, track_id))
|
||||||
|
|
||||||
copyright_text = data.get('copyright')
|
copyright_text = data.get('copyright')
|
||||||
if copyright_text:
|
if isinstance(copyright_text, dict):
|
||||||
|
copyright_text = copyright_text.get('text', copyright_text.get('name', ''))
|
||||||
|
if copyright_text and isinstance(copyright_text, str):
|
||||||
cursor.execute("""
|
cursor.execute("""
|
||||||
UPDATE tracks SET copyright = ?
|
UPDATE tracks SET copyright = ?
|
||||||
WHERE id = ? AND (copyright IS NULL OR copyright = '')
|
WHERE id = ? AND (copyright IS NULL OR copyright = '')
|
||||||
|
|
|
||||||
|
|
@ -621,9 +621,11 @@ class TidalWorker:
|
||||||
WHERE id = ? AND duration IS NULL
|
WHERE id = ? AND duration IS NULL
|
||||||
""", (duration_ms, album_id))
|
""", (duration_ms, album_id))
|
||||||
|
|
||||||
# Backfill copyright
|
# Backfill copyright (can be string or dict with 'text' key in JSON:API)
|
||||||
copyright_text = data.get('copyright')
|
copyright_text = data.get('copyright')
|
||||||
if copyright_text:
|
if isinstance(copyright_text, dict):
|
||||||
|
copyright_text = copyright_text.get('text', copyright_text.get('name', ''))
|
||||||
|
if copyright_text and isinstance(copyright_text, str):
|
||||||
cursor.execute("""
|
cursor.execute("""
|
||||||
UPDATE albums SET copyright = ?
|
UPDATE albums SET copyright = ?
|
||||||
WHERE id = ? AND (copyright IS NULL OR copyright = '')
|
WHERE id = ? AND (copyright IS NULL OR copyright = '')
|
||||||
|
|
@ -693,7 +695,9 @@ class TidalWorker:
|
||||||
""", (1 if explicit else 0, track_id))
|
""", (1 if explicit else 0, track_id))
|
||||||
|
|
||||||
isrc = data.get('isrc')
|
isrc = data.get('isrc')
|
||||||
if isrc:
|
if isinstance(isrc, dict):
|
||||||
|
isrc = isrc.get('value', isrc.get('id', ''))
|
||||||
|
if isrc and isinstance(isrc, str):
|
||||||
cursor.execute("""
|
cursor.execute("""
|
||||||
UPDATE tracks SET isrc = ?
|
UPDATE tracks SET isrc = ?
|
||||||
WHERE id = ? AND (isrc IS NULL OR isrc = '')
|
WHERE id = ? AND (isrc IS NULL OR isrc = '')
|
||||||
|
|
@ -707,7 +711,9 @@ class TidalWorker:
|
||||||
""", (duration_ms, track_id))
|
""", (duration_ms, track_id))
|
||||||
|
|
||||||
copyright_text = data.get('copyright')
|
copyright_text = data.get('copyright')
|
||||||
if copyright_text:
|
if isinstance(copyright_text, dict):
|
||||||
|
copyright_text = copyright_text.get('text', copyright_text.get('name', ''))
|
||||||
|
if copyright_text and isinstance(copyright_text, str):
|
||||||
cursor.execute("""
|
cursor.execute("""
|
||||||
UPDATE tracks SET copyright = ?
|
UPDATE tracks SET copyright = ?
|
||||||
WHERE id = ? AND (copyright IS NULL OR copyright = '')
|
WHERE id = ? AND (copyright IS NULL OR copyright = '')
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue