diff --git a/docs/home/environmental.md b/docs/home/environmental.md index 0eafd453..5ce516b5 100644 --- a/docs/home/environmental.md +++ b/docs/home/environmental.md @@ -28,6 +28,7 @@ These docs are assuming you have a basic understanding of Docker concepts. One | [Resume Run](#resume-run) | `-re` or `--resume` | `PMM_RESUME` | | [No Countdown](#no-countdown) | `-nc` or `--no-countdown` | `PMM_NO_COUNTDOWN` | | [No Missing](#no-missing) | `-nm` or `--no-missing` | `PMM_NO_MISSING` | +| [No Report](#no-report) | `-nr` or `--no-report` | `PMM_NO_REPORT` | | [Read Only Config](#read-only-config) | `-ro` or `--read-only-config` | `PMM_READ_ONLY_CONFIG` | | [Divider Character](#divider-character--screen-width) | `-d` or `--divider` | `PMM_DIVIDER` | | [Screen Width](#divider-character--screen-width) | `-w` or `--width` | `PMM_WIDTH` | @@ -854,6 +855,45 @@ docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex +### No Report + +Run without saving report. + + + + + + + + + + + + + + + + + +
ShellEnvironment
Flags-nr or --no-reportPMM_NO_REPORT
Example--no-reportPMM_NO_REPORT=true
+ +
+ Local Environment + +```shell +python plex_meta_manager.py --no-report +``` + +
+
+ Docker Environment + +```shell +docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --no-report +``` + +
+ ### Read Only Config Run without writing to the configuration file diff --git a/modules/builder.py b/modules/builder.py index 91ecf84f..e35284a5 100644 --- a/modules/builder.py +++ b/modules/builder.py @@ -792,7 +792,8 @@ class CollectionBuilder: if self.smart_url: self.sync = False - self.do_missing = not self.config.no_missing and (self.details["show_missing"] or self.details["save_report"] + self.do_report = not self.config.no_report and (self.details["save_report"]) + self.do_missing = not self.config.no_missing and (self.details["show_missing"] or self.do_report or (self.library.Radarr and self.radarr_details["add_missing"]) or (self.library.Sonarr and self.sonarr_details["add_missing"])) if self.build_collection: @@ -1790,7 +1791,7 @@ class CollectionBuilder: self.filtered_keys[item.ratingKey] = current_title if self.details["show_filtered"] is True: logger.info(f"{name} {self.Type} | X | {current_title}") - if self.details["save_report"] is True and filtered_items: + if self.do_report and filtered_items: self.library.add_filtered(self.name, [(i.title, self.library.get_id_from_maps(i.ratingKey)) for i in filtered_items], self.library.is_movie) def build_filter(self, method, plex_filter, display=False, default_sort=None): @@ -2186,7 +2187,7 @@ class CollectionBuilder: logger.info(f"Playlist: {self.name} created") elif self.playlist and items_added: self.obj.addItems(items_added) - if self.details["save_report"] is True and items_added: + 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() logger.info("") @@ -2216,7 +2217,7 @@ class CollectionBuilder: if self.playlist and items_removed: self.obj.reload() self.obj.removeItems(items_removed) - if self.details["save_report"] is True and items_removed: + 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("") logger.info(f"{amount_removed} {self.builder_level.capitalize()}{'s' if amount_removed == 1 else ''} Removed") @@ -2366,7 +2367,7 @@ class CollectionBuilder: logger.info("") logger.info(f"{len(missing_movies_with_names)} Movie{'s' if len(missing_movies_with_names) > 1 else ''} Missing") if len(missing_movies_with_names) > 0: - if self.details["save_report"] is True: + if self.do_report: self.library.add_missing(self.name, missing_movies_with_names, True) if self.run_again or (self.library.Radarr and (self.radarr_details["add_missing"] or "item_radarr_tag" in self.item_details)): missing_tmdb_ids = [missing_id for title, missing_id in missing_movies_with_names] @@ -2385,7 +2386,7 @@ class CollectionBuilder: logger.error(e) if self.run_again: self.run_again_movies.extend(missing_tmdb_ids) - if len(filtered_movies_with_names) > 0 and self.details["save_report"] is True: + if len(filtered_movies_with_names) > 0 and self.do_report: self.library.add_filtered(self.name, filtered_movies_with_names, True) if len(self.missing_shows) > 0 and self.library.is_show: if self.details["show_missing"] is True: @@ -2411,7 +2412,7 @@ class CollectionBuilder: logger.info("") logger.info(f"{len(missing_shows_with_names)} Show{'s' if len(missing_shows_with_names) > 1 else ''} Missing") if len(missing_shows_with_names) > 0: - if self.details["save_report"] is True: + if self.do_report: self.library.add_missing(self.name, missing_shows_with_names, False) if self.run_again or (self.library.Sonarr and (self.sonarr_details["add_missing"] or "item_sonarr_tag" in self.item_details)): missing_tvdb_ids = [missing_id for title, missing_id in missing_shows_with_names] @@ -2430,13 +2431,13 @@ class CollectionBuilder: logger.error(e) if self.run_again: self.run_again_shows.extend(missing_tvdb_ids) - if len(filtered_shows_with_names) > 0 and self.details["save_report"] is True: + if len(filtered_shows_with_names) > 0 and self.do_report: self.library.add_filtered(self.name, filtered_shows_with_names, False) if len(self.missing_parts) > 0 and self.library.is_show: if self.details["show_missing"] is True: for missing in self.missing_parts: logger.info(f"{self.name} {self.Type} | ? | {missing}") - if self.details["save_report"] is True: + if self.do_report: self.library.add_missing(self.name, self.missing_parts, False) return added_to_radarr, added_to_sonarr diff --git a/modules/config.py b/modules/config.py index b63d7143..13496f65 100644 --- a/modules/config.py +++ b/modules/config.py @@ -99,6 +99,7 @@ class ConfigFile: self.read_only = attrs["read_only"] if "read_only" in attrs else False self.version = attrs["version"] if "version" in attrs else None self.no_missing = attrs["no_missing"] if "no_missing" in attrs else None + self.no_report = attrs["no_report"] if "no_report" in attrs else None self.test_mode = attrs["test"] if "test" in attrs else False self.trace_mode = attrs["trace"] if "trace" in attrs else False self.delete_collections = attrs["delete"] if "delete" in attrs else False diff --git a/plex_meta_manager.py b/plex_meta_manager.py index fda79b63..4fab9b68 100644 --- a/plex_meta_manager.py +++ b/plex_meta_manager.py @@ -40,6 +40,7 @@ parser.add_argument("-ca", "--cache-library", "--cache-libraries", dest="cache_l parser.add_argument("-dc", "--delete", "--delete-collections", dest="delete", help="Deletes all Collections in the Plex Library before running", action="store_true", default=False) parser.add_argument("-nc", "--no-countdown", dest="no_countdown", help="Run without displaying the countdown", action="store_true", default=False) parser.add_argument("-nm", "--no-missing", dest="no_missing", help="Run without running the missing section", action="store_true", default=False) +parser.add_argument("-nr", "--no-report", dest="no_report", help="Run without saving a report", action="store_true", default=False) parser.add_argument("-ro", "--read-only-config", dest="read_only_config", help="Run without writing to the config", action="store_true", default=False) parser.add_argument("-d", "--divider", dest="divider", help="Character that divides the sections (Default: '=')", default="=", type=str) parser.add_argument("-w", "--width", dest="width", help="Screen Width (Default: 100)", default=100, type=int) @@ -87,6 +88,7 @@ delete = get_arg("PMM_DELETE_COLLECTIONS", args.delete, arg_bool=True) resume = get_arg("PMM_RESUME", args.resume) no_countdown = get_arg("PMM_NO_COUNTDOWN", args.no_countdown, arg_bool=True) no_missing = get_arg("PMM_NO_MISSING", args.no_missing, arg_bool=True) +no_report = get_arg("PMM_NO_REPORT", args.no_report, arg_bool=True) read_only_config = get_arg("PMM_READ_ONLY_CONFIG", args.read_only_config, arg_bool=True) divider = get_arg("PMM_DIVIDER", args.divider) screen_width = get_arg("PMM_WIDTH", args.width, arg_int=True) @@ -192,6 +194,7 @@ def start(attrs): attrs["read_only"] = read_only_config attrs["version"] = version attrs["no_missing"] = no_missing + attrs["no_report"] = no_report attrs["collection_only"] = collection_only attrs["playlist_only"] = playlist_only attrs["operations_only"] = operations_only @@ -216,6 +219,7 @@ def start(attrs): logger.debug(f"--resume (PMM_RESUME): {resume}") logger.debug(f"--no-countdown (PMM_NO_COUNTDOWN): {no_countdown}") logger.debug(f"--no-missing (PMM_NO_MISSING): {no_missing}") + logger.debug(f"--no-report (PMM_NO_REPORT): {no_report}") logger.debug(f"--read-only-config (PMM_READ_ONLY_CONFIG): {read_only_config}") logger.debug(f"--divider (PMM_DIVIDER): {divider}") logger.debug(f"--width (PMM_WIDTH): {screen_width}")