|
1 | 1 | import argparse,cmd,json,os,platform,re,signal,time |
2 | 2 | import fgoDevice |
3 | 3 | import fgoKernel |
4 | | -from functools import wraps |
| 4 | +from functools import reduce,wraps |
5 | 5 | from fgoLogging import getLogger,color |
6 | 6 | from fgoTeamupParser import IniParser |
7 | 7 | logger=getLogger('Cli') |
@@ -137,7 +137,7 @@ def do_continue(self,line): |
137 | 137 | arg=parser_battle.parse_args(line.split()) |
138 | 138 | assert fgoDevice.device.available |
139 | 139 | assert not fgoKernel.lock.locked() |
140 | | - countdown(arg.sleep) |
| 140 | + countdown(reduce(lambda x,y:x*60+int(y),arg.sleep.split(':'),0)) |
141 | 141 | try: |
142 | 142 | signal.signal(signal.SIGINT,lambda*_:fgoKernel.schedule.stop()) |
143 | 143 | if platform.system()=='Windows':signal.signal(signal.SIGBREAK,lambda*_:fgoKernel.schedule.pause()) |
@@ -226,12 +226,12 @@ class ArgParser(argparse.ArgumentParser): |
226 | 226 | def exit(self,status=0,message=None):raise ArgError(message) |
227 | 227 |
|
228 | 228 | parser_battle=ArgParser(prog='battle',description=Cmd.do_battle.__doc__) |
229 | | -parser_battle.add_argument('-s','--sleep',help='Sleep before run (default: %(default)s)',type=validator(float,lambda x:x>=0,'nonnegative'),default=0) |
| 229 | +parser_battle.add_argument('-s','--sleep',help='Sleep before run (default: %(default)s)',type=validator(str,lambda x:re.match(r'\d+(:\d+)*$',x),'timedelta'),default='0') |
230 | 230 |
|
231 | 231 | parser_main=ArgParser(prog='main',description=Cmd.do_main.__doc__) |
232 | 232 | parser_main.add_argument('appleCount',help='Apple Count (default: %(default)s)',type=validator(int,lambda x:x>=0,'nonnegative int'),default=0,nargs='?') |
233 | 233 | parser_main.add_argument('appleKind',help='Apple Kind (default: %(default)s)',type=str.lower,choices=['gold','silver','bronze','quartz'],default='gold',nargs='?') |
234 | | -parser_main.add_argument('-s','--sleep',help='Sleep several seconds before run (default: %(default)s)',type=validator(float,lambda x:x>=0,'nonnegative'),default=0) |
| 234 | +parser_main.add_argument('-s','--sleep',help='Sleep before run (default: %(default)s)',type=validator(str,lambda x:re.match(r'\d+(:\d+)*$',x),'timedelta'),default='0') |
235 | 235 | parser_main.add_argument('-a','--appoint',help='Battle count limit (default: %(default)s for no limit)',type=validator(int,lambda x:x>=0,'nonnegative int'),default=0) |
236 | 236 |
|
237 | 237 | parser_connect=ArgParser(prog='connect',description=Cmd.do_connect.__doc__) |
@@ -259,7 +259,7 @@ def exit(self,status=0,message=None):raise ArgError(message) |
259 | 259 |
|
260 | 260 | parser_call=ArgParser(prog='call',description=Cmd.do_call.__doc__) |
261 | 261 | parser_call.add_argument('func',help='Additional feature name',choices=['gacha','lottery','mail','synthesis','gachaHistory']) |
262 | | -parser_call.add_argument('-s','--sleep',help='Sleep several seconds before run (default: %(default)s)',type=validator(float,lambda x:x>=0,'nonnegative'),default=0) |
| 262 | +parser_call.add_argument('-s','--sleep',help='Sleep before run (default: %(default)s)',type=validator(str,lambda x:re.match(r'\d+(:\d+)*$',x),'timedelta'),default='0') |
263 | 263 |
|
264 | 264 | parser_169=ArgParser(prog='169',description=Cmd.do_169.__doc__) |
265 | 265 | parser_169.add_argument('action',help='Action',type=str.lower,choices=['invoke','revoke']) |
|
0 commit comments