musicutil/musicutil/__main__.py
2022-02-04 17:13:25 +00:00

83 lines
2 KiB
Python

#!/usr/bin/env python3
import argparse
from .commands.process_command import ProcessCommand
from .commands.copy_command import CopyCommand
from .commands.transcode_command import TranscodeCommand
parser = argparse.ArgumentParser(
description="chaos's musicutil")
subparsers = parser.add_subparsers(dest="subparser_name")
process_parser = subparsers.add_parser('process')
process_parser.add_argument(
'src',
type=str,
help='src base music directory')
process_parser.add_argument(
'--dry-run', action='store_true')
copy_parser = subparsers.add_parser('copy')
copy_parser.add_argument(
'src',
type=str,
help='src base music directory')
copy_parser.add_argument(
'dest',
type=str,
help='dest music directory')
copy_parser.add_argument(
'--transcode-level',
type=str,
help='transcode level',
default="copy")
copy_parser.add_argument(
'--skip-existing',
action='store_true')
copy_parser.add_argument(
'--single-directory',
action='store_true')
transcode_parser = subparsers.add_parser('transcode')
transcode_parser.add_argument(
'src',
type=str,
help='src base music directory')
transcode_parser.add_argument(
'dest',
type=str,
help='dest music directory')
transcode_parser.add_argument(
'--transcode-level',
type=str,
help='transcode level',
default="opus-96k")
transcode_parser.add_argument(
'--ignore-extension',
action='store_true')
transcode_parser.add_argument(
'--custom-encoder-config',
type=str,
help='custom encoder config')
args = parser.parse_args()
if args.subparser_name == "process":
ProcessCommand(args.src, args.dry_run).run()
elif args.subparser_name == "copy":
CopyCommand(
args.src,
args.dest,
args.transcode_level,
args.single_directory,
args.skip_existing
).run()
elif args.subparser_name == "transcode":
TranscodeCommand(
args.src,
args.dest,
args.transcode_level,
args.ignore_extension,
args.custom_encoder_config
).run()