2024-02-05, allow to input plaintext password to settings.json

master
Your Name 2024-03-08 09:11:16 +08:00
parent d4a6b29fb1
commit fc088781ab
6 changed files with 138 additions and 42 deletions

View File

@ -41,7 +41,7 @@ try:
except Exception as exc: except Exception as exc:
pass pass
CONST_APP_VERSION = "MaxBot (2024.02.04)" CONST_APP_VERSION = "MaxBot (2024.02.05)"
CONST_MAXBOT_ANSWER_ONLINE_FILE = "MAXBOT_ONLINE_ANSWER.txt" CONST_MAXBOT_ANSWER_ONLINE_FILE = "MAXBOT_ONLINE_ANSWER.txt"
CONST_MAXBOT_CONFIG_FILE = "settings.json" CONST_MAXBOT_CONFIG_FILE = "settings.json"
@ -205,16 +205,18 @@ def get_config_dict(args):
if not args.tixcraft_sid is None: if not args.tixcraft_sid is None:
if len(args.tixcraft_sid) > 0: if len(args.tixcraft_sid) > 0:
config_dict["advanced"]["tixcraft_sid"] = encryptMe(args.tixcraft_sid) 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 not args.kktix_account is None:
if len(args.kktix_account) > 0: if len(args.kktix_account) > 0:
config_dict["advanced"]["kktix_account"] = args.kktix_account config_dict["advanced"]["kktix_account"] = args.kktix_account
if not args.kktix_password is None: if not args.kktix_password is None:
if len(args.kktix_password) > 0: if len(args.kktix_password) > 0:
config_dict["advanced"]["kktix_password"] = args.kktix_password config_dict["advanced"]["kktix_password_plaintext"] = args.kktix_password
if not args.ibonqware is None:
if len(args.ibonqware) > 0:
config_dict["advanced"]["ibonqware"] = encryptMe(args.ibonqware)
if not args.proxy_server is None: if not args.proxy_server is None:
if len(args.proxy_server) > 2: if len(args.proxy_server) > 2:
config_dict["advanced"]["proxy_server_port"] = args.proxy_server config_dict["advanced"]["proxy_server_port"] = args.proxy_server
@ -1083,13 +1085,13 @@ def get_driver_by_config(config_dict):
if tixcraft_family: if tixcraft_family:
if len(config_dict["advanced"]["tixcraft_sid"]) > 1: if len(config_dict["advanced"]["tixcraft_sid"]) > 1:
tixcraft_sid = decryptMe(config_dict["advanced"]["tixcraft_sid"]) tixcraft_sid = config_dict["advanced"]["tixcraft_sid"]
driver.delete_cookie("SID") driver.delete_cookie("SID")
driver.add_cookie({"name":"SID", "value": tixcraft_sid, "path" : "/", "secure":True}) driver.add_cookie({"name":"SID", "value": tixcraft_sid, "path" : "/", "secure":True})
if 'ibon.com' in homepage: if 'ibon.com' in homepage:
if len(config_dict["advanced"]["ibonqware"]) > 1: if len(config_dict["advanced"]["ibonqware"]) > 1:
ibonqware = decryptMe(config_dict["advanced"]["ibonqware"]) ibonqware = config_dict["advanced"]["ibonqware"]
driver.delete_cookie("ibonqware") driver.delete_cookie("ibonqware")
driver.add_cookie({"name":"ibonqware", "value": ibonqware, "domain" : "ibon.com.tw", "secure":True}) driver.add_cookie({"name":"ibonqware", "value": ibonqware, "domain" : "ibon.com.tw", "secure":True})
@ -7857,8 +7859,11 @@ def kktix_paused_main(driver, url, config_dict, kktix_dict):
# fix https://kktix.com/users/sign_in?back_to=https://kktix.com/events/xxxx and registerStatus: SOLD_OUT cause page refresh. # fix https://kktix.com/users/sign_in?back_to=https://kktix.com/events/xxxx and registerStatus: SOLD_OUT cause page refresh.
if '/users/sign_in?' in url: if '/users/sign_in?' in url:
kktix_account = config_dict["advanced"]["kktix_account"] kktix_account = config_dict["advanced"]["kktix_account"]
kktix_password = config_dict["advanced"]["kktix_password_plaintext"].strip()
if kktix_password == "":
kktix_password = decryptMe(config_dict["advanced"]["kktix_password"])
if len(kktix_account) > 4: if len(kktix_account) > 4:
kktix_login(driver, kktix_account, decryptMe(config_dict["advanced"]["kktix_password"])) kktix_login(driver, kktix_account, kktix_password)
is_url_contain_sign_in = True is_url_contain_sign_in = True
# PS: after test, this still not popup reCaptcha. # PS: after test, this still not popup reCaptcha.
@ -7888,8 +7893,11 @@ def kktix_main(driver, url, config_dict, kktix_dict):
# fix https://kktix.com/users/sign_in?back_to=https://kktix.com/events/xxxx and registerStatus: SOLD_OUT cause page refresh. # fix https://kktix.com/users/sign_in?back_to=https://kktix.com/events/xxxx and registerStatus: SOLD_OUT cause page refresh.
if '/users/sign_in?' in url: if '/users/sign_in?' in url:
kktix_account = config_dict["advanced"]["kktix_account"] kktix_account = config_dict["advanced"]["kktix_account"]
kktix_password = config_dict["advanced"]["kktix_password_plaintext"].strip()
if kktix_password == "":
kktix_password = decryptMe(config_dict["advanced"]["kktix_password"])
if len(kktix_account) > 4: if len(kktix_account) > 4:
kktix_login(driver, kktix_account, decryptMe(config_dict["advanced"]["kktix_password"])) kktix_login(driver, kktix_account, kktix_password)
is_url_contain_sign_in = True is_url_contain_sign_in = True
if not is_url_contain_sign_in: if not is_url_contain_sign_in:
@ -7965,8 +7973,11 @@ def fami_login(driver, account, password):
def famiticket_main(driver, url, config_dict, fami_dict): def famiticket_main(driver, url, config_dict, fami_dict):
if '/Home/User/SignIn' in url: if '/Home/User/SignIn' in url:
fami_account = config_dict["advanced"]["fami_account"] fami_account = config_dict["advanced"]["fami_account"]
fami_password = config_dict["advanced"]["fami_password_plaintext"].strip()
if fami_password == "":
fami_password = decryptMe(config_dict["advanced"]["fami_password"])
if len(fami_account) > 4: if len(fami_account) > 4:
fami_login(driver, fami_account, decryptMe(config_dict["advanced"]["fami_password"])) fami_login(driver, fami_account, fami_password)
if '/Home/Activity/Info/' in url: if '/Home/Activity/Info/' in url:
fami_dict["last_activity"] = url fami_dict["last_activity"] = url
@ -8322,8 +8333,11 @@ def urbtix_main(driver, url, config_dict):
if '.hk/member-login' in url: if '.hk/member-login' in url:
urbtix_account = config_dict["advanced"]["urbtix_account"] urbtix_account = config_dict["advanced"]["urbtix_account"]
if len(urbtix_account) > 2: urbtix_password = config_dict["advanced"]["urbtix_password_plaintext"].strip()
urbtix_login(driver, urbtix_account, decryptMe(config_dict["advanced"]["urbtix_password"])) if urbtix_password == "":
urbtix_password = decryptMe(config_dict["advanced"]["urbtix_password"])
if len(urbtix_account) > 4:
urbtix_login(driver, urbtix_account, urbtix_password)
is_ready_to_buy_from_queue = False is_ready_to_buy_from_queue = False
# Q: How to know ready to buy ticket from queue? # Q: How to know ready to buy ticket from queue?
@ -8483,9 +8497,11 @@ def cityline_main(driver, url, config_dict):
# https://www.cityline.com/Login.html?targetUrl=https%3A%2F%2F # https://www.cityline.com/Login.html?targetUrl=https%3A%2F%2F
# ignore url redirect # ignore url redirect
if '/Login.html' in url: if '/Login.html' in url:
cityline_account = config_dict["advanced"]["cityline_account"] cityline_password = config_dict["advanced"]["cityline_password_plaintext"].strip()
if len(cityline_account) > 2: if cityline_password == "":
cityline_login(driver, cityline_account, decryptMe(config_dict["advanced"]["cityline_password"])) cityline_password = decryptMe(config_dict["advanced"]["cityline_password"])
if len(cityline_account) > 4:
cityline_login(driver, cityline_account, cityline_password)
return return
is_ready_to_buy_from_queue = False is_ready_to_buy_from_queue = False
@ -9947,9 +9963,12 @@ def softix_powerweb_main(driver, url, config_dict, hkticketing_dict):
if 'hkticketing.com/Membership/Login.aspx' in url: if 'hkticketing.com/Membership/Login.aspx' in url:
is_hkticketing_sign_in_page = True is_hkticketing_sign_in_page = True
if is_hkticketing_sign_in_page: if is_hkticketing_sign_in_page:
account = config_dict["advanced"]["hkticketing_account"].strip() hkticketing_account = config_dict["advanced"]["hkticketing_account"].strip()
if len(account) > 4: hkticketing_password = config_dict["advanced"]["hkticketing_password_plaintext"].strip()
hkticketing_login(driver, account, decryptMe(config_dict["advanced"]["hkticketing_password"])) if hkticketing_password == "":
hkticketing_password = decryptMe(config_dict["advanced"]["hkticketing_password"])
if len(hkticketing_account) > 4:
hkticketing_login(driver, hkticketing_account, hkticketing_password)
is_ready_to_buy_from_queue = False is_ready_to_buy_from_queue = False
# TODO: play sound when ready to buy ticket. # TODO: play sound when ready to buy ticket.
@ -10907,8 +10926,12 @@ def kham_main(driver, url, config_dict, ocr, Captcha_Browser):
# udn sign in. # udn sign in.
if 'https://tickets.udnfunlife.com/application/utk01/utk0101_.aspx' == url.lower(): if 'https://tickets.udnfunlife.com/application/utk01/utk0101_.aspx' == url.lower():
if len(config_dict["advanced"]["udn_account"]) > 4: udn_account = config_dict["advanced"]["udn_account"]
udn_login(driver, config_dict["advanced"]["udn_account"], decryptMe(config_dict["advanced"]["udn_password"])) udn_password = config_dict["advanced"]["udn_password_plaintext"].strip()
if udn_password == "":
udn_password = decryptMe(config_dict["advanced"]["udn_password"])
if len(udn_account) > 4:
udn_login(driver, udn_account, udn_password)
if 'utk0203_.aspx?product_id=' in url.lower(): if 'utk0203_.aspx?product_id=' in url.lower():
select_query = 'input.yd_counterNum' select_query = 'input.yd_counterNum'
@ -11071,13 +11094,22 @@ def kham_main(driver, url, config_dict, ocr, Captcha_Browser):
Captcha_Browser.Set_Domain(domain_name, captcha_url=captcha_url) Captcha_Browser.Set_Domain(domain_name, captcha_url=captcha_url)
kham_captcha(driver, config_dict, ocr, Captcha_Browser, model_name) kham_captcha(driver, config_dict, ocr, Captcha_Browser, model_name)
account = config_dict["advanced"]["kham_account"]
if len(account) > 4:
kham_login(driver, account, decryptMe(config_dict["advanced"]["kham_password"]))
account = config_dict["advanced"]["ticket_account"] kham_account = config_dict["advanced"]["kham_account"]
if len(account) > 4: kham_password = config_dict["advanced"]["kham_password_plaintext"].strip()
ticket_login(driver, account, decryptMe(config_dict["advanced"]["ticket_password"])) if kham_password == "":
kham_password = decryptMe(config_dict["advanced"]["kham_password"])
if len(kham_account) > 4:
kham_login(driver, kham_account, kham_password)
ticket_account = config_dict["advanced"]["ticket_account"]
ticket_password = config_dict["advanced"]["ticket_password_plaintext"].strip()
if ticket_password == "":
ticket_password = decryptMe(config_dict["advanced"]["ticket_password"])
if len(ticket_account) > 4:
ticket_login(driver, ticket_account, ticket_password)
def ticketplus_date_auto_select(driver, config_dict): def ticketplus_date_auto_select(driver, config_dict):
show_debug_message = True # debug. show_debug_message = True # debug.
@ -12215,16 +12247,19 @@ def ticketplus_account_sign_in(driver, config_dict):
if el_pass.is_enabled(): if el_pass.is_enabled():
inputed_text = el_pass.get_attribute('value') inputed_text = el_pass.get_attribute('value')
if not inputed_text is None: if not inputed_text is None:
password = decryptMe(config_dict["advanced"]["ticketplus_password"]) ticketplus_password = config_dict["advanced"]["ticketplus_password_plaintext"].strip()
if ticketplus_password == "":
ticketplus_password = decryptMe(config_dict["advanced"]["ticketplus_password"])
if len(inputed_text) == 0: if len(inputed_text) == 0:
el_pass.click() el_pass.click()
if(len(password)>0): if(len(ticketplus_password)>0):
el_pass.send_keys(password) el_pass.send_keys(ticketplus_password)
el_pass.send_keys(Keys.ENTER) el_pass.send_keys(Keys.ENTER)
is_password_sent = True is_password_sent = True
else: else:
if(len(password)>0): if(len(ticketplus_password)>0):
if inputed_text == password: if inputed_text == ticketplus_password:
el_pass.click() el_pass.click()
el_pass.send_keys(Keys.ENTER) el_pass.send_keys(Keys.ENTER)
is_password_sent = True is_password_sent = True
@ -12634,8 +12669,11 @@ def main(args):
facebook_login_url = 'https://www.facebook.com/login.php?' facebook_login_url = 'https://www.facebook.com/login.php?'
if url[:len(facebook_login_url)]==facebook_login_url: if url[:len(facebook_login_url)]==facebook_login_url:
facebook_account = config_dict["advanced"]["facebook_account"].strip() facebook_account = config_dict["advanced"]["facebook_account"].strip()
facebook_password = config_dict["advanced"]["facebook_password_plaintext"].strip()
if facebook_password == "":
facebook_password = decryptMe(config_dict["advanced"]["facebook_password"])
if len(facebook_account) > 4: if len(facebook_account) > 4:
facebook_login(driver, facebook_account, decryptMe(config_dict["advanced"]["facebook_password"])) facebook_login(driver, facebook_account, facebook_password)
def cli(): def cli():
parser = argparse.ArgumentParser( parser = argparse.ArgumentParser(

View File

@ -22,7 +22,7 @@ import sys
import threading import threading
import webbrowser import webbrowser
CONST_APP_VERSION = "MaxBot (2024.02.04)" CONST_APP_VERSION = "MaxBot (2024.02.05)"
CONST_MAXBOT_LAUNCHER_FILE = "config_launcher.json" CONST_MAXBOT_LAUNCHER_FILE = "config_launcher.json"
CONST_MAXBOT_CONFIG_FILE = "settings.json" CONST_MAXBOT_CONFIG_FILE = "settings.json"

View File

@ -56,6 +56,16 @@
"ticket_password": "", "ticket_password": "",
"udn_password": "", "udn_password": "",
"ticketplus_password": "", "ticketplus_password": "",
"facebook_password_plaintext": "",
"kktix_password_plaintext": "",
"fami_password_plaintext": "",
"urbtix_password_plaintext": "",
"cityline_password_plaintext": "",
"hkticketing_password_plaintext": "",
"kham_password_plaintext": "",
"ticket_password_plaintext": "",
"udn_password_plaintext": "",
"ticketplus_password_plaintext": "",
"chrome_extension": true, "chrome_extension": true,
"disable_adjacent_seat": false, "disable_adjacent_seat": false,
"hide_some_image": true, "hide_some_image": true,

View File

@ -48,7 +48,7 @@ try:
except Exception as exc: except Exception as exc:
pass pass
CONST_APP_VERSION = "MaxBot (2024.02.04)" CONST_APP_VERSION = "MaxBot (2024.02.05)"
CONST_MAXBOT_ANSWER_ONLINE_FILE = "MAXBOT_ONLINE_ANSWER.txt" CONST_MAXBOT_ANSWER_ONLINE_FILE = "MAXBOT_ONLINE_ANSWER.txt"
CONST_MAXBOT_CONFIG_FILE = "settings.json" CONST_MAXBOT_CONFIG_FILE = "settings.json"
@ -721,6 +721,17 @@ def get_default_config():
config_dict["advanced"]["udn_password"] = "" config_dict["advanced"]["udn_password"] = ""
config_dict["advanced"]["ticketplus_password"] = "" config_dict["advanced"]["ticketplus_password"] = ""
config_dict["advanced"]["facebook_password_plaintext"] = ""
config_dict["advanced"]["kktix_password_plaintext"] = ""
config_dict["advanced"]["fami_password_plaintext"] = ""
config_dict["advanced"]["urbtix_password_plaintext"] = ""
config_dict["advanced"]["cityline_password_plaintext"] = ""
config_dict["advanced"]["hkticketing_password_plaintext"] = ""
config_dict["advanced"]["kham_password_plaintext"] = ""
config_dict["advanced"]["ticket_password_plaintext"] = ""
config_dict["advanced"]["udn_password_plaintext"] = ""
config_dict["advanced"]["ticketplus_password_plaintext"] = ""
config_dict["advanced"]["chrome_extension"] = True config_dict["advanced"]["chrome_extension"] = True
config_dict["advanced"]["disable_adjacent_seat"] = False config_dict["advanced"]["disable_adjacent_seat"] = False
config_dict["advanced"]["hide_some_image"] = False config_dict["advanced"]["hide_some_image"] = False
@ -1058,6 +1069,7 @@ def btn_save_act(language_code, slience_mode=False):
config_dict["advanced"]["tixcraft_sid"] = txt_tixcraft_sid.get().strip() config_dict["advanced"]["tixcraft_sid"] = txt_tixcraft_sid.get().strip()
config_dict["advanced"]["ibonqware"] = txt_ibon_ibonqware.get().strip() config_dict["advanced"]["ibonqware"] = txt_ibon_ibonqware.get().strip()
config_dict["advanced"]["facebook_account"] = txt_facebook_account.get().strip() config_dict["advanced"]["facebook_account"] = txt_facebook_account.get().strip()
config_dict["advanced"]["kktix_account"] = txt_kktix_account.get().strip() config_dict["advanced"]["kktix_account"] = txt_kktix_account.get().strip()
config_dict["advanced"]["fami_account"] = txt_fami_account.get().strip() config_dict["advanced"]["fami_account"] = txt_fami_account.get().strip()
@ -1080,8 +1092,9 @@ def btn_save_act(language_code, slience_mode=False):
config_dict["advanced"]["udn_password"] = txt_udn_password.get().strip() config_dict["advanced"]["udn_password"] = txt_udn_password.get().strip()
config_dict["advanced"]["ticketplus_password"] = txt_ticketplus_password.get().strip() config_dict["advanced"]["ticketplus_password"] = txt_ticketplus_password.get().strip()
config_dict["advanced"]["tixcraft_sid"] = encryptMe(config_dict["advanced"]["tixcraft_sid"]) config_dict["advanced"]["tixcraft_sid"] = config_dict["advanced"]["tixcraft_sid"]
config_dict["advanced"]["ibonqware"] = encryptMe(config_dict["advanced"]["ibonqware"]) config_dict["advanced"]["ibonqware"] = config_dict["advanced"]["ibonqware"]
config_dict["advanced"]["facebook_password"] = encryptMe(config_dict["advanced"]["facebook_password"]) config_dict["advanced"]["facebook_password"] = encryptMe(config_dict["advanced"]["facebook_password"])
config_dict["advanced"]["kktix_password"] = encryptMe(config_dict["advanced"]["kktix_password"]) config_dict["advanced"]["kktix_password"] = encryptMe(config_dict["advanced"]["kktix_password"])
config_dict["advanced"]["fami_password"] = encryptMe(config_dict["advanced"]["fami_password"]) config_dict["advanced"]["fami_password"] = encryptMe(config_dict["advanced"]["fami_password"])
@ -2408,7 +2421,7 @@ def AutofillTab(root, config_dict, language_code, UI_PADDING_X):
lbl_tixcraft_sid.grid(column=0, row=group_row_count, sticky = E) lbl_tixcraft_sid.grid(column=0, row=group_row_count, sticky = E)
global txt_tixcraft_sid global txt_tixcraft_sid
txt_tixcraft_sid_value = StringVar(frame_group_header, value=decryptMe(config_dict["advanced"]["tixcraft_sid"].strip())) txt_tixcraft_sid_value = StringVar(frame_group_header, value=config_dict["advanced"]["tixcraft_sid"].strip())
txt_tixcraft_sid = Entry(frame_group_header, width=30, textvariable = txt_tixcraft_sid_value, show="*") txt_tixcraft_sid = Entry(frame_group_header, width=30, textvariable = txt_tixcraft_sid_value, show="*")
txt_tixcraft_sid.grid(column=1, row=group_row_count, columnspan=2, sticky = W) txt_tixcraft_sid.grid(column=1, row=group_row_count, columnspan=2, sticky = W)
@ -2419,7 +2432,7 @@ def AutofillTab(root, config_dict, language_code, UI_PADDING_X):
lbl_ibon_ibonqware.grid(column=0, row=group_row_count, sticky = E) lbl_ibon_ibonqware.grid(column=0, row=group_row_count, sticky = E)
global txt_ibon_ibonqware global txt_ibon_ibonqware
txt_ibon_ibonqware_value = StringVar(frame_group_header, value=decryptMe(config_dict["advanced"]["ibonqware"].strip())) txt_ibon_ibonqware_value = StringVar(frame_group_header, value=config_dict["advanced"]["ibonqware"].strip())
txt_ibon_ibonqware = Entry(frame_group_header, width=30, textvariable = txt_ibon_ibonqware_value, show="*") txt_ibon_ibonqware = Entry(frame_group_header, width=30, textvariable = txt_ibon_ibonqware_value, show="*")
txt_ibon_ibonqware.grid(column=1, row=group_row_count, columnspan=2, sticky = W) txt_ibon_ibonqware.grid(column=1, row=group_row_count, columnspan=2, sticky = W)
@ -2658,12 +2671,26 @@ def change_maxbot_status_by_keyword():
def check_maxbot_config_unsaved(config_dict): def check_maxbot_config_unsaved(config_dict):
# alert not saved config. # alert not saved config.
global combo_ticket_number
global txt_date_keyword
global txt_area_keyword
global txt_keyword_exclude
global txt_idle_keyword global txt_idle_keyword
global txt_resume_keyword global txt_resume_keyword
global txt_idle_keyword_second global txt_idle_keyword_second
global txt_resume_keyword_second global txt_resume_keyword_second
try: try:
date_keyword = txt_date_keyword.get("1.0",END).strip()
date_keyword = format_config_keyword_for_json(date_keyword)
area_keyword = txt_area_keyword.get("1.0",END).strip()
area_keyword = format_config_keyword_for_json(area_keyword)
keyword_exclude = txt_keyword_exclude.get("1.0",END).strip()
keyword_exclude = format_config_keyword_for_json(keyword_exclude)
idle_keyword = txt_idle_keyword.get("1.0",END).strip() idle_keyword = txt_idle_keyword.get("1.0",END).strip()
idle_keyword = format_config_keyword_for_json(idle_keyword) idle_keyword = format_config_keyword_for_json(idle_keyword)
@ -2676,6 +2703,27 @@ def check_maxbot_config_unsaved(config_dict):
resume_keyword_second = txt_resume_keyword_second.get("1.0",END).strip() resume_keyword_second = txt_resume_keyword_second.get("1.0",END).strip()
resume_keyword_second = format_config_keyword_for_json(resume_keyword_second) resume_keyword_second = format_config_keyword_for_json(resume_keyword_second)
highlightthickness = 0
if len(combo_ticket_number.get().strip())>0:
if config_dict["ticket_number"] != int(combo_ticket_number.get().strip()):
highlightthickness = 2
#combo_ticket_number.config(highlightthickness=highlightthickness, highlightbackground="red")
highlightthickness = 0
if config_dict["date_auto_select"]["date_keyword"] != date_keyword:
highlightthickness = 2
txt_date_keyword.config(highlightthickness=highlightthickness, highlightbackground="red")
highlightthickness = 0
if config_dict["area_auto_select"]["area_keyword"] != area_keyword:
highlightthickness = 2
txt_area_keyword.config(highlightthickness=highlightthickness, highlightbackground="red")
highlightthickness = 0
if config_dict["keyword_exclude"] != keyword_exclude:
highlightthickness = 2
txt_keyword_exclude.config(highlightthickness=highlightthickness, highlightbackground="red")
highlightthickness = 0 highlightthickness = 0
if config_dict["advanced"]["idle_keyword"] != idle_keyword: if config_dict["advanced"]["idle_keyword"] != idle_keyword:
highlightthickness = 2 highlightthickness = 2
@ -2696,6 +2744,7 @@ def check_maxbot_config_unsaved(config_dict):
highlightthickness = 2 highlightthickness = 2
txt_resume_keyword_second.config(highlightthickness=highlightthickness, highlightbackground="red") txt_resume_keyword_second.config(highlightthickness=highlightthickness, highlightbackground="red")
except Exception as exc: except Exception as exc:
print(exc)
pass pass
def resetful_api_timer(): def resetful_api_timer():
@ -2791,7 +2840,6 @@ def RuntimeTab(root, config_dict, language_code, UI_PADDING_X):
lbl_maxbot_status = Label(frame_group_header, text=translate[language_code]['running_status']) lbl_maxbot_status = Label(frame_group_header, text=translate[language_code]['running_status'])
lbl_maxbot_status.grid(column=0, row=group_row_count, sticky = E) lbl_maxbot_status.grid(column=0, row=group_row_count, sticky = E)
frame_maxbot_interrupt = Frame(frame_group_header) frame_maxbot_interrupt = Frame(frame_group_header)
global lbl_maxbot_status_data global lbl_maxbot_status_data

View File

@ -1 +1 @@
{"homepage": "https://tixcraft.com", "browser": "chrome", "language": "\u7e41\u9ad4\u4e2d\u6587", "ticket_number": 2, "ocr_captcha": {"enable": true, "beta": true, "force_submit": true, "image_source": "canvas"}, "webdriver_type": "undetected_chromedriver", "date_auto_select": {"enable": true, "date_keyword": "", "mode": "random"}, "area_auto_select": {"enable": true, "mode": "random", "area_keyword": ""}, "keyword_exclude": "\"\u8f2a\u6905\",\"\u8eab\u969c\",\"\u8eab\u5fc3 \u969c\u7919\",\"Restricted View\",\"\u71c8\u67f1\u906e\u853d\",\"\u8996\u7dda\u4e0d\u5b8c\u6574\"", "kktix": {"auto_press_next_step_button": true, "auto_fill_ticket_number": true}, "tixcraft": {"pass_date_is_sold_out": true, "auto_reload_coming_soon_page": true}, "advanced": {"play_captcha_sound": {"enable": true, "filename": "ding-dong.wav"}, "tixcraft_sid": "", "ibonqware": "", "facebook_account": "", "kktix_account": "", "fami_account": "", "cityline_account": "", "urbtix_account": "", "hkticketing_account": "", "kham_account": "", "ticket_account": "", "udn_account": "", "ticketplus_account": "", "facebook_password": "", "kktix_password": "", "fami_password": "", "urbtix_password": "", "cityline_password": "", "hkticketing_password": "", "kham_password": "", "ticket_password": "", "udn_password": "", "ticketplus_password": "", "chrome_extension": true, "disable_adjacent_seat": false, "hide_some_image": true, "block_facebook_network": false, "headless": false, "verbose": false, "auto_guess_options": true, "user_guess_string": "", "remote_url": "\"http://127.0.0.1:16888/\"", "auto_reload_page_interval": 0.1, "reset_browser_interval": 0.0, "proxy_server_port": "", "idle_keyword": "", "resume_keyword": "", "idle_keyword_second": "", "resume_keyword_second": ""}, "domain_filter": ["*google-analytics.com/*", "*googletagmanager.com/*", "*googletagservices.com/*", "*lndata.com/*", "*a.amnet.tw/*", "*adx.c.appier.net/*", "*clarity.ms/*", "*cloudfront.com/*", "*cms.analytics.yahoo.com/*", "*doubleclick.net/*", "*e2elog.fetnet.net/*", "*fundingchoicesmessages.google.com/*", "*ghtinc.com/*", "*match.adsrvr.org/*", "*onead.onevision.com.tw/*", "*popin.cc/*", "*rollbar.com/*", "*sb.scorecardresearch.com/*", "*tagtoo.co/*", "*.ssp.hinet.net/*", "*ticketmaster.sg/js/adblock*", "*.googlesyndication.com/*", "*treasuredata.com/*", "*play.google.com/log?*", "*www.youtube.com/youtubei/v1/player/heartbeat*", "*tixcraft.com/js/analytics.js*", "*ticketmaster.sg/js/adblock.js*", "*img.uniicreative.com/*", "*cdn.cookielaw.org/*", "*tixcraft.com/js/custom.js*", "*tixcraft.com/js/common.js*", "*cdnjs.cloudflare.com/ajax/libs/clipboard.js/*"]} {"homepage": "https://tixcraft.com", "browser": "chrome", "language": "\u7e41\u9ad4\u4e2d\u6587", "ticket_number": 2, "ocr_captcha": {"enable": true, "beta": true, "force_submit": true, "image_source": "canvas"}, "webdriver_type": "undetected_chromedriver", "date_auto_select": {"enable": true, "date_keyword": "", "mode": "random"}, "area_auto_select": {"enable": true, "mode": "random", "area_keyword": ""}, "keyword_exclude": "\"\u8f2a\u6905\",\"\u8eab\u969c\",\"\u8eab\u5fc3 \u969c\u7919\",\"Restricted View\",\"\u71c8\u67f1\u906e\u853d\",\"\u8996\u7dda\u4e0d\u5b8c\u6574\"", "kktix": {"auto_press_next_step_button": true, "auto_fill_ticket_number": true}, "tixcraft": {"pass_date_is_sold_out": true, "auto_reload_coming_soon_page": true}, "advanced": {"play_captcha_sound": {"enable": true, "filename": "ding-dong.wav"}, "tixcraft_sid": "", "ibonqware": "", "facebook_account": "", "kktix_account": "", "fami_account": "", "cityline_account": "", "urbtix_account": "", "hkticketing_account": "", "kham_account": "", "ticket_account": "", "udn_account": "", "ticketplus_account": "", "facebook_password": "", "kktix_password": "", "fami_password": "", "urbtix_password": "", "cityline_password": "", "hkticketing_password": "", "kham_password": "", "ticket_password": "", "udn_password": "", "ticketplus_password": "", "facebook_password_plaintext": "", "kktix_password_plaintext": "", "fami_password_plaintext": "", "urbtix_password_plaintext": "", "cityline_password_plaintext": "", "hkticketing_password_plaintext": "", "kham_password_plaintext": "", "ticket_password_plaintext": "", "udn_password_plaintext": "", "ticketplus_password_plaintext": "", "chrome_extension": true, "disable_adjacent_seat": false, "hide_some_image": true, "block_facebook_network": false, "headless": false, "verbose": false, "auto_guess_options": true, "user_guess_string": "", "remote_url": "\"http://127.0.0.1:16888/\"", "auto_reload_page_interval": 0.1, "reset_browser_interval": 0.0, "proxy_server_port": "", "idle_keyword": "", "resume_keyword": "", "idle_keyword_second": "", "resume_keyword_second": ""}, "domain_filter": ["*google-analytics.com/*", "*googletagmanager.com/*", "*googletagservices.com/*", "*lndata.com/*", "*a.amnet.tw/*", "*adx.c.appier.net/*", "*clarity.ms/*", "*cloudfront.com/*", "*cms.analytics.yahoo.com/*", "*doubleclick.net/*", "*e2elog.fetnet.net/*", "*fundingchoicesmessages.google.com/*", "*ghtinc.com/*", "*match.adsrvr.org/*", "*onead.onevision.com.tw/*", "*popin.cc/*", "*rollbar.com/*", "*sb.scorecardresearch.com/*", "*tagtoo.co/*", "*.ssp.hinet.net/*", "*ticketmaster.sg/js/adblock*", "*.googlesyndication.com/*", "*treasuredata.com/*", "*play.google.com/log?*", "*www.youtube.com/youtubei/v1/player/heartbeat*", "*tixcraft.com/js/analytics.js*", "*ticketmaster.sg/js/adblock.js*", "*img.uniicreative.com/*", "*cdn.cookielaw.org/*", "*tixcraft.com/js/custom.js*", "*tixcraft.com/js/common.js*", "*cdnjs.cloudflare.com/ajax/libs/clipboard.js/*"]}

View File

@ -1 +1 @@
{"homepage": "https://tixcraft.com", "browser": "chrome", "language": "\u7e41\u9ad4\u4e2d\u6587", "ticket_number": 2, "ocr_captcha": {"enable": true, "beta": true, "force_submit": true, "image_source": "canvas"}, "webdriver_type": "undetected_chromedriver", "date_auto_select": {"enable": true, "date_keyword": "", "mode": "random"}, "area_auto_select": {"enable": true, "mode": "random", "area_keyword": ""}, "keyword_exclude": "\"\u8f2a\u6905\",\"\u8eab\u969c\",\"\u8eab\u5fc3 \u969c\u7919\",\"Restricted View\",\"\u71c8\u67f1\u906e\u853d\",\"\u8996\u7dda\u4e0d\u5b8c\u6574\"", "kktix": {"auto_press_next_step_button": true, "auto_fill_ticket_number": true}, "tixcraft": {"pass_date_is_sold_out": true, "auto_reload_coming_soon_page": true}, "advanced": {"play_captcha_sound": {"enable": true, "filename": "ding-dong.wav"}, "tixcraft_sid": "", "ibonqware": "", "facebook_account": "", "kktix_account": "", "fami_account": "", "cityline_account": "", "urbtix_account": "", "hkticketing_account": "", "kham_account": "", "ticket_account": "", "udn_account": "", "ticketplus_account": "", "facebook_password": "", "kktix_password": "", "fami_password": "", "urbtix_password": "", "cityline_password": "", "hkticketing_password": "", "kham_password": "", "ticket_password": "", "udn_password": "", "ticketplus_password": "", "chrome_extension": true, "disable_adjacent_seat": false, "hide_some_image": true, "block_facebook_network": false, "headless": false, "verbose": false, "auto_guess_options": true, "user_guess_string": "", "remote_url": "\"http://127.0.0.1:16888/\"", "auto_reload_page_interval": 0.1, "reset_browser_interval": 0.0, "proxy_server_port": "", "idle_keyword": "", "resume_keyword": "", "idle_keyword_second": "", "resume_keyword_second": ""}} {"homepage": "https://tixcraft.com", "browser": "chrome", "language": "\u7e41\u9ad4\u4e2d\u6587", "ticket_number": 2, "ocr_captcha": {"enable": true, "beta": true, "force_submit": true, "image_source": "canvas"}, "webdriver_type": "undetected_chromedriver", "date_auto_select": {"enable": true, "date_keyword": "", "mode": "random"}, "area_auto_select": {"enable": true, "mode": "random", "area_keyword": ""}, "keyword_exclude": "\"\u8f2a\u6905\",\"\u8eab\u969c\",\"\u8eab\u5fc3 \u969c\u7919\",\"Restricted View\",\"\u71c8\u67f1\u906e\u853d\",\"\u8996\u7dda\u4e0d\u5b8c\u6574\"", "kktix": {"auto_press_next_step_button": true, "auto_fill_ticket_number": true}, "tixcraft": {"pass_date_is_sold_out": true, "auto_reload_coming_soon_page": true}, "advanced": {"play_captcha_sound": {"enable": true, "filename": "ding-dong.wav"}, "tixcraft_sid": "", "ibonqware": "", "facebook_account": "", "kktix_account": "", "fami_account": "", "cityline_account": "", "urbtix_account": "", "hkticketing_account": "", "kham_account": "", "ticket_account": "", "udn_account": "", "ticketplus_account": "", "facebook_password": "", "kktix_password": "", "fami_password": "", "urbtix_password": "", "cityline_password": "", "hkticketing_password": "", "kham_password": "", "ticket_password": "", "udn_password": "", "ticketplus_password": "", "facebook_password_plaintext": "", "kktix_password_plaintext": "", "fami_password_plaintext": "", "urbtix_password_plaintext": "", "cityline_password_plaintext": "", "hkticketing_password_plaintext": "", "kham_password_plaintext": "", "ticket_password_plaintext": "", "udn_password_plaintext": "", "ticketplus_password_plaintext": "", "chrome_extension": true, "disable_adjacent_seat": false, "hide_some_image": true, "block_facebook_network": false, "headless": false, "verbose": false, "auto_guess_options": true, "user_guess_string": "", "remote_url": "\"http://127.0.0.1:16888/\"", "auto_reload_page_interval": 0.1, "reset_browser_interval": 0.0, "proxy_server_port": "", "idle_keyword": "", "resume_keyword": "", "idle_keyword_second": "", "resume_keyword_second": ""}}