[27] Merge branch 'pr/n1716_alter_collection-batchEdits' into nightly

pull/1719/head
meisnate12 1 year ago
commit 8f964de9f2

@ -2515,8 +2515,6 @@ class CollectionBuilder:
amount_unchanged += 1
else:
items_added.append(item)
if not self.playlist:
self.library.alter_collection(item, name, smart_label_collection=self.smart_label_collection)
amount_added += 1
if self.details["changes_webhooks"]:
self.notification_additions.append(util.item_set(item, self.library.get_id_from_maps(item.ratingKey)))
@ -2526,6 +2524,8 @@ class CollectionBuilder:
logger.info(f"Playlist: {self.name} created")
elif self.playlist and items_added:
self.obj.addItems(items_added)
elif items_added:
self.library.alter_collection(items_added, name, smart_label_collection=self.smart_label_collection)
if self.do_report and items_added:
self.library.add_additions(self.name, [(i.title, self.library.get_id_from_maps(i.ratingKey)) for i in items_added], self.library.is_movie)
logger.exorcise()
@ -2548,14 +2548,14 @@ class CollectionBuilder:
number_text = f"{i}/{total}"
logger.info(f"{number_text:>{spacing}} | {self.name} {self.Type} | - | {util.item_title(item)}")
items_removed.append(item)
if not self.playlist:
self.library.alter_collection(item, self.name, smart_label_collection=self.smart_label_collection, add=False)
amount_removed += 1
if self.details["changes_webhooks"]:
self.notification_removals.append(util.item_set(item, self.library.get_id_from_maps(item.ratingKey)))
if self.playlist and items_removed:
self.library._reload(self.obj)
self.obj.removeItems(items_removed)
elif items_removed:
self.library.alter_collection(items_removed, self.name, smart_label_collection=self.smart_label_collection, add=False)
if self.do_report and items_removed:
self.library.add_removed(self.name, [(i.title, self.library.get_id_from_maps(i.ratingKey)) for i in items_removed], self.library.is_movie)
logger.info("")

@ -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:
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
self.Plex.removeLabel(collection)
else:
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"

Loading…
Cancel
Save