Skip to content

Commit 9651f77

Browse files
committed
add posters methods to playlist
poster displays from hub but reverts to composite when on playlist page uploaded poster are only visible with the posters method or it's endpoint not in the webui
1 parent dedab2b commit 9651f77

File tree

1 file changed

+21
-0
lines changed

1 file changed

+21
-0
lines changed

plexapi/playlist.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -268,3 +268,24 @@ def sync(self, videoQuality=None, photoResolution=None, audioBitrate=None, clien
268268
raise Unsupported('Unsupported playlist content')
269269

270270
return myplex.sync(sync_item, client=client, clientId=clientId)
271+
272+
def posters(self):
273+
""" Returns list of available poster objects. :class:`~plexapi.media.Poster`. """
274+
275+
return self.fetchItems('/library/metadata/%s/posters' % self.ratingKey)
276+
277+
def uploadPoster(self, url=None, filepath=None):
278+
""" Upload poster from url or filepath. :class:`~plexapi.media.Poster` to :class:`~plexapi.video.Video`. """
279+
if url:
280+
key = '/library/metadata/%s/posters?url=%s' % (self.ratingKey, quote_plus(url))
281+
self._server.query(key, method=self._server._session.post)
282+
elif filepath:
283+
key = '/library/metadata/%s/posters?' % self.ratingKey
284+
data = open(filepath, 'rb').read()
285+
self._server.query(key, method=self._server._session.post, data=data)
286+
287+
def setPoster(self, poster):
288+
""" Set . :class:`~plexapi.media.Poster` to :class:`~plexapi.video.Video` """
289+
key = poster._initpath[:-1]
290+
data = '%s?url=%s' % (key, quote_plus(poster.ratingKey))
291+
self._server.query(data, method=self._server._session.put)

0 commit comments

Comments
 (0)