Fixed subtitles file naming when using hearing-impaired removal mods.

pull/2079/head
morpheus65535 1 year ago
parent fefec202d1
commit e4bf041ecb

@ -94,7 +94,8 @@ class Subtitles(Resource):
radarr_id=id)
else:
use_original_format = True if args.get('original_format') == 'true' else False
subtitles_apply_mods(language, subtitles_path, [action], use_original_format)
subtitles_apply_mods(language=language, subtitle_path=subtitles_path, mods=[action],
use_original_format=use_original_format, video_path=video_path)
# apply chmod if required
chmod = int(settings.general.chmod, 8) if not sys.platform.startswith(

@ -4,19 +4,22 @@ import os
import logging
from subliminal_patch.subtitle import Subtitle
from subliminal_patch.core import get_subtitle_path
from subzero.language import Language
from app.config import settings
from languages.custom_lang import CustomLanguage
from languages.get_languages import alpha3_from_alpha2
def subtitles_apply_mods(language, subtitle_path, mods, use_original_format):
def subtitles_apply_mods(language, subtitle_path, mods, use_original_format, video_path):
language = alpha3_from_alpha2(language)
custom = CustomLanguage.from_value(language, "alpha3")
if custom is None:
lang_obj = Language(language)
else:
lang_obj = custom.subzero_language()
single = settings.general.getboolean('single_language')
sub = Subtitle(lang_obj, mods=mods, original_format=use_original_format)
with open(subtitle_path, 'rb') as f:
@ -31,8 +34,17 @@ def subtitles_apply_mods(language, subtitle_path, mods, use_original_format):
content = sub.get_modified_content()
if content:
if hasattr(sub, 'mods') and isinstance(sub.mods, list) and 'remove_HI' in sub.mods:
modded_subtitles_path = get_subtitle_path(video_path, None if single else sub.language,
forced_tag=sub.language.forced, hi_tag=False, tags=[])
else:
modded_subtitles_path = subtitle_path
if os.path.exists(subtitle_path):
os.remove(subtitle_path)
with open(subtitle_path, 'wb') as f:
if os.path.exists(modded_subtitles_path):
os.remove(modded_subtitles_path)
with open(modded_subtitles_path, 'wb') as f:
f.write(content)

@ -1118,6 +1118,9 @@ def save_subtitles(file_path, subtitles, single=False, directory=None, chmod=Non
saved_subtitles = []
for subtitle in subtitles:
# check if HI mods will be used to get the proper name for the subtitles file
must_remove_hi = 'remove_HI' in subtitle.mods
# check content
if subtitle.content is None:
logger.error('Skipping subtitle %r: no content', subtitle)
@ -1130,7 +1133,8 @@ def save_subtitles(file_path, subtitles, single=False, directory=None, chmod=Non
# create subtitle path
subtitle_path = get_subtitle_path(file_path, None if single else subtitle.language,
forced_tag=subtitle.language.forced, hi_tag=subtitle.language.hi, tags=tags)
forced_tag=subtitle.language.forced,
hi_tag=False if must_remove_hi else subtitle.language.hi, tags=tags)
if directory is not None:
subtitle_path = os.path.join(directory, os.path.split(subtitle_path)[1])

Loading…
Cancel
Save