Skip to content

Commit d23b9a0

Browse files
committed
adding uploadSubtitles and removeSubtitles functions
1 parent 3f2d076 commit d23b9a0

File tree

1 file changed

+13
-28
lines changed

1 file changed

+13
-28
lines changed

plexapi/video.py

Lines changed: 13 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@
33
from plexapi.exceptions import BadRequest, NotFound
44
from plexapi.base import Playable, PlexPartialObject
55
from plexapi.compat import quote_plus
6-
import ntpath
6+
import os
7+
78

89
class Video(PlexPartialObject):
910
""" Base class for all video objects including :class:`~plexapi.video.Movie`,
@@ -227,27 +228,19 @@ def subtitleStreams(self):
227228
streams += part.subtitleStreams()
228229
return streams
229230

230-
def uploadSubtitles(self, file):
231+
def uploadSubtitles(self, filepath):
231232
""" Upload Subtitle file for video. """
232233
url = '%s/subtitles' % self.key
233-
filename = ntpath.basename(file)
234-
with open(file, 'rb') as subfile:
234+
filename = os.path.basename(filepath)
235+
subFormat = os.path.splitext(filepath)[1][1:]
236+
with open(filepath, 'rb') as subfile:
235237
params = {'title': filename,
236-
'format': filename.rsplit('.', 1)[1]
238+
'format': subFormat
237239
}
238240
headers = {'Accept': 'text/plain, */*'}
239241
self._server.query(url, self._server._session.post, data=subfile, params=params, headers=headers)
240242
self.reload()
241243

242-
def selectSubtitle(self, streamID=int, streamTitle=str):
243-
""" Select Subtitle for movie. """
244-
url = '/library/parts/%s' % self.media[0].parts[0].id
245-
for stream in self.subtitleStreams():
246-
if streamID == stream.id or streamTitle == stream.title:
247-
params = {'subtitleStreamID': stream.id}
248-
self._server.query(url, self._server._session.put, params=params)
249-
self.reload()
250-
251244
def removeSubtitles(self, streamID=int, streamTitle=str):
252245
""" Remove Subtitle from movie's subtitles listing. """
253246
for stream in self.subtitleStreams():
@@ -659,29 +652,21 @@ def subtitleStreams(self):
659652
streams += part.subtitleStreams()
660653
return streams
661654

662-
def uploadSubtitles(self, file):
655+
def uploadSubtitles(self, filepath):
663656
""" Upload Subtitle file for video. """
664657
url = '%s/subtitles' % self.key
665-
filename = ntpath.basename(file)
666-
with open(file, 'rb') as subfile:
658+
filename = os.path.basename(filepath)
659+
subFormat = os.path.splitext(filepath)[1][1:]
660+
with open(filepath, 'rb') as subfile:
667661
params = {'title': filename,
668-
'format': filename.rsplit('.', 1)[1]
662+
'format': subFormat
669663
}
670664
headers = {'Accept': 'text/plain, */*'}
671665
self._server.query(url, self._server._session.post, data=subfile, params=params, headers=headers)
672666
self.reload()
673667

674-
def selectSubtitle(self, streamID=int, streamTitle=str):
675-
""" Select Subtitle for episode. """
676-
url = '/library/parts/%s' % self.media[0].parts[0].id
677-
for stream in self.subtitleStreams():
678-
if streamID == stream.id or streamTitle == stream.title:
679-
params = {'subtitleStreamID': stream.id}
680-
self._server.query(url, self._server._session.put, params=params)
681-
self.reload()
682-
683668
def removeSubtitles(self, streamID=int, streamTitle=str):
684-
""" Remove Subtitle from episode's subtitles listing. """
669+
""" Remove Subtitle from movie's subtitles listing. """
685670
for stream in self.subtitleStreams():
686671
if streamID == stream.id or streamTitle == stream.title:
687672
self._server.query(stream.key, self._server._session.delete)

0 commit comments

Comments
 (0)