Fixed subdl provider not detecting hearing-impaired markers in release names

This commit is contained in:
TowyTowy
2026-07-17 03:12:28 +02:00
committed by GitHub
parent 409b3b7ef9
commit 3da207aa33
2 changed files with 34 additions and 1 deletions

View File

@@ -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):

View File

@@ -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"]