diff --git a/modules/builder.py b/modules/builder.py index e879f00d..375bd39a 100644 --- a/modules/builder.py +++ b/modules/builder.py @@ -1092,6 +1092,7 @@ class CollectionBuilder: for item in self.library.get_collection_items(self.obj, self.smart_label_collection): self.plex_map[item.ratingKey] = item else: + self.obj = None self.sync = False self.run_again = False logger.info("") diff --git a/modules/plex.py b/modules/plex.py index ddc19463..316201de 100644 --- a/modules/plex.py +++ b/modules/plex.py @@ -750,23 +750,22 @@ class Plex: key = builder.filter_translation[attr] if attr in builder.filter_translation else attr if add_tags or remove_tags or sync_tags: _add_tags = add_tags if add_tags else [] - _remove = [t.lower() for t in remove_tags] if remove_tags else [] + _remove_tags = remove_tags if remove_tags else [] _sync_tags = sync_tags if sync_tags else [] - _sync = [t.lower() for t in _sync_tags] - item_tags = [item_tag.tag.lower() for item_tag in getattr(obj, key)] - _add = _add_tags + _sync_tags + try: + _item_tags = [item_tag.tag.lower() for item_tag in getattr(obj, key)] + except BadRequest: + _item_tags = [] + _add = [f"{t[:1].upper()}{t[1:]}" for t in _add_tags + _sync_tags if t.lower() not in _item_tags] + _remove = [t for t in _item_tags if (_sync_tags and t not in _sync_tags) or t in _remove_tags] if _add: - add = [f"{t[:1].upper()}{t[1:]}" for t in _add if t.lower() not in item_tags] - if add: - updated = True - self.query_data(getattr(obj, f"add{attr.capitalize()}"), add) - logger.info(f"Detail: {attr.capitalize()} {add} added") - if _remove or _sync: - remove = [t for t in item_tags if t not in _sync or t in _remove] - if remove: - updated = True - self.query_data(getattr(obj, f"remove{attr.capitalize()}"), remove) - logger.info(f"Detail: {attr.capitalize()} {remove} removed") + updated = True + self.query_data(getattr(obj, f"add{attr.capitalize()}"), _add) + logger.info(f"Detail: {attr.capitalize()} {_add} added") + if _remove: + updated = True + self.query_data(getattr(obj, f"remove{attr.capitalize()}"), _remove) + logger.info(f"Detail: {attr.capitalize()} {_remove} removed") return updated def update_item_from_assets(self, item, overlay=None): diff --git a/plex_meta_manager.py b/plex_meta_manager.py index 1da19436..a04d16c6 100644 --- a/plex_meta_manager.py +++ b/plex_meta_manager.py @@ -105,7 +105,7 @@ def start(config_path, is_test=False, time_scheduled=None, requested_collections logger.info(util.centered("| __/| | __/> < | | | | __/ || (_| | | | | | (_| | | | | (_| | (_| | __/ | ")) logger.info(util.centered("|_| |_|\\___/_/\\_\\ |_| |_|\\___|\\__\\__,_| |_| |_|\\__,_|_| |_|\\__,_|\\__, |\\___|_| ")) logger.info(util.centered(" |___/ ")) - logger.info(util.centered(" Version: 1.11.2 ")) + logger.info(util.centered(" Version: 1.11.3 ")) if time_scheduled: start_type = f"{time_scheduled} " elif is_test: start_type = "Test " elif requested_collections: start_type = "Collections "