Match Jellyfin punctuation variants using provider metadata and strict fallback
Magent CI/CD / verify (push) Successful in 1m51s
Magent CI/CD / deploy-prod (push) Skipped
Magent CI/CD / deploy-beta (push) Skipped

This commit is contained in:
2026-09-13 17:36:31 +12:00
parent 1debf6053c
commit 765b0d2033
3 changed files with 51 additions and 15 deletions
+4 -11
View File
@@ -137,12 +137,10 @@ def jellyfin_item_matches_request(
request_provider_ids = extract_request_provider_ids(request_payload or {})
item_provider_ids = extract_request_provider_ids(item)
provider_priority = ("tmdb", "tvdb", "imdb")
for key in provider_priority:
request_id = request_provider_ids.get(key)
item_id = item_provider_ids.get(key)
if request_id and item_id and request_id == item_id:
return True
shared = set(request_provider_ids) & set(item_provider_ids)
if shared:
# Conflicting metadata must never fall through to title matching.
return all(request_provider_ids[key] == item_provider_ids[key] for key in shared)
request_title = _normalize_media_title(title)
if not request_title:
@@ -169,11 +167,6 @@ def jellyfin_item_matches_request(
if request_title in item_titles:
return True
if request_type == RequestType.tv:
for candidate in item_titles:
if candidate and (candidate.startswith(request_title) or request_title.startswith(candidate)):
return True
return False