Match Jellyfin punctuation variants using provider metadata and strict fallback
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user