From 3da207aa33c90b81020060b07dd8a08a7ccbd021 Mon Sep 17 00:00:00 2001 From: TowyTowy <85077986+TowyTowy@users.noreply.github.com> Date: Fri, 17 Jul 2026 03:12:28 +0200 Subject: [PATCH] Fixed subdl provider not detecting hearing-impaired markers in release names --- .../subliminal_patch/providers/subdl.py | 2 +- tests/subliminal_patch/test_subdl.py | 33 +++++++++++++++++++ 2 files changed, 34 insertions(+), 1 deletion(-) diff --git a/custom_libs/subliminal_patch/providers/subdl.py b/custom_libs/subliminal_patch/providers/subdl.py index 3a3a61531..a397d7e92 100644 --- a/custom_libs/subliminal_patch/providers/subdl.py +++ b/custom_libs/subliminal_patch/providers/subdl.py @@ -544,7 +544,7 @@ class SubdlProvider(Provider): return True # Comments or release names include some specific strings - hi_keys = [item.get('comment', '').lower(), [x.lower() for x in item.get('releases', [])]] + hi_keys = [item.get('comment', '').lower()] + [x.lower() for x in item.get('releases', [])] hi_tag = ['_hi_', ' hi ', '.hi.', 'hi ', ' hi', 'sdh', '𝓢𝓓𝓗'] for key in hi_keys: if any(x in key for x in hi_tag): diff --git a/tests/subliminal_patch/test_subdl.py b/tests/subliminal_patch/test_subdl.py index 6a12d336d..c90a3fda7 100644 --- a/tests/subliminal_patch/test_subdl.py +++ b/tests/subliminal_patch/test_subdl.py @@ -299,6 +299,39 @@ def test_download_ai_translation_job_failure(requests_mock, mocker): assert sub.content is None +def test_is_hi_marker_in_comment(): + # An HI/SDH marker in the uploader comment flags the subtitle as hearing impaired. + item = { + "comment": "SDH version", + "name": "dune-en.zip", + "releases": [MATCHING_RELEASE], + } + assert SubdlProvider._is_hi(item) is True + + +def test_is_hi_marker_in_release_name(): + # An HI/SDH marker present only in a release name must be detected too. This + # used to be a dead branch: the release names were nested as a list inside + # hi_keys, so `x in key` did exact list membership instead of the intended + # substring scan and never matched a real release name. + item = { + "comment": "", + "name": "dune-en.zip", + "releases": ["Dune.2021.1080p.WEBRip.DD5.1.x264.SDH-SHITBOX"], + } + assert SubdlProvider._is_hi(item) is True + + +def test_is_hi_negative(): + # No HI markers anywhere: not hearing impaired. + item = { + "comment": "great subtitle", + "name": "dune-en.zip", + "releases": [MATCHING_RELEASE, OTHER_RELEASE], + } + assert SubdlProvider._is_hi(item) is False + + def test_list_subtitles_movie(provider, movies, languages): for sub in provider.list_subtitles(movies["dune"], {languages["en"]}): assert sub.language == languages["en"]