@@ -147,6 +147,7 @@ def patch(self):
147147
148148 if action == 'sync' :
149149 try :
150+ postprocess_callback = lambda : postprocess_subtitles (subtitles_path , video_path , media_type , metadata , id )
150151 sync_subtitles (video_path = video_path , srt_path = subtitles_path , srt_lang = language , hi = hi , forced = forced ,
151152 percent_score = 0 , # make sure to always sync when requested manually
152153 reference = args .get ('reference' ) if args .get ('reference' ) not in empty_values else
@@ -160,6 +161,7 @@ def patch(self):
160161 sonarr_episode_id = id if media_type == "episode" else None ,
161162 radarr_id = id if media_type == "movie" else None ,
162163 force_sync = True ,
164+ callback = postprocess_callback
163165 )
164166 except OSError :
165167 return 'Unable to edit subtitles file. Check logs.' , 409
@@ -185,48 +187,47 @@ def patch(self):
185187 return 'Invalid source language code' , 400
186188
187189 try :
188- result = translate_subtitles_file (video_path = video_path , source_srt_file = subtitles_path ,
190+ translate_subtitles_file (video_path = video_path , source_srt_file = subtitles_path ,
189191 from_lang = from_language , to_lang = dest_language , forced = forced , hi = hi ,
190192 media_type = "series" if media_type == "episode" else "movies" ,
191193 sonarr_series_id = metadata .sonarrSeriesId if media_type == "episode" else None ,
192194 sonarr_episode_id = id ,
193- radarr_id = id )
194- if isinstance (result , str ):
195- subtitles_path = result
196- elif result is False :
197- return 'Translation failed. Check logs for more details.' , 502
195+ radarr_id = id ,
196+ metadata = metadata )
198197
199198 except OSError :
200199 return 'Unable to edit subtitles file. Check logs.' , 409
201200 else :
202201 try :
203202 subtitles_apply_mods (language = language , subtitle_path = subtitles_path , mods = [action ],
204203 video_path = video_path )
204+ postprocess_subtitles (subtitles_path , video_path , media_type , metadata , id )
205205 except OSError :
206206 return 'Unable to edit subtitles file. Check logs.' , 409
207207
208- # apply chmod if required
209- chmod = int (settings .general .chmod , 8 ) if not sys .platform .startswith (
210- 'win' ) and settings .general .chmod_enabled else None
211- if chmod :
212- os .chmod (subtitles_path , chmod )
208+ return '' , 204
213209
214- if media_type == 'episode' :
215- store_subtitles (path_mappings .path_replace_reverse (video_path ), video_path )
216- event_stream (type = 'series' , payload = metadata .sonarrSeriesId )
217- event_stream (type = 'episode' , payload = id )
218210
219- if settings .general .use_plex and settings .plex .update_series_library :
220- plex_refresh_item (metadata .imdbId , is_movie = False , season = metadata .season ,
221- episode = metadata .episode )
222- else :
223- store_subtitles_movie (path_mappings .path_replace_reverse_movie (video_path ), video_path )
224- event_stream (type = 'movie' , payload = id )
211+ def postprocess_subtitles (subtitles_path , video_path , media_type , metadata , id ):
212+ # apply chmod if required
213+ chmod = int (settings .general .chmod , 8 ) if not sys .platform .startswith ('win' ) and settings .general .chmod_enabled else None
214+ if chmod :
215+ os .chmod (subtitles_path , chmod )
225216
226- if settings .general .use_plex and settings .plex .update_movie_library :
227- plex_refresh_item (metadata .imdbId , is_movie = True )
217+ if media_type == 'episode' :
218+ store_subtitles (path_mappings .path_replace_reverse (video_path ), video_path )
219+ event_stream (type = 'series' , payload = metadata .sonarrSeriesId )
220+ event_stream (type = 'episode' , payload = id )
228221
229- return '' , 204
222+ if settings .general .use_plex and settings .plex .update_series_library :
223+ plex_refresh_item (metadata .imdbId , is_movie = False , season = metadata .season ,
224+ episode = metadata .episode )
225+ else :
226+ store_subtitles_movie (path_mappings .path_replace_reverse_movie (video_path ), video_path )
227+ event_stream (type = 'movie' , payload = id )
228+
229+ if settings .general .use_plex and settings .plex .update_movie_library :
230+ plex_refresh_item (metadata .imdbId , is_movie = True )
230231
231232
232233def subtitles_lang_from_filename (path ):
0 commit comments