(ver: str)
| 23 | from core import core_main, core_main_no_net_op, moveFailedFolder, debug_print |
| 24 | |
| 25 | def argparse_function(ver: str) -> typing.Tuple[str, str, str, str, bool, bool, str, str]: |
| 26 | conf = config.getInstance() |
| 27 | parser = argparse.ArgumentParser(epilog=f"Load Config file '{conf.ini_path}'.") |
| 28 | parser.add_argument("file", default='', nargs='?', help="Single Movie file path.") |
| 29 | parser.add_argument("-p", "--path", default='', nargs='?', help="Analysis folder path.") |
| 30 | parser.add_argument("-m", "--main-mode", default='', nargs='?', |
| 31 | help="Main mode. 1:Scraping 2:Organizing 3:Scraping in analysis folder") |
| 32 | parser.add_argument("-n", "--number", default='', nargs='?', help="Custom file number of single movie file.") |
| 33 | # parser.add_argument("-C", "--config", default='config.ini', nargs='?', help="The config file Path.") |
| 34 | parser.add_argument("-L", "--link-mode", default='', nargs='?', |
| 35 | help="Create movie file link. 0:moving movie file, do not create link 1:soft link 2:try hard link first") |
| 36 | default_logdir = str(Path.home() / '.mlogs') |
| 37 | parser.add_argument("-o", "--log-dir", dest='logdir', default=default_logdir, nargs='?', |
| 38 | help=f"""Duplicate stdout and stderr to logfiles in logging folder, default on. |
| 39 | default folder for current user: '{default_logdir}'. Change default folder to an empty file, |
| 40 | or use --log-dir= to turn log off.""") |
| 41 | parser.add_argument("-q", "--regex-query", dest='regexstr', default='', nargs='?', |
| 42 | help="python re module regex filepath filtering.") |
| 43 | parser.add_argument("-d", "--nfo-skip-days", dest='days', default='', nargs='?', |
| 44 | help="Override nfo_skip_days value in config.") |
| 45 | parser.add_argument("-c", "--stop-counter", dest='cnt', default='', nargs='?', |
| 46 | help="Override stop_counter value in config.") |
| 47 | parser.add_argument("-R", "--rerun-delay", dest='delaytm', default='', nargs='?', |
| 48 | help="Delay (eg. 1h10m30s or 60 (second)) time and rerun, until all movies proceed. Note: stop_counter value in config or -c must none zero.") |
| 49 | parser.add_argument("-i", "--ignore-failed-list", action="store_true", help="Ignore failed list '{}'".format( |
| 50 | os.path.join(os.path.abspath(conf.failed_folder()), 'failed_list.txt'))) |
| 51 | parser.add_argument("-a", "--auto-exit", action="store_true", |
| 52 | help="Auto exit after program complete") |
| 53 | parser.add_argument("-g", "--debug", action="store_true", |
| 54 | help="Turn on debug mode to generate diagnostic log for issue report.") |
| 55 | parser.add_argument("-N", "--no-network-operation", action="store_true", |
| 56 | help="No network query, do not get metadata, for cover cropping purposes, only takes effect when main mode is 3.") |
| 57 | parser.add_argument("-w", "--website", dest='site', default='', nargs='?', |
| 58 | help="Override [priority]website= in config.") |
| 59 | parser.add_argument("-D", "--download-images", dest='dnimg', action="store_true", |
| 60 | help="Override [common]download_only_missing_images=0 force invoke image downloading.") |
| 61 | parser.add_argument("-C", "--config-override", dest='cfgcmd', action='append', nargs=1, |
| 62 | 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 Note:this parameters can be used multiple times") |
| 63 | parser.add_argument("-z", "--zero-operation", dest='zero_op', action="store_true", |
| 64 | help="""Only show job list of files and numbers, and **NO** actual operation |
| 65 | is performed. It may help you correct wrong numbers before real job.""") |
| 66 | parser.add_argument("-v", "--version", action="version", version=ver) |
| 67 | parser.add_argument("-s", "--search", default='', nargs='?', help="Search number") |
| 68 | parser.add_argument("-ss", "--specified-source", default='', nargs='?', help="specified Source.") |
| 69 | parser.add_argument("-su", "--specified-url", default='', nargs='?', help="specified Url.") |
| 70 | |
| 71 | args = parser.parse_args() |
| 72 | |
| 73 | def set_natural_number_or_none(sk, value): |
| 74 | if isinstance(value, str) and value.isnumeric() and int(value) >= 0: |
| 75 | conf.set_override(f'{sk}={value}') |
| 76 | |
| 77 | def set_str_or_none(sk, value): |
| 78 | if isinstance(value, str) and len(value): |
| 79 | conf.set_override(f'{sk}={value}') |
| 80 | |
| 81 | def set_bool_or_none(sk, value): |
| 82 | if isinstance(value, bool) and value: |
no test coverage detected