Improved how custom post-processing deal with subtitles language modifier (HI and forced). #1516

pull/1523/head
morpheus65535 3 years ago
parent eb8f482eed
commit 5c5d14c045

@ -857,6 +857,7 @@ class EpisodesSubtitles(Resource):
language = request.form.get('language')
forced = True if request.form.get('forced') == 'on' else False
hi = True if request.form.get('hi') == 'on' else False
subFile = request.files.get('file')
_, ext = os.path.splitext(subFile.filename)
@ -868,6 +869,7 @@ class EpisodesSubtitles(Resource):
result = manual_upload_subtitle(path=episodePath,
language=language,
forced=forced,
hi=hi,
title=title,
scene_name=sceneName,
media_type='series',
@ -1086,6 +1088,7 @@ class MoviesSubtitles(Resource):
language = request.form.get('language')
forced = True if request.form.get('forced') == 'true' else False
hi = True if request.form.get('hi') == 'true' else False
subFile = request.files.get('file')
_, ext = os.path.splitext(subFile.filename)
@ -1097,6 +1100,7 @@ class MoviesSubtitles(Resource):
result = manual_upload_subtitle(path=moviePath,
language=language,
forced=forced,
hi=hi,
title=title,
scene_name=sceneName,
media_type='movie',

@ -249,7 +249,8 @@ def download_subtitle(path, language, audio_language, hi, forced, providers, pro
command = pp_replace(postprocessing_cmd, path, downloaded_path, downloaded_language,
downloaded_language_code2, downloaded_language_code3, audio_language,
audio_language_code2, audio_language_code3, subtitle.language.forced,
percent_score, subtitle_id, downloaded_provider, series_id, episode_id)
percent_score, subtitle_id, downloaded_provider, series_id, episode_id,
subtitle.language.hi)
if media_type == 'series':
use_pp_threshold = settings.general.getboolean('use_postprocessing_threshold')
@ -569,7 +570,8 @@ def manual_download_subtitle(path, language, audio_language, hi, forced, subtitl
command = pp_replace(postprocessing_cmd, path, downloaded_path, downloaded_language,
downloaded_language_code2, downloaded_language_code3, audio_language,
audio_language_code2, audio_language_code3, subtitle.language.forced,
percent_score, subtitle_id, downloaded_provider, series_id, episode_id)
percent_score, subtitle_id, downloaded_provider, series_id, episode_id,
subtitle.language.hi)
if media_type == 'series':
use_pp_threshold = settings.general.getboolean('use_postprocessing_threshold')
@ -610,7 +612,7 @@ def manual_download_subtitle(path, language, audio_language, hi, forced, subtitl
logging.debug('BAZARR Ended manually downloading Subtitles for file: ' + path)
def manual_upload_subtitle(path, language, forced, title, scene_name, media_type, subtitle, audio_language):
def manual_upload_subtitle(path, language, forced, hi, title, scene_name, media_type, subtitle, audio_language):
logging.debug('BAZARR Manually uploading subtitles for this file: ' + path)
single = settings.general.getboolean('single_language')
@ -663,11 +665,24 @@ def manual_upload_subtitle(path, language, forced, title, scene_name, media_type
return
subtitle_path = saved_subtitles[0].storage_path
message = language_from_alpha3(language) + (" forced" if forced else "") + " Subtitles manually uploaded."
uploaded_language_code3 = language
uploaded_language = language_from_alpha3(uploaded_language_code3)
uploaded_language_code2 = alpha2_from_alpha3(uploaded_language_code3)
if hi:
modifier_string = " HI"
elif forced:
modifier_string = " forced"
else:
modifier_string = ""
message = language_from_alpha3(language) + modifier_string + " Subtitles manually uploaded."
if hi:
modifier_code = ":hi"
elif forced:
modifier_code = ":forced"
else:
modifier_code = ""
uploaded_language_code3 = language + modifier_code
uploaded_language = language_from_alpha3(language) + modifier_string
uploaded_language_code2 = alpha2_from_alpha3(language) + modifier_code
audio_language_code2 = alpha2_from_language(audio_language)
audio_language_code3 = alpha3_from_language(audio_language)
@ -694,7 +709,8 @@ def manual_upload_subtitle(path, language, forced, title, scene_name, media_type
if use_postprocessing :
command = pp_replace(postprocessing_cmd, path, subtitle_path, uploaded_language,
uploaded_language_code2, uploaded_language_code3, audio_language,
audio_language_code2, audio_language_code3, forced, 100, "1", "manual", series_id, episode_id)
audio_language_code2, audio_language_code3, forced, 100, "1", "manual", series_id,
episode_id, hi=hi)
postprocessing(command, path)
if media_type == 'series':

@ -96,16 +96,33 @@ class PathMappings:
path_mappings = PathMappings()
def pp_replace(pp_command, episode, subtitles, language, language_code2, language_code3, episode_language, episode_language_code2, episode_language_code3, forced, score, subtitle_id, provider, series_id, episode_id):
is_forced = ":forced" if forced else ""
is_forced_string = " forced" if forced else ""
def pp_replace(pp_command, episode, subtitles, language, language_code2, language_code3, episode_language, episode_language_code2, episode_language_code3, forced, score, subtitle_id, provider, series_id, episode_id, hi):
if hi:
modifier_string = " HI"
elif forced:
modifier_string = " forced"
else:
modifier_string = ""
if hi:
modifier_code = ":hi"
modifier_code_dot = ".hi"
elif forced:
modifier_code = ":forced"
modifier_code_dot = ".forced"
else:
modifier_code = ""
modifier_code_dot = ""
pp_command = pp_command.replace('{{directory}}', os.path.dirname(episode))
pp_command = pp_command.replace('{{episode}}', episode)
pp_command = pp_command.replace('{{episode_name}}', os.path.splitext(os.path.basename(episode))[0])
pp_command = pp_command.replace('{{subtitles}}', str(subtitles))
pp_command = pp_command.replace('{{subtitles_language}}', str(language) + is_forced_string)
pp_command = pp_command.replace('{{subtitles_language_code2}}', str(language_code2) + is_forced)
pp_command = pp_command.replace('{{subtitles_language_code3}}', str(language_code3) + is_forced)
pp_command = pp_command.replace('{{subtitles_language}}', str(language) + modifier_string)
pp_command = pp_command.replace('{{subtitles_language_code2}}', str(language_code2) + modifier_code)
pp_command = pp_command.replace('{{subtitles_language_code3}}', str(language_code3) + modifier_code)
pp_command = pp_command.replace('{{subtitles_language_code2_dot}}', str(language_code2) + modifier_code_dot)
pp_command = pp_command.replace('{{subtitles_language_code3_dot}}', str(language_code3) + modifier_code_dot)
pp_command = pp_command.replace('{{episode_language}}', str(episode_language))
pp_command = pp_command.replace('{{episode_language_code2}}', str(episode_language_code2))
pp_command = pp_command.replace('{{episode_language_code3}}', str(episode_language_code3))

@ -423,14 +423,25 @@ const SettingsSubtitlesView: FunctionComponent = () => {
</Message>
<Message>
<b>{"{{subtitles_language}}"}</b> Language of the subtitles file
(may include HI or forced)
</Message>
<Message>
<b>{"{{subtitles_language_code2}}"}</b> 2-letter ISO-639 language
code of the subtitles language
code of the subtitles language (may include :hi or :forced)
</Message>
<Message>
<b>{"{{subtitles_language_code2_dot}}"}</b> 2-letter ISO-639
language code of the subtitles language (same as previous but with
dot separator instead of colon)
</Message>
<Message>
<b>{"{{subtitles_language_code3}}"}</b> 3-letter ISO-639 language
code of the subtitles language
code of the subtitles language (may include :hi or :forced)
</Message>
<Message>
<b>{"{{subtitles_language_code3_dot}}"}</b> 3-letter ISO-639
language code of the subtitles language (same as previous but with
dot separator instead of colon)
</Message>
<Message>
<b>{"{{episode_language}}"}</b> Audio language of the episode file

Loading…
Cancel
Save