From a8304b8d72970ce1373100fc57a255ff7396e8d7 Mon Sep 17 00:00:00 2001 From: sysmoon14 <61550824+sysmoon14@users.noreply.github.com> Date: Tue, 7 Nov 2023 10:42:09 +0000 Subject: [PATCH] Update plex.py to use batch edits Amended alter_collection to use batch edits for labels and collections --- modules/plex.py | 27 +++++++++++---------------- 1 file changed, 11 insertions(+), 16 deletions(-) diff --git a/modules/plex.py b/modules/plex.py index a016c95d..15617cf6 100644 --- a/modules/plex.py +++ b/modules/plex.py @@ -880,24 +880,19 @@ class Plex(Library): r._data.attrib.get('promotedToOwnHome'), r._data.attrib.get('promotedToSharedHome')) for r in self.Plex.fetchItems(f"/hubs/sections/{self.Plex.key}/manage")] - def alter_collection(self, item, collection, smart_label_collection=False, add=True): + def alter_collection(self, items, collection, smart_label_collection=False, add=True): + self.Plex.batchMultiEdits(items) if smart_label_collection: - self.query_data(item.addLabel if add else item.removeLabel, collection) + if add: + self.Plex.addLabel(collection) + else: + self.Plex.removeLabel(collection) else: - locked = True - item = self.reload(item) - if self.agent in ["tv.plex.agents.movie", "tv.plex.agents.series"]: - field = next((f for f in item.fields if f.name == "collection"), None) - locked = field is not None - try: - self.query_collection(item, collection, locked=locked, add=add) - except TypeError: - logger.info(item.collections) - for col in item.collections: - logger.info(col.id) - logger.info(col.key) - logger.info(col.tag) - raise + if add: + self.Plex.addCollection(collection) + else: + self.Plex.removeCollection(collection) + self.Plex.saveMultiEdits() def move_item(self, collection, item, after=None): key = f"{collection.key}/items/{item}/move"