Skip to content

Commit cfb5eff

Browse files
committed
Set correct server instance for playlist items
1 parent 23ffc01 commit cfb5eff

File tree

3 files changed

+17
-3
lines changed

3 files changed

+17
-3
lines changed

Diff for: plexapi/base.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
MediaContainerT = TypeVar("MediaContainerT", bound="MediaContainer")
1818

1919
USER_DONT_RELOAD_FOR_KEYS = set()
20-
_DONT_RELOAD_FOR_KEYS = {'key'}
20+
_DONT_RELOAD_FOR_KEYS = {'key', 'sourceURI'}
2121
OPERATORS = {
2222
'exact': lambda v, q: v == q,
2323
'iexact': lambda v, q: v.lower() == q.lower(),

Diff for: plexapi/myplex.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -283,10 +283,10 @@ def resource(self, name):
283283
""" Returns the :class:`~plexapi.myplex.MyPlexResource` that matches the name specified.
284284
285285
Parameters:
286-
name (str): Name to match against.
286+
name (str): Name or machine identifier to match against.
287287
"""
288288
for resource in self.resources():
289-
if resource.name.lower() == name.lower():
289+
if resource.name.lower() == name.lower() or resource.clientIdentifier == name:
290290
return resource
291291
raise NotFound(f'Unable to find resource {name}')
292292

Diff for: plexapi/playlist.py

+14
Original file line numberDiff line numberDiff line change
@@ -190,6 +190,20 @@ def items(self):
190190
if self._items is None:
191191
key = f'{self.key}/items'
192192
items = self.fetchItems(key)
193+
194+
# Cache server connections to avoid reconnecting for each item
195+
_servers = {}
196+
for item in items:
197+
if item.sourceURI:
198+
serverID = item.sourceURI.split('/')[2]
199+
if serverID not in _servers:
200+
try:
201+
_servers[serverID] = self._server.myPlexAccount().resource(serverID).connect()
202+
except NotFound:
203+
# Override the server connection with None if the server is not found
204+
_servers[serverID] = None
205+
item._server = _servers[serverID]
206+
193207
self._items = items
194208
return self._items
195209

0 commit comments

Comments
 (0)