This commit is contained in:
morpheus65535 2021-02-15 21:09:21 -05:00
parent c94bd262c6
commit 4888a2361c
1 changed files with 30 additions and 3 deletions

View File

@ -21,7 +21,7 @@ from subliminal.utils import sanitize, sanitize_release_group
from subliminal.video import Episode, Movie
from zipfile import ZipFile
from rarfile import RarFile, is_rarfile
from subliminal_patch.utils import sanitize
from subliminal_patch.utils import sanitize, fix_inconsistent_naming
from guessit import guessit
@ -30,6 +30,29 @@ logger = logging.getLogger(__name__)
language_converters.register('supersubtitles = subliminal_patch.converters.supersubtitles:SuperSubtitlesConverter')
def fix_tv_naming(title):
"""Fix TV show titles with inconsistent naming using dictionary, but do not sanitize them.
:param str title: original title.
:return: new title.
:rtype: str
"""
return fix_inconsistent_naming(title, {"Marvel's WandaVision": "WandaVision",
"Marvel's Daredevil": "Daredevil",
"Marvel's Luke Cage": "Luke Cage",
"Marvel's Iron Fist": "Iron Fist",
"Marvel's Jessica Jones": "Jessica Jones",
"DC's Legends of Tomorrow": "Legends of Tomorrow",
"Star Trek: The Next Generation": "Star Trek TNG",
}, True)
def fix_movie_naming(title):
return fix_inconsistent_naming(title, {
}, True)
class SuperSubtitlesSubtitle(Subtitle):
"""SuperSubtitles Subtitle."""
provider_name = 'supersubtitles'
@ -228,7 +251,7 @@ class SuperSubtitlesProvider(Provider, ProviderSubtitleArchiveMixin):
except IndexError:
continue
result_title = result_title.strip().replace("<EFBFBD>", "").replace(" ", ".")
result_title = fix_tv_naming(result_title).strip().replace("<EFBFBD>", "").replace(" ", ".")
if not result_title:
continue
@ -398,7 +421,11 @@ class SuperSubtitlesProvider(Provider, ProviderSubtitleArchiveMixin):
subs = self.query(title, languages, video=video)
if subs:
for item in subs:
if item.series in titles:
if isinstance(video, Episode):
fixed_title = fix_tv_naming(item.series)
else:
fixed_title = fix_movie_naming(item.series)
if fixed_title in titles:
subtitles.append(item)
time.sleep(self.multi_result_throttle)