mirror of
https://github.com/morpheus65535/bazarr
synced 2025-02-22 22:10:42 +00:00
Fixed some issues after subtitles upgrade refactor.
This commit is contained in:
parent
5dc4e782ae
commit
019613958e
5 changed files with 66 additions and 18 deletions
|
@ -7,6 +7,7 @@ import gc
|
|||
from flask_restx import Resource, Namespace, reqparse
|
||||
|
||||
from app.database import TableEpisodes, TableMovies
|
||||
from languages.get_languages import alpha3_from_alpha2
|
||||
from utilities.path_mappings import path_mappings
|
||||
from subtitles.tools.subsyncer import SubSyncer
|
||||
from subtitles.tools.translate import translate_subtitles_file
|
||||
|
@ -81,7 +82,7 @@ class Subtitles(Resource):
|
|||
del subsync
|
||||
gc.collect()
|
||||
elif action == 'translate':
|
||||
from_language = os.path.splitext(subtitles_path)[0].rsplit(".", 1)[1].replace('_', '-')
|
||||
from_language = subtitles_lang_from_filename(subtitles_path)
|
||||
dest_language = language
|
||||
forced = True if args.get('forced') == 'true' else False
|
||||
hi = True if args.get('hi') == 'true' else False
|
||||
|
@ -110,3 +111,25 @@ class Subtitles(Resource):
|
|||
event_stream(type='movie', payload=int(id))
|
||||
|
||||
return '', 204
|
||||
|
||||
|
||||
def subtitles_lang_from_filename(path):
|
||||
split_extensionless_path = os.path.splitext(path.lower())[0].rsplit(".", 2)
|
||||
|
||||
if len(split_extensionless_path) < 2:
|
||||
return None
|
||||
elif len(split_extensionless_path) == 2:
|
||||
return_lang = split_extensionless_path[-1]
|
||||
else:
|
||||
first_ext = split_extensionless_path[-1]
|
||||
second_ext = split_extensionless_path[-2]
|
||||
|
||||
if first_ext in ['hi', 'sdh', 'cc']:
|
||||
if alpha3_from_alpha2(second_ext):
|
||||
return_lang = second_ext
|
||||
else:
|
||||
return first_ext
|
||||
else:
|
||||
return_lang = first_ext
|
||||
|
||||
return return_lang.replace('_', '-')
|
||||
|
|
|
@ -14,7 +14,6 @@ from sonarr.notify import notify_sonarr
|
|||
from app.event_handler import event_stream
|
||||
|
||||
from .utils import _get_download_code3
|
||||
from .sync import sync_subtitles
|
||||
from .post_processing import postprocessing
|
||||
|
||||
|
||||
|
@ -77,6 +76,8 @@ def process_subtitle(subtitle, media_type, audio_language, path, max_score, is_u
|
|||
return
|
||||
series_id = episode_metadata['sonarrSeriesId']
|
||||
episode_id = episode_metadata['sonarrEpisodeId']
|
||||
|
||||
from .sync import sync_subtitles
|
||||
sync_subtitles(video_path=path, srt_path=downloaded_path,
|
||||
forced=subtitle.language.forced,
|
||||
srt_lang=downloaded_language_code2, media_type=media_type,
|
||||
|
@ -92,6 +93,8 @@ def process_subtitle(subtitle, media_type, audio_language, path, max_score, is_u
|
|||
return
|
||||
series_id = ""
|
||||
episode_id = movie_metadata['radarrId']
|
||||
|
||||
from .sync import sync_subtitles
|
||||
sync_subtitles(video_path=path, srt_path=downloaded_path,
|
||||
forced=subtitle.language.forced,
|
||||
srt_lang=downloaded_language_code2, media_type=media_type,
|
||||
|
|
|
@ -10,6 +10,7 @@ from languages.get_languages import language_from_alpha2
|
|||
from utilities.path_mappings import path_mappings
|
||||
from subtitles.indexer.series import store_subtitles
|
||||
from subtitles.indexer.movies import store_subtitles_movie
|
||||
from subtitles.processing import ProcessSubtitlesResult
|
||||
from sonarr.history import history_log
|
||||
from radarr.history import history_log_movie
|
||||
from sonarr.notify import notify_sonarr
|
||||
|
@ -35,7 +36,15 @@ def delete_subtitles(media_type, language, forced, hi, media_path, subtitles_pat
|
|||
language_log += ':forced'
|
||||
language_string += ' forced'
|
||||
|
||||
result = language_string + " subtitles deleted from disk."
|
||||
result = ProcessSubtitlesResult(message=language_string + " subtitles deleted from disk.",
|
||||
reversed_path=path_mappings.path_replace_reverse(media_path),
|
||||
downloaded_language_code2=language_log,
|
||||
downloaded_provider=None,
|
||||
score=None,
|
||||
forced=None,
|
||||
subtitle_id=None,
|
||||
reversed_subtitles_path=path_mappings.path_replace_reverse(subtitles_path),
|
||||
hearing_impaired=None)
|
||||
|
||||
if media_type == 'series':
|
||||
try:
|
||||
|
@ -45,9 +54,7 @@ def delete_subtitles(media_type, language, forced, hi, media_path, subtitles_pat
|
|||
store_subtitles(path_mappings.path_replace_reverse(media_path), media_path)
|
||||
return False
|
||||
else:
|
||||
history_log(0, sonarr_series_id, sonarr_episode_id, result, language=language_log,
|
||||
video_path=path_mappings.path_replace_reverse(media_path),
|
||||
subtitles_path=path_mappings.path_replace_reverse(subtitles_path))
|
||||
history_log(0, sonarr_series_id, sonarr_episode_id, result)
|
||||
store_subtitles(path_mappings.path_replace_reverse(media_path), media_path)
|
||||
notify_sonarr(sonarr_series_id)
|
||||
event_stream(type='series', action='update', payload=sonarr_series_id)
|
||||
|
@ -61,9 +68,7 @@ def delete_subtitles(media_type, language, forced, hi, media_path, subtitles_pat
|
|||
store_subtitles_movie(path_mappings.path_replace_reverse_movie(media_path), media_path)
|
||||
return False
|
||||
else:
|
||||
history_log_movie(0, radarr_id, result, language=language_log,
|
||||
video_path=path_mappings.path_replace_reverse_movie(media_path),
|
||||
subtitles_path=path_mappings.path_replace_reverse_movie(subtitles_path))
|
||||
history_log_movie(0, radarr_id, result)
|
||||
store_subtitles_movie(path_mappings.path_replace_reverse_movie(media_path), media_path)
|
||||
notify_radarr(radarr_id)
|
||||
event_stream(type='movie-wanted', action='update', payload=radarr_id)
|
||||
|
|
|
@ -8,6 +8,7 @@ from ffsubsync.ffsubsync import run, make_parser
|
|||
from utilities.binaries import get_binary
|
||||
from radarr.history import history_log_movie
|
||||
from sonarr.history import history_log
|
||||
from subtitles.processing import ProcessSubtitlesResult
|
||||
from languages.get_languages import language_from_alpha2
|
||||
from utilities.path_mappings import path_mappings
|
||||
from app.config import settings
|
||||
|
@ -83,14 +84,21 @@ class SubSyncer:
|
|||
"scale factor of {2}.".format(language_from_alpha2(srt_lang), offset_seconds,
|
||||
"{:.2f}".format(framerate_scale_factor))
|
||||
|
||||
result = ProcessSubtitlesResult(message=message,
|
||||
reversed_path=path_mappings.path_replace_reverse(self.reference),
|
||||
downloaded_language_code2=srt_lang,
|
||||
downloaded_provider=None,
|
||||
score=None,
|
||||
forced=None,
|
||||
subtitle_id=None,
|
||||
reversed_subtitles_path=srt_path,
|
||||
hearing_impaired=None)
|
||||
|
||||
if media_type == 'series':
|
||||
history_log(action=5, sonarr_series_id=sonarr_series_id, sonarr_episode_id=sonarr_episode_id,
|
||||
description=message, video_path=path_mappings.path_replace_reverse(self.reference),
|
||||
language=srt_lang, subtitles_path=srt_path)
|
||||
result=result)
|
||||
else:
|
||||
history_log_movie(action=5, radarr_id=radarr_id, description=message,
|
||||
video_path=path_mappings.path_replace_reverse_movie(self.reference),
|
||||
language=srt_lang, subtitles_path=srt_path)
|
||||
history_log_movie(action=5, radarr_id=radarr_id, result=result)
|
||||
else:
|
||||
logging.error('BAZARR unable to sync subtitles: {0}'.format(self.srtin))
|
||||
|
||||
|
|
|
@ -11,6 +11,7 @@ from languages.custom_lang import CustomLanguage
|
|||
from languages.get_languages import alpha3_from_alpha2, language_from_alpha2, language_from_alpha3
|
||||
from radarr.history import history_log_movie
|
||||
from sonarr.history import history_log
|
||||
from subtitles.processing import ProcessSubtitlesResult
|
||||
|
||||
|
||||
def translate_subtitles_file(video_path, source_srt_file, from_lang, to_lang, forced, hi, media_type, sonarr_series_id,
|
||||
|
@ -84,11 +85,19 @@ def translate_subtitles_file(video_path, source_srt_file, from_lang, to_lang, fo
|
|||
|
||||
message = f"{language_from_alpha2(from_lang)} subtitles translated to {language_from_alpha3(to_lang)}."
|
||||
|
||||
result = ProcessSubtitlesResult(message=message,
|
||||
reversed_path=video_path,
|
||||
downloaded_language_code2=to_lang,
|
||||
downloaded_provider=None,
|
||||
score=None,
|
||||
forced=None,
|
||||
subtitle_id=None,
|
||||
reversed_subtitles_path=dest_srt_file,
|
||||
hearing_impaired=None)
|
||||
|
||||
if media_type == 'series':
|
||||
history_log(action=6, sonarr_series_id=sonarr_series_id, sonarr_episode_id=sonarr_episode_id,
|
||||
description=message, video_path=video_path, language=to_lang, subtitles_path=dest_srt_file)
|
||||
history_log(action=6, sonarr_series_id=sonarr_series_id, sonarr_episode_id=sonarr_episode_id, result=result)
|
||||
else:
|
||||
history_log_movie(action=6, radarr_id=radarr_id, description=message,
|
||||
video_path=video_path, language=to_lang, subtitles_path=dest_srt_file)
|
||||
history_log_movie(action=6, radarr_id=radarr_id, result=result)
|
||||
|
||||
return dest_srt_file
|
||||
|
|
Loading…
Reference in a new issue