Files
KomTagger/main.py

67 lines
1.8 KiB
Python

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()