rework main file to use cli args
This commit is contained in:
66
main.py
Normal file
66
main.py
Normal file
@@ -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()
|
||||
Reference in New Issue
Block a user