From fcac6062bb2d162ceeea10aefdc12914182b7420 Mon Sep 17 00:00:00 2001 From: WorldTeacher Date: Thu, 24 Apr 2025 18:34:17 +0200 Subject: [PATCH] rework main file to use cli args --- main.py | 66 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 main.py diff --git a/main.py b/main.py new file mode 100644 index 0000000..41ef42f --- /dev/null +++ b/main.py @@ -0,0 +1,66 @@ +from src.tagger import Tagger +import argparse + +tagger = Tagger() + + +def tag_all(args): # type:ignore + if args.mode == "overwrite": + tagger.overwrite + elif args.mode == "merge": + tagger.merge + if args.verbose: + tagger.verbose = True + tagger.tag() + + +def tag_series(args): # type:ignore + if args.id: + tagger.tag_series(series_ids=args.id) + elif args.name: + names = [] + name = " ".join(args.name) + + if ":" in name: + names = name.split(":") + else: + names.append(name) + tagger.tag_series(series_names=names) + + +def main(): + parser = argparse.ArgumentParser(description="KomTagger CLI") + subparsers = parser.add_subparsers(dest="command", required=True) + + # tag subcommand + tag_parser = subparsers.add_parser("tag", help="Run tag operation") + tag_parser.add_argument( + "mode", + choices=["overwrite", "merge"], + help="Set mode for tagging, merge will add the tags to the current tags, overwrite will replace the current tags", + ) + tag_parser.add_argument( + "-v", "--verbose", action="store_true", help="Enable verbose output" + ) + tag_parser.set_defaults(func=tag_all) + + # tag-series subcommand + series_parser = subparsers.add_parser("tag-series", help="Run tag-series operation") + group = series_parser.add_mutually_exclusive_group(required=True) + group.add_argument("--id", nargs="+", help="ID for tag series") + group.add_argument( + "--name", + nargs="+", + help="Name(s) for tag series (use ':' to separate multiple names)", + ) + series_parser.add_argument( + "-v", "--verbose", action="store_true", help="Enable verbose output" + ) + series_parser.set_defaults(func=tag_series) + + args = parser.parse_args() + args.func(args) + + +if __name__ == "__main__": + main()