Update plexapi==4.17.0

This commit is contained in:
JonnyWong16 2025-05-10 16:13:23 -07:00
parent 3cb71f94a3
commit f6bffe1850
No known key found for this signature in database
GPG key ID: B1F1F9807184697A
32 changed files with 1224 additions and 966 deletions

View file

@ -2,7 +2,7 @@
from urllib.parse import quote_plus
from plexapi import utils
from plexapi.base import PlexObject
from plexapi.base import PlexObject, cached_data_property
from plexapi.exceptions import BadRequest
@ -36,7 +36,7 @@ class PlayQueue(PlexObject):
TYPE = "playqueue"
def _loadData(self, data):
self._data = data
""" Load attribute values from Plex XML response. """
self.identifier = data.attrib.get("identifier")
self.mediaTagPrefix = data.attrib.get("mediaTagPrefix")
self.mediaTagVersion = utils.cast(int, data.attrib.get("mediaTagVersion"))
@ -62,9 +62,12 @@ class PlayQueue(PlexObject):
)
self.playQueueVersion = utils.cast(int, data.attrib.get("playQueueVersion"))
self.size = utils.cast(int, data.attrib.get("size", 0))
self.items = self.findItems(data)
self.selectedItem = self[self.playQueueSelectedItemOffset]
@cached_data_property
def items(self):
return self.findItems(self._data)
def __getitem__(self, key):
if not self.items:
return None
@ -254,7 +257,7 @@ class PlayQueue(PlexObject):
path = f"/playQueues/{self.playQueueID}{utils.joinArgs(args)}"
data = self._server.query(path, method=self._server._session.put)
self._loadData(data)
self._invalidateCacheAndLoadData(data)
return self
def moveItem(self, item, after=None, refresh=True):
@ -283,7 +286,7 @@ class PlayQueue(PlexObject):
path = f"/playQueues/{self.playQueueID}/items/{item.playQueueItemID}/move{utils.joinArgs(args)}"
data = self._server.query(path, method=self._server._session.put)
self._loadData(data)
self._invalidateCacheAndLoadData(data)
return self
def removeItem(self, item, refresh=True):
@ -301,19 +304,19 @@ class PlayQueue(PlexObject):
path = f"/playQueues/{self.playQueueID}/items/{item.playQueueItemID}"
data = self._server.query(path, method=self._server._session.delete)
self._loadData(data)
self._invalidateCacheAndLoadData(data)
return self
def clear(self):
"""Remove all items from the PlayQueue."""
path = f"/playQueues/{self.playQueueID}/items"
data = self._server.query(path, method=self._server._session.delete)
self._loadData(data)
self._invalidateCacheAndLoadData(data)
return self
def refresh(self):
"""Refresh the PlayQueue from the Plex server."""
path = f"/playQueues/{self.playQueueID}"
data = self._server.query(path, method=self._server._session.get)
self._loadData(data)
self._invalidateCacheAndLoadData(data)
return self