Skip to content

Commit

Permalink
Fix duplicate artist links
Browse files Browse the repository at this point in the history
INSERT OR REPLACE does not work when null values are provided as part of the unique index
  • Loading branch information
GregoireDruant committed Jun 13, 2023
1 parent 08b6e7e commit eb68918
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 2 deletions.
4 changes: 2 additions & 2 deletions jellyfin_kodi/objects/kodi/kodi.py
Original file line number Diff line number Diff line change
Expand Up @@ -147,8 +147,8 @@ def add_thumbnail(person_id, person, person_type):
bulk_updates.setdefault(sql, []).append((person_id,) + args)

elif person['Type'] == 'Artist':
sql = QU.update_link.replace("{LinkType}", 'actor_link')
bulk_updates.setdefault(sql, []).append((person_id,) + args)
sql = QU.insert_link_if_not_exists.replace("{LinkType}", 'actor_link')
bulk_updates.setdefault(sql, []).append((person_id,) + args + (person_id,) + args)

add_thumbnail(person_id, person, person['Type'])

Expand Down
7 changes: 7 additions & 0 deletions jellyfin_kodi/objects/kodi/queries.py
Original file line number Diff line number Diff line change
Expand Up @@ -395,6 +395,13 @@
INSERT OR REPLACE INTO {LinkType}(actor_id, media_id, media_type)
VALUES (?, ?, ?)
"""
# update_link does not work for actor_link as not all values from unique index are provided
# Resulting in duplicates
insert_link_if_not_exists = """
INSERT INTO {LinkType}(actor_id, media_id, media_type)
SELECT ?, ?, ?
WHERE NOT EXISTS(SELECT 1 FROM {LinkType} WHERE actor_id = ? AND media_id = ? AND media_type = ?)
"""
update_movie = """
UPDATE movie
SET c00 = ?, c01 = ?, c02 = ?, c03 = ?, c04 = ?, c05 = ?, c06 = ?,
Expand Down

0 comments on commit eb68918

Please sign in to comment.