67 lines
1.8 KiB
Python
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()
|