新增-C命令可用于对任何配置文件参数进行覆盖
This commit is contained in:
@@ -76,6 +76,8 @@ def argparse_function(ver: str) -> typing.Tuple[str, str, str, str, bool, bool]:
|
||||
help="Override [priority]website= in config.")
|
||||
parser.add_argument("-D", "--download-images", dest='dnimg', action="store_true",
|
||||
help="Override [common]download_only_missing_images=0 force invoke image downloading.")
|
||||
parser.add_argument("-C", "--config-override", dest='cfgcmd', default='', nargs='?',
|
||||
help="Common use config override. grammar: section:key=value[;section:key=value] eg. 'de:s=1' or 'debug_mode:switch=1' override[debug_mode]switch=1")
|
||||
parser.add_argument("-z", "--zero-operation", dest='zero_op', action="store_true",
|
||||
help="""Only show job list of files and numbers, and **NO** actual operation
|
||||
is performed. It may help you correct wrong numbers before real job.""")
|
||||
@@ -83,35 +85,38 @@ is performed. It may help you correct wrong numbers before real job.""")
|
||||
|
||||
args = parser.parse_args()
|
||||
|
||||
def get_natural_number_or_none(value):
|
||||
return int(value) if isinstance(value, str) and value.isnumeric() and int(value) >= 0 else None
|
||||
def set_natural_number_or_none(sk, value):
|
||||
if isinstance(value, str) and value.isnumeric() and int(value) >= 0:
|
||||
conf.set_override(f'{sk}={value}')
|
||||
|
||||
def get_str_or_none(value):
|
||||
return value if isinstance(value, str) and len(value) else None
|
||||
def set_str_or_none(sk, value):
|
||||
if isinstance(value, str) and len(value):
|
||||
conf.set_override(f'{sk}={value}')
|
||||
|
||||
def get_bool_or_none(value):
|
||||
return True if isinstance(value, bool) and value else None
|
||||
def set_bool_or_none(sk, value):
|
||||
if isinstance(value, bool) and value:
|
||||
conf.set_override(f'{sk}=1')
|
||||
|
||||
config.G_conf_override["common:main_mode"] = get_natural_number_or_none(args.main_mode)
|
||||
config.G_conf_override["common:link_mode"] = get_natural_number_or_none(args.link_mode)
|
||||
config.G_conf_override["common:source_folder"] = get_str_or_none(args.path)
|
||||
config.G_conf_override["common:auto_exit"] = get_bool_or_none(args.auto_exit)
|
||||
config.G_conf_override["common:nfo_skip_days"] = get_natural_number_or_none(args.days)
|
||||
config.G_conf_override["common:stop_counter"] = get_natural_number_or_none(args.cnt)
|
||||
config.G_conf_override["common:ignore_failed_list"] = get_bool_or_none(args.ignore_failed_list)
|
||||
config.G_conf_override["debug_mode:switch"] = get_bool_or_none(args.debug)
|
||||
config.G_conf_override["common:rerun_delay"] = get_str_or_none(args.delaytm)
|
||||
config.G_conf_override["priority:website"] = get_str_or_none(args.site)
|
||||
if get_bool_or_none(args.dnimg):
|
||||
config.G_conf_override["common:download_only_missing_images"] = False
|
||||
set_natural_number_or_none("common:main_mode", args.main_mode)
|
||||
set_natural_number_or_none("common:link_mode", args.link_mode)
|
||||
set_str_or_none("common:source_folder", args.path)
|
||||
set_bool_or_none("common:auto_exit", args.auto_exit)
|
||||
set_natural_number_or_none("common:nfo_skip_days", args.days)
|
||||
set_natural_number_or_none("common:stop_counter", args.cnt)
|
||||
set_bool_or_none("common:ignore_failed_list", args.ignore_failed_list)
|
||||
set_str_or_none("common:rerun_delay", args.delaytm)
|
||||
set_str_or_none("priority:website", args.site)
|
||||
if isinstance(args.dnimg, bool) and args.dnimg:
|
||||
conf.set_override("common:download_only_missing_images=0")
|
||||
set_bool_or_none("debug_mode:switch", args.debug)
|
||||
if isinstance(args.cfgcmd, str) and len(args.cfgcmd.strip()):
|
||||
conf.set_override(args.cfgcmd.strip())
|
||||
|
||||
no_net_op = False
|
||||
if conf.main_mode() == 3:
|
||||
no_net_op = args.no_network_operation
|
||||
if no_net_op:
|
||||
config.G_conf_override["common:stop_counter"] = 0
|
||||
config.G_conf_override["common:rerun_delay"] = '0s'
|
||||
config.G_conf_override["face:aways_imagecut"] = True
|
||||
conf.set_override("common:stop_counter=0;common:rerun_delay=0s;face:aways_imagecut=1")
|
||||
|
||||
return args.file, args.number, args.logdir, args.regexstr, args.zero_op, no_net_op
|
||||
|
||||
@@ -303,8 +308,9 @@ def signal_handler(*args):
|
||||
|
||||
|
||||
def sigdebug_handler(*args):
|
||||
config.G_conf_override["debug_mode:switch"] = not config.G_conf_override["debug_mode:switch"]
|
||||
print('[!]Debug {}'.format('On' if config.getInstance().debug() else 'oFF'))
|
||||
conf = config.getInstance()
|
||||
conf.set_override(f"debug_mode:switch={int(not conf.debug())}")
|
||||
print(f"[!]Debug {('oFF', 'On')[int(conf.debug())]}")
|
||||
|
||||
|
||||
# 新增失败文件列表跳过处理,及.nfo修改天数跳过处理,提示跳过视频总数,调试模式(-g)下详细被跳过文件,跳过小广告
|
||||
|
||||
Reference in New Issue
Block a user