Skip to content

Commit 8d5990b

Browse files
committed
Added Plex library refresh calls for series and movies after subtitle deletions or modifications if Plex integration is enabled.
1 parent 90f9558 commit 8d5990b

File tree

2 files changed

+34
-6
lines changed

2 files changed

+34
-6
lines changed

bazarr/api/subtitles/subtitles.py

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,10 @@
22

33
import os
44
import sys
5-
import gc
65

76
from flask_restx import Resource, Namespace, reqparse, fields, marshal
87

9-
from app.database import TableEpisodes, TableMovies, database, select
8+
from app.database import TableShows, TableEpisodes, TableMovies, database, select
109
from languages.get_languages import alpha3_from_alpha2
1110
from utilities.path_mappings import path_mappings
1211
from utilities.video_analyzer import subtitles_sync_references
@@ -18,6 +17,8 @@
1817
from subtitles.sync import sync_subtitles
1918
from app.config import settings, empty_values, get_array_from
2019
from app.event_handler import event_stream
20+
from plex.operations import plex_refresh_item
21+
2122

2223
from ..utils import authenticate
2324

@@ -122,7 +123,9 @@ def patch(self):
122123

123124
if media_type == 'episode':
124125
metadata = database.execute(
125-
select(TableEpisodes.path, TableEpisodes.sonarrSeriesId, TableEpisodes.subtitles)
126+
select(TableEpisodes.path, TableEpisodes.sonarrSeriesId, TableEpisodes.subtitles, TableEpisodes.season,
127+
TableEpisodes.episode, TableShows.imdbId)
128+
.join(TableShows)
126129
.where(TableEpisodes.sonarrEpisodeId == id)) \
127130
.first()
128131

@@ -132,7 +135,7 @@ def patch(self):
132135
video_path = path_mappings.path_replace(metadata.path)
133136
else:
134137
metadata = database.execute(
135-
select(TableMovies.path, TableMovies.subtitles)
138+
select(TableMovies.path, TableMovies.subtitles, TableMovies.imdbId)
136139
.where(TableMovies.radarrId == id))\
137140
.first()
138141

@@ -190,7 +193,6 @@ def patch(self):
190193
except OSError:
191194
return 'Unable to edit subtitles file. Check logs.', 409
192195
else:
193-
use_original_format = True if args.get('original_format') == 'true' else False
194196
try:
195197
subtitles_apply_mods(language=language, subtitle_path=subtitles_path, mods=[action],
196198
video_path=video_path)
@@ -207,10 +209,17 @@ def patch(self):
207209
store_subtitles(path_mappings.path_replace_reverse(video_path), video_path)
208210
event_stream(type='series', payload=metadata.sonarrSeriesId)
209211
event_stream(type='episode', payload=id)
212+
213+
if settings.general.use_plex and settings.plex.update_series_library:
214+
plex_refresh_item(metadata.imdbId, is_movie=False, season=metadata.season,
215+
episode=metadata.episode)
210216
else:
211217
store_subtitles_movie(path_mappings.path_replace_reverse_movie(video_path), video_path)
212218
event_stream(type='movie', payload=id)
213219

220+
if settings.general.use_plex and settings.plex.update_movie_library:
221+
plex_refresh_item(metadata.imdbId, is_movie=True)
222+
214223
return '', 204
215224

216225

bazarr/subtitles/tools/delete.py

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
from subliminal.subtitle import SUBTITLE_EXTENSIONS
77

88
from app.event_handler import event_stream
9+
from app.config import settings
10+
from app.database import database, TableShows, TableEpisodes, TableMovies, select
911
from languages.get_languages import language_from_alpha2
1012
from utilities.path_mappings import path_mappings
1113
from utilities.autopulse_webhook import call_external_webhook
@@ -16,6 +18,7 @@
1618
from radarr.history import history_log_movie
1719
from sonarr.notify import notify_sonarr
1820
from radarr.notify import notify_radarr
21+
from plex.operations import plex_refresh_item
1922

2023

2124
def delete_subtitles(media_type, language, forced, hi, media_path, subtitles_path, sonarr_series_id=None,
@@ -40,10 +43,19 @@ def delete_subtitles(media_type, language, forced, hi, media_path, subtitles_pat
4043
if media_type == 'series':
4144
pr = path_mappings.path_replace
4245
prr = path_mappings.path_replace_reverse
46+
47+
metadata = database.execute(
48+
select(TableEpisodes.season, TableEpisodes.episode, TableShows.imdbId)
49+
.join(TableShows)
50+
.where(TableEpisodes.sonarrEpisodeId == sonarr_episode_id)).first()
4351
else:
4452
pr = path_mappings.path_replace_movie
4553
prr = path_mappings.path_replace_reverse_movie
4654

55+
metadata = database.execute(
56+
select(TableMovies.imdbId)
57+
.where(TableMovies.radarrId == radarr_id)).first()
58+
4759
result = ProcessSubtitlesResult(message=f"{language_string} subtitles deleted from disk.",
4860
reversed_path=prr(media_path),
4961
downloaded_language_code2=language_log,
@@ -67,6 +79,10 @@ def delete_subtitles(media_type, language, forced, hi, media_path, subtitles_pat
6779
notify_sonarr(sonarr_series_id)
6880
event_stream(type='series', action='update', payload=sonarr_series_id)
6981
event_stream(type='episode-wanted', action='update', payload=sonarr_episode_id)
82+
83+
if settings.general.use_plex and settings.plex.update_series_library:
84+
plex_refresh_item(metadata.imdbId, is_movie=False, season=metadata.season,
85+
episode=metadata.episode)
7086

7187
# Call external webhook after all processing is complete
7288
call_external_webhook(
@@ -89,7 +105,10 @@ def delete_subtitles(media_type, language, forced, hi, media_path, subtitles_pat
89105
store_subtitles_movie(prr(media_path), media_path)
90106
notify_radarr(radarr_id)
91107
event_stream(type='movie-wanted', action='update', payload=radarr_id)
92-
108+
109+
if settings.general.use_plex and settings.plex.update_movie_library:
110+
plex_refresh_item(metadata.imdbId, is_movie=True)
111+
93112
# Call external webhook after all processing is complete
94113
call_external_webhook(
95114
subtitle_path=subtitles_path,

0 commit comments

Comments
 (0)