Merge pull request #35 from maciejzgadzaj/26-process-specific-collection-param

#26 command-line param to process only a specific collection(s)
pull/34/head
meisnate12 4 years ago committed by GitHub
commit c2ca5cf359
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -426,7 +426,7 @@ class Config:
util.seperator() util.seperator()
def update_libraries(self, test): def update_libraries(self, test, requested_collections):
for library in self.libraries: for library in self.libraries:
logger.info("") logger.info("")
util.seperator("{} Library".format(library.name)) util.seperator("{} Library".format(library.name))
@ -435,14 +435,15 @@ class Config:
logger.info("") logger.info("")
util.seperator("{} Library {}Collections".format(library.name, "Test " if test else "")) util.seperator("{} Library {}Collections".format(library.name, "Test " if test else ""))
collections = library.collections collections = library.collections
if collections: collections_to_process = (collections.keys() & util.get_list(requested_collections)) if requested_collections else collections
if collections_to_process:
logger.info("") logger.info("")
util.seperator("Mapping {} Library".format(library.name)) util.seperator("Mapping {} Library".format(library.name))
logger.info("") logger.info("")
movie_map, show_map = self.map_guids(library) movie_map, show_map = self.map_guids(library)
logger.info(movie_map) logger.info(movie_map)
logger.info(show_map) logger.info(show_map)
for c in collections: for c in collections_to_process:
if test and ("test" not in collections[c] or collections[c]["test"] is not True): if test and ("test" not in collections[c] or collections[c]["test"] is not True):
continue continue
try: try:
@ -1123,7 +1124,7 @@ class Config:
except Exception as e: except Exception as e:
util.print_stacktrace() util.print_stacktrace()
logger.error("Unknown Error: {}".format(e)) logger.error("Unknown Error: {}".format(e))
if library.show_unmanaged is True and not test: if library.show_unmanaged is True and not test and not requested_collections:
logger.info("") logger.info("")
util.seperator("Unmanaged Collections in {} Library".format(library.name)) util.seperator("Unmanaged Collections in {} Library".format(library.name))
logger.info("") logger.info("")

@ -8,6 +8,7 @@ parser.add_argument("-c", "--config", dest="config", help="Run with desired *.ym
parser.add_argument("-t", "--time", dest="time", help="Time to update each day use format HH:MM (Default: 03:00)", default="03:00", type=str) parser.add_argument("-t", "--time", dest="time", help="Time to update each day use format HH:MM (Default: 03:00)", default="03:00", type=str)
parser.add_argument("-r", "--run", dest="run", help="Run without the scheduler", action="store_true", default=False) parser.add_argument("-r", "--run", dest="run", help="Run without the scheduler", action="store_true", default=False)
parser.add_argument("-rt", "--test", "--tests", "--run-test", "--run-tests", dest="test", help="Run only tests without the scheduler", action="store_true", default=False) parser.add_argument("-rt", "--test", "--tests", "--run-test", "--run-tests", dest="test", help="Run only tests without the scheduler", action="store_true", default=False)
parser.add_argument("-cl", "--collections", dest="collections", help="Process only specified collections (comma-separated list)", type=str, default="")
parser.add_argument("-d", "--divider", dest="divider", help="Character that divides the sections (Default: '=')", default="=", type=str) 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) parser.add_argument("-w", "--width", dest="width", help="Screen Width (Default: 100)", default=100, type=int)
args = parser.parse_args() args = parser.parse_args()
@ -64,14 +65,15 @@ if args.tests:
tests.run_tests(default_dir) tests.run_tests(default_dir)
sys.exit(0) sys.exit(0)
def start(config_path, test, daily): def start(config_path, test, daily, collections = ""):
if daily: type = "Daily " if daily: type = "Daily "
elif test: type = "Test " elif test: type = "Test "
elif collections: type = "Collections "
else: type = "" else: type = ""
util.seperator("Starting {}Run".format(type)) util.seperator("Starting {}Run".format(type))
try: try:
config = Config(default_dir, config_path) config = Config(default_dir, config_path)
config.update_libraries(test) config.update_libraries(test, collections)
except Exception as e: except Exception as e:
util.print_stacktrace() util.print_stacktrace()
logger.critical(e) logger.critical(e)
@ -79,8 +81,8 @@ def start(config_path, test, daily):
util.seperator("Finished {}Run".format(type)) util.seperator("Finished {}Run".format(type))
try: try:
if args.run or args.test: if args.run or args.test or args.collections:
start(args.config, args.test, False) start(args.config, args.test, False, args.collections)
else: else:
length = 0 length = 0
schedule.every().day.at(args.time).do(start, args.config, False, True) schedule.every().day.at(args.time).do(start, args.config, False, True)

Loading…
Cancel
Save