Refactor get_config_dict function to simplify argument handling in nodriver_tixcraft.py
parent
9de59ae498
commit
f078895d3d
|
@ -111,9 +111,8 @@ def get_config_dict(args):
|
||||||
config_filepath = os.path.join(app_root, CONST_MAXBOT_CONFIG_FILE)
|
config_filepath = os.path.join(app_root, CONST_MAXBOT_CONFIG_FILE)
|
||||||
|
|
||||||
# allow assign config by command line.
|
# allow assign config by command line.
|
||||||
if not args.input is None:
|
if args.input and len(args.input) > 0:
|
||||||
if len(args.input) > 0:
|
config_filepath = args.input
|
||||||
config_filepath = args.input
|
|
||||||
|
|
||||||
config_dict = None
|
config_dict = None
|
||||||
if os.path.isfile(config_filepath):
|
if os.path.isfile(config_filepath):
|
||||||
|
@ -121,48 +120,33 @@ def get_config_dict(args):
|
||||||
with open(config_filepath) as json_data:
|
with open(config_filepath) as json_data:
|
||||||
config_dict = json.load(json_data)
|
config_dict = json.load(json_data)
|
||||||
|
|
||||||
if not args.headless is None:
|
# Define a dictionary to map argument names to their paths in the config_dict
|
||||||
config_dict["advanced"]["headless"] = util.t_or_f(args.headless)
|
arg_to_path = {
|
||||||
|
"headless": ["advanced", "headless"],
|
||||||
|
"homepage": ["homepage"],
|
||||||
|
"ticket_number": ["ticket_number"],
|
||||||
|
"browser": ["browser"],
|
||||||
|
"tixcraft_sid": ["advanced", "tixcraft_sid"],
|
||||||
|
"ibonqware": ["advanced", "ibonqware"],
|
||||||
|
"kktix_account": ["advanced", "kktix_account"],
|
||||||
|
"kktix_password": ["advanced", "kktix_password_plaintext"],
|
||||||
|
"proxy_server": ["advanced", "proxy_server_port"],
|
||||||
|
"window_size": ["advanced", "window_size"]
|
||||||
|
}
|
||||||
|
|
||||||
if not args.homepage is None:
|
# Update the config_dict based on the arguments
|
||||||
if len(args.homepage) > 0:
|
for arg, path in arg_to_path.items():
|
||||||
config_dict["homepage"] = args.homepage
|
value = getattr(args, arg)
|
||||||
|
if value and len(str(value)) > 0:
|
||||||
if not args.ticket_number is None:
|
d = config_dict
|
||||||
if args.ticket_number > 0:
|
for key in path[:-1]:
|
||||||
config_dict["ticket_number"] = args.ticket_number
|
d = d[key]
|
||||||
|
d[path[-1]] = value
|
||||||
if not args.browser is None:
|
|
||||||
if len(args.browser) > 0:
|
|
||||||
config_dict["browser"] = args.browser
|
|
||||||
|
|
||||||
if not args.tixcraft_sid is None:
|
|
||||||
if len(args.tixcraft_sid) > 0:
|
|
||||||
config_dict["advanced"]["tixcraft_sid"] = args.tixcraft_sid
|
|
||||||
if not args.ibonqware is None:
|
|
||||||
if len(args.ibonqware) > 0:
|
|
||||||
config_dict["advanced"]["ibonqware"] = args.ibonqware
|
|
||||||
|
|
||||||
if not args.kktix_account is None:
|
|
||||||
if len(args.kktix_account) > 0:
|
|
||||||
config_dict["advanced"]["kktix_account"] = args.kktix_account
|
|
||||||
if not args.kktix_password is None:
|
|
||||||
if len(args.kktix_password) > 0:
|
|
||||||
config_dict["advanced"]["kktix_password_plaintext"] = args.kktix_password
|
|
||||||
|
|
||||||
if not args.proxy_server is None:
|
|
||||||
if len(args.proxy_server) > 2:
|
|
||||||
config_dict["advanced"]["proxy_server_port"] = args.proxy_server
|
|
||||||
|
|
||||||
if not args.window_size is None:
|
|
||||||
if len(args.window_size) > 2:
|
|
||||||
config_dict["advanced"]["window_size"] = args.window_size
|
|
||||||
|
|
||||||
# special case for headless to enable away from keyboard mode.
|
# special case for headless to enable away from keyboard mode.
|
||||||
is_headless_enable_ocr = False
|
is_headless_enable_ocr = False
|
||||||
if config_dict["advanced"]["headless"]:
|
if config_dict["advanced"]["headless"]:
|
||||||
# for tixcraft headless.
|
# for tixcraft headless.
|
||||||
#print("If you are runnig headless mode on tixcraft, you need input your cookie SID.")
|
|
||||||
if len(config_dict["advanced"]["tixcraft_sid"]) > 1:
|
if len(config_dict["advanced"]["tixcraft_sid"]) > 1:
|
||||||
is_headless_enable_ocr = True
|
is_headless_enable_ocr = True
|
||||||
|
|
||||||
|
@ -207,20 +191,18 @@ async def nodriver_press_button(tab, select_query):
|
||||||
print(e)
|
print(e)
|
||||||
pass
|
pass
|
||||||
|
|
||||||
async def nodriver_check_checkbox(tab, select_query, value='true'):
|
from typing import Optional
|
||||||
is_checkbox_checked = False
|
|
||||||
|
async def nodriver_check_checkbox(tab: Optional[object], select_query: str, value: str = 'true') -> bool:
|
||||||
if tab:
|
if tab:
|
||||||
try:
|
try:
|
||||||
element = await tab.query_selector(select_query)
|
element = await tab.query_selector(select_query)
|
||||||
if element:
|
if element:
|
||||||
#await element.apply('function (element) { element.checked='+ value +'; } ')
|
|
||||||
await element.click()
|
await element.click()
|
||||||
is_checkbox_checked = True
|
return True
|
||||||
except Exception as exc:
|
except Exception as exc:
|
||||||
#print("check checkbox fail for selector:", select_query)
|
|
||||||
print(exc)
|
print(exc)
|
||||||
pass
|
return False
|
||||||
return is_checkbox_checked
|
|
||||||
|
|
||||||
async def nodriver_facebook_login(tab, facebook_account, facebook_password):
|
async def nodriver_facebook_login(tab, facebook_account, facebook_password):
|
||||||
if tab:
|
if tab:
|
||||||
|
|
Loading…
Reference in New Issue