2022-12-26, add user-guess-string for question.
parent
0568d2b6f6
commit
060d3e5d5f
|
@ -39,7 +39,7 @@ warnings.simplefilter('ignore',InsecureRequestWarning)
|
||||||
import ssl
|
import ssl
|
||||||
ssl._create_default_https_context = ssl._create_unverified_context
|
ssl._create_default_https_context = ssl._create_unverified_context
|
||||||
|
|
||||||
CONST_APP_VERSION = u"MaxBot (2022.12.22)"
|
CONST_APP_VERSION = u"MaxBot (2022.12.26)"
|
||||||
|
|
||||||
CONST_HOMEPAGE_DEFAULT = "https://tixcraft.com"
|
CONST_HOMEPAGE_DEFAULT = "https://tixcraft.com"
|
||||||
|
|
||||||
|
@ -1351,13 +1351,15 @@ def tixcraft_ticket_number_auto_fill(driver, select_obj, ticket_number):
|
||||||
|
|
||||||
return is_assign_ticket_number
|
return is_assign_ticket_number
|
||||||
|
|
||||||
def tixcraft_verify(driver):
|
def tixcraft_verify(driver, presale_code):
|
||||||
show_debug_message = True # debug.
|
show_debug_message = True # debug.
|
||||||
#show_debug_message = False # online
|
#show_debug_message = False # online
|
||||||
|
|
||||||
ret = False
|
ret = False
|
||||||
|
|
||||||
captcha_password_string = None
|
captcha_password_string = None
|
||||||
|
if len(presale_code) > 0:
|
||||||
|
captcha_password_string = presale_code
|
||||||
|
|
||||||
form_select = None
|
form_select = None
|
||||||
try:
|
try:
|
||||||
|
@ -1400,10 +1402,11 @@ def tixcraft_verify(driver):
|
||||||
is_options_in_question = False
|
is_options_in_question = False
|
||||||
|
|
||||||
# 請輸入"YES",代表您已詳閱且瞭解並同意。
|
# 請輸入"YES",代表您已詳閱且瞭解並同意。
|
||||||
if u'請輸入"YES"' in html_text:
|
if captcha_password_string is None:
|
||||||
if u'已詳閱' in html_text:
|
if u'請輸入"YES"' in html_text:
|
||||||
if u'並同意' in html_text:
|
if u'已詳閱' in html_text:
|
||||||
captcha_password_string = 'YES'
|
if u'並同意' in html_text:
|
||||||
|
captcha_password_string = 'YES'
|
||||||
|
|
||||||
if show_debug_message:
|
if show_debug_message:
|
||||||
print("captcha_password_string:", captcha_password_string)
|
print("captcha_password_string:", captcha_password_string)
|
||||||
|
@ -1433,7 +1436,6 @@ def tixcraft_verify(driver):
|
||||||
try:
|
try:
|
||||||
# PS: sometime may send key twice...
|
# PS: sometime may send key twice...
|
||||||
form_input.clear()
|
form_input.clear()
|
||||||
|
|
||||||
form_input.send_keys(captcha_password_string)
|
form_input.send_keys(captcha_password_string)
|
||||||
is_password_sent = True
|
is_password_sent = True
|
||||||
if show_debug_message:
|
if show_debug_message:
|
||||||
|
@ -1474,7 +1476,6 @@ def tixcraft_verify(driver):
|
||||||
if len(default_value)==0:
|
if len(default_value)==0:
|
||||||
try:
|
try:
|
||||||
form_input.click()
|
form_input.click()
|
||||||
time.sleep(0.5)
|
|
||||||
except Exception as exc:
|
except Exception as exc:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
@ -2087,7 +2088,7 @@ def kktix_check_register_status(url):
|
||||||
#print("registerStatus:", registerStatus)
|
#print("registerStatus:", registerStatus)
|
||||||
return registerStatus
|
return registerStatus
|
||||||
|
|
||||||
def kktix_reg_new_captcha(registrationsNewApp_div, captcha_inner_div, auto_guess_options):
|
def kktix_reg_new_captcha(registrationsNewApp_div, captcha_inner_div):
|
||||||
show_debug_message = True # debug.
|
show_debug_message = True # debug.
|
||||||
show_debug_message = False # online
|
show_debug_message = False # online
|
||||||
|
|
||||||
|
@ -2449,9 +2450,8 @@ def kktix_reg_new_captcha(registrationsNewApp_div, captcha_inner_div, auto_guess
|
||||||
|
|
||||||
# still no answer.
|
# still no answer.
|
||||||
if captcha_password_string is None:
|
if captcha_password_string is None:
|
||||||
if auto_guess_options:
|
if not is_combine_two_question:
|
||||||
if not is_combine_two_question:
|
answer_list, my_answer_delimitor = get_answer_list_by_question(captcha_text_div_text)
|
||||||
answer_list, my_answer_delimitor = get_answer_list_by_question(captcha_text_div_text)
|
|
||||||
|
|
||||||
return captcha_password_string, answer_list, my_answer_delimitor
|
return captcha_password_string, answer_list, my_answer_delimitor
|
||||||
|
|
||||||
|
@ -2561,7 +2561,14 @@ def kktix_reg_new_main(driver, answer_index, is_finish_checkbox_click, config_di
|
||||||
print("found captcha_inner_div layor.")
|
print("found captcha_inner_div layor.")
|
||||||
|
|
||||||
auto_guess_options = config_dict["kktix"]["auto_guess_options"]
|
auto_guess_options = config_dict["kktix"]["auto_guess_options"]
|
||||||
captcha_password_string, answer_list, my_answer_delimitor = kktix_reg_new_captcha(registrationsNewApp_div, captcha_inner_div, auto_guess_options)
|
user_guess_string = config_dict["kktix"]["user_guess_string"]
|
||||||
|
|
||||||
|
if len(user_guess_string) > 0:
|
||||||
|
captcha_password_string = user_guess_string
|
||||||
|
else:
|
||||||
|
if auto_guess_options:
|
||||||
|
captcha_password_string, answer_list, my_answer_delimitor = kktix_reg_new_captcha(registrationsNewApp_div, captcha_inner_div)
|
||||||
|
|
||||||
|
|
||||||
if captcha_password_string is not None:
|
if captcha_password_string is not None:
|
||||||
# password is not None, try to send.
|
# password is not None, try to send.
|
||||||
|
@ -2587,7 +2594,7 @@ def kktix_reg_new_main(driver, answer_index, is_finish_checkbox_click, config_di
|
||||||
inputed_captcha_text = ""
|
inputed_captcha_text = ""
|
||||||
if len(inputed_captcha_text) == 0:
|
if len(inputed_captcha_text) == 0:
|
||||||
try:
|
try:
|
||||||
print("focus() captcha to input.")
|
#print("focus() captcha to input.")
|
||||||
check_and_play_sound_for_captcha(config_dict)
|
check_and_play_sound_for_captcha(config_dict)
|
||||||
captcha_password_input_tag.click()
|
captcha_password_input_tag.click()
|
||||||
time.sleep(1)
|
time.sleep(1)
|
||||||
|
@ -2659,7 +2666,7 @@ def kktix_reg_new_main(driver, answer_index, is_finish_checkbox_click, config_di
|
||||||
# exceed index, do nothing.
|
# exceed index, do nothing.
|
||||||
pass
|
pass
|
||||||
else:
|
else:
|
||||||
# captcha appear but we do no have answer list.
|
# captcha appeared, but we don't have answer list.
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
@ -3522,11 +3529,61 @@ def cityline_performance(driver, config_dict):
|
||||||
if click_ret:
|
if click_ret:
|
||||||
break
|
break
|
||||||
|
|
||||||
def facebook_login(driver, facebook_account):
|
def facebook_login(driver, account):
|
||||||
ret = False
|
ret = False
|
||||||
el_email = None
|
el_email = None
|
||||||
try:
|
try:
|
||||||
el_email = driver.find_element(By.CSS_SELECTOR, '#email')
|
el_email = driver.find_element(By.CSS_SELECTOR, '#email')
|
||||||
|
except Exception as exc:
|
||||||
|
pass
|
||||||
|
|
||||||
|
is_visible = False
|
||||||
|
if el_email is not None:
|
||||||
|
try:
|
||||||
|
if el_email.is_enabled():
|
||||||
|
is_visible = True
|
||||||
|
except Exception as exc:
|
||||||
|
pass
|
||||||
|
|
||||||
|
is_email_sent = False
|
||||||
|
if is_visible:
|
||||||
|
try:
|
||||||
|
inputed_text = el_email.get_attribute('value')
|
||||||
|
if inputed_text is not None:
|
||||||
|
if len(inputed_text) == 0:
|
||||||
|
el_email.send_keys(account)
|
||||||
|
is_email_sent = True
|
||||||
|
except Exception as exc:
|
||||||
|
pass
|
||||||
|
|
||||||
|
el_pass = None
|
||||||
|
if is_email_sent:
|
||||||
|
try:
|
||||||
|
el_pass = driver.find_element(By.CSS_SELECTOR, '#pass')
|
||||||
|
except Exception as exc:
|
||||||
|
pass
|
||||||
|
|
||||||
|
is_visible = False
|
||||||
|
if el_pass is not None:
|
||||||
|
try:
|
||||||
|
if el_pass.is_enabled():
|
||||||
|
is_visible = True
|
||||||
|
except Exception as exc:
|
||||||
|
pass
|
||||||
|
|
||||||
|
if is_visible:
|
||||||
|
try:
|
||||||
|
el_pass.click()
|
||||||
|
except Exception as exc:
|
||||||
|
pass
|
||||||
|
|
||||||
|
return ret
|
||||||
|
|
||||||
|
def kktix_login(driver, account):
|
||||||
|
ret = False
|
||||||
|
el_email = None
|
||||||
|
try:
|
||||||
|
el_email = driver.find_element(By.CSS_SELECTOR, '#user_login')
|
||||||
except Exception as exc:
|
except Exception as exc:
|
||||||
#print("find #email fail")
|
#print("find #email fail")
|
||||||
#print(exc)
|
#print(exc)
|
||||||
|
@ -3536,11 +3593,8 @@ def facebook_login(driver, facebook_account):
|
||||||
if el_email is not None:
|
if el_email is not None:
|
||||||
try:
|
try:
|
||||||
if el_email.is_enabled():
|
if el_email.is_enabled():
|
||||||
if el_email.is_displayed():
|
is_visible = True
|
||||||
is_visible = True
|
|
||||||
except Exception as exc:
|
except Exception as exc:
|
||||||
#print("find #email fail")
|
|
||||||
#print(exc)
|
|
||||||
pass
|
pass
|
||||||
|
|
||||||
is_email_sent = False
|
is_email_sent = False
|
||||||
|
@ -3549,39 +3603,30 @@ def facebook_login(driver, facebook_account):
|
||||||
inputed_text = el_email.get_attribute('value')
|
inputed_text = el_email.get_attribute('value')
|
||||||
if inputed_text is not None:
|
if inputed_text is not None:
|
||||||
if len(inputed_text) == 0:
|
if len(inputed_text) == 0:
|
||||||
el_email.send_keys(facebook_account)
|
el_email.send_keys(account)
|
||||||
is_email_sent = True
|
is_email_sent = True
|
||||||
except Exception as exc:
|
except Exception as exc:
|
||||||
#print("find #email fail")
|
|
||||||
#print(exc)
|
|
||||||
pass
|
pass
|
||||||
|
|
||||||
el_pass = None
|
el_pass = None
|
||||||
if is_email_sent:
|
if is_email_sent:
|
||||||
try:
|
try:
|
||||||
el_pass = driver.find_element(By.CSS_SELECTOR, '#pass')
|
el_pass = driver.find_element(By.CSS_SELECTOR, '#user_password')
|
||||||
except Exception as exc:
|
except Exception as exc:
|
||||||
#print("find #email fail")
|
|
||||||
#print(exc)
|
|
||||||
pass
|
pass
|
||||||
|
|
||||||
is_visible = False
|
is_visible = False
|
||||||
if el_pass is not None:
|
if el_pass is not None:
|
||||||
try:
|
try:
|
||||||
if el_pass.is_enabled():
|
if el_pass.is_enabled():
|
||||||
if el_pass.is_displayed():
|
is_visible = True
|
||||||
is_visible = True
|
|
||||||
except Exception as exc:
|
except Exception as exc:
|
||||||
#print("find #email fail")
|
|
||||||
#print(exc)
|
|
||||||
pass
|
pass
|
||||||
|
|
||||||
if is_visible:
|
if is_visible:
|
||||||
try:
|
try:
|
||||||
el_pass.click()
|
el_pass.click()
|
||||||
except Exception as exc:
|
except Exception as exc:
|
||||||
#print("find #email fail")
|
|
||||||
#print(exc)
|
|
||||||
pass
|
pass
|
||||||
|
|
||||||
return ret
|
return ret
|
||||||
|
@ -3858,7 +3903,8 @@ def main():
|
||||||
tixcraft_area_auto_select(driver, url, config_dict)
|
tixcraft_area_auto_select(driver, url, config_dict)
|
||||||
|
|
||||||
if '/ticket/verify/' in url:
|
if '/ticket/verify/' in url:
|
||||||
tixcraft_verify(driver)
|
presale_code = config_dict["tixcraft"]["presale_code"]
|
||||||
|
tixcraft_verify(driver, presale_code)
|
||||||
|
|
||||||
# main app, to select ticket number.
|
# main app, to select ticket number.
|
||||||
if '/ticket/ticket/' in url:
|
if '/ticket/ticket/' in url:
|
||||||
|
@ -3870,9 +3916,12 @@ def main():
|
||||||
# for kktix.cc and kktix.com
|
# for kktix.cc and kktix.com
|
||||||
if 'kktix.c' in url:
|
if 'kktix.c' in url:
|
||||||
auto_press_next_step_button = config_dict["kktix"]["auto_press_next_step_button"]
|
auto_press_next_step_button = config_dict["kktix"]["auto_press_next_step_button"]
|
||||||
|
kktix_account = config_dict["advanced"]["kktix_account"]
|
||||||
|
|
||||||
# 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:
|
||||||
|
if len(kktix_account) > 4:
|
||||||
|
kktix_login(driver, kktix_account)
|
||||||
continue
|
continue
|
||||||
|
|
||||||
if '/registrations/new' in url:
|
if '/registrations/new' in url:
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
{"homepage": "https://tixcraft.com", "browser": "chrome", "language": "\u7e41\u9ad4\u4e2d\u6587", "ticket_number": 2, "pass_1_seat_remaining": true, "auto_check_agree": true, "kktix": {"auto_press_next_step_button": true, "auto_fill_ticket_number": true, "area_mode": "from top to bottom", "area_keyword_1": "", "area_keyword_1_and": "", "area_keyword_2": "", "area_keyword_2_and": "", "auto_guess_options": false}, "tixcraft": {"date_auto_select": {"enable": true, "date_keyword": "", "mode": "from top to bottom"}, "area_auto_select": {"enable": true, "area_keyword_1": "", "area_keyword_2": "", "area_keyword_3": "", "area_keyword_4": "", "mode": "from top to bottom"}, "pass_date_is_sold_out": false, "auto_reload_coming_soon_page": true}, "advanced": {"play_captcha_sound": {"enable": true, "filename": "ding-dong.wav"}, "facebook_account": "", "adblock_plus_enable": false}, "debug": false}
|
{"homepage": "https://tixcraft.com", "browser": "chrome", "language": "\u7e41\u9ad4\u4e2d\u6587", "ticket_number": 2, "pass_1_seat_remaining": true, "auto_check_agree": true, "kktix": {"auto_press_next_step_button": true, "auto_fill_ticket_number": true, "area_mode": "from top to bottom", "area_keyword_1": "", "area_keyword_1_and": "", "area_keyword_2": "", "area_keyword_2_and": "", "auto_guess_options": false, "user_guess_string": ""}, "tixcraft": {"date_auto_select": {"enable": true, "date_keyword": "", "mode": "from top to bottom"}, "area_auto_select": {"enable": true, "area_keyword_1": "", "area_keyword_2": "", "area_keyword_3": "", "area_keyword_4": "", "mode": "from top to bottom"}, "pass_date_is_sold_out": false, "auto_reload_coming_soon_page": true, "presale_code": ""}, "advanced": {"play_captcha_sound": {"enable": true, "filename": "ding-dong.wav"}, "facebook_account": "", "kktix_account": "", "adblock_plus_enable": false}, "debug": false}
|
180
settings.py
180
settings.py
|
@ -19,7 +19,7 @@ import json
|
||||||
import webbrowser
|
import webbrowser
|
||||||
import pyperclip
|
import pyperclip
|
||||||
|
|
||||||
CONST_APP_VERSION = u"MaxBot (2022.12.22)"
|
CONST_APP_VERSION = u"MaxBot (2022.12.26)"
|
||||||
|
|
||||||
CONST_FROM_TOP_TO_BOTTOM = u"from top to bottom"
|
CONST_FROM_TOP_TO_BOTTOM = u"from top to bottom"
|
||||||
CONST_FROM_BOTTOM_TO_TOP = u"from bottom to top"
|
CONST_FROM_BOTTOM_TO_TOP = u"from bottom to top"
|
||||||
|
@ -62,6 +62,7 @@ def load_translate():
|
||||||
en_us["area_keyword"] = 'Area Keyword'
|
en_us["area_keyword"] = 'Area Keyword'
|
||||||
en_us["and"] = 'And with'
|
en_us["and"] = 'And with'
|
||||||
en_us["auto_guess_options"] = 'Guess Options in Question'
|
en_us["auto_guess_options"] = 'Guess Options in Question'
|
||||||
|
en_us["user_guess_string"] = 'Fill This Answer in Question'
|
||||||
|
|
||||||
en_us["date_auto_select"] = 'Date Auto Select'
|
en_us["date_auto_select"] = 'Date Auto Select'
|
||||||
en_us["date_select_order"] = 'Date select order'
|
en_us["date_select_order"] = 'Date select order'
|
||||||
|
@ -83,8 +84,11 @@ def load_translate():
|
||||||
en_us["save"] = 'Save'
|
en_us["save"] = 'Save'
|
||||||
en_us["exit"] = 'Close'
|
en_us["exit"] = 'Close'
|
||||||
en_us["copy"] = 'Copy'
|
en_us["copy"] = 'Copy'
|
||||||
|
en_us["restore_defaults"] = 'Restore Defaults'
|
||||||
|
en_us["done"] = 'Done'
|
||||||
|
|
||||||
en_us["facebook_account"] = 'Facebook account'
|
en_us["facebook_account"] = 'Facebook account'
|
||||||
|
en_us["kktix_account"] = 'KKTIX account'
|
||||||
en_us["play_captcha_sound"] = 'Play sound when captcha'
|
en_us["play_captcha_sound"] = 'Play sound when captcha'
|
||||||
en_us["captcha_sound_filename"] = 'captcha sound filename'
|
en_us["captcha_sound_filename"] = 'captcha sound filename'
|
||||||
en_us["adblock_plus_enable"] = 'Adblock Plus Extension'
|
en_us["adblock_plus_enable"] = 'Adblock Plus Extension'
|
||||||
|
@ -112,6 +116,7 @@ def load_translate():
|
||||||
zh_tw["area_keyword"] = '區域關鍵字'
|
zh_tw["area_keyword"] = '區域關鍵字'
|
||||||
zh_tw["and"] = '而且(同列)'
|
zh_tw["and"] = '而且(同列)'
|
||||||
zh_tw["auto_guess_options"] = '自動猜測驗證問題'
|
zh_tw["auto_guess_options"] = '自動猜測驗證問題'
|
||||||
|
zh_tw["user_guess_string"] = '在驗證問題中填寫此答案'
|
||||||
|
|
||||||
zh_tw["date_auto_select"] = '日期自動點選'
|
zh_tw["date_auto_select"] = '日期自動點選'
|
||||||
zh_tw["date_select_order"] = '日期排序方式'
|
zh_tw["date_select_order"] = '日期排序方式'
|
||||||
|
@ -133,8 +138,11 @@ def load_translate():
|
||||||
zh_tw["save"] = '存檔'
|
zh_tw["save"] = '存檔'
|
||||||
zh_tw["exit"] = '關閉'
|
zh_tw["exit"] = '關閉'
|
||||||
zh_tw["copy"] = '複製'
|
zh_tw["copy"] = '複製'
|
||||||
|
zh_tw["restore_defaults"] = '恢復預設值'
|
||||||
|
zh_tw["done"] = '完成'
|
||||||
|
|
||||||
zh_tw["facebook_account"] = 'Facebook 帳號'
|
zh_tw["facebook_account"] = 'Facebook 帳號'
|
||||||
|
zh_tw["kktix_account"] = 'KKTIX 帳號'
|
||||||
zh_tw["play_captcha_sound"] = '輸入驗證碼時播放音效'
|
zh_tw["play_captcha_sound"] = '輸入驗證碼時播放音效'
|
||||||
zh_tw["captcha_sound_filename"] = '驗證碼用音效檔'
|
zh_tw["captcha_sound_filename"] = '驗證碼用音效檔'
|
||||||
zh_tw["adblock_plus_enable"] = 'Adblock 瀏覽器擴充功能'
|
zh_tw["adblock_plus_enable"] = 'Adblock 瀏覽器擴充功能'
|
||||||
|
@ -162,6 +170,7 @@ def load_translate():
|
||||||
zh_cn["area_keyword"] = '区域关键字'
|
zh_cn["area_keyword"] = '区域关键字'
|
||||||
zh_cn["and"] = '而且(同列)'
|
zh_cn["and"] = '而且(同列)'
|
||||||
zh_cn["auto_guess_options"] = '自动猜测验证问题'
|
zh_cn["auto_guess_options"] = '自动猜测验证问题'
|
||||||
|
zh_cn["user_guess_string"] = '在验证问题中填写此答案'
|
||||||
|
|
||||||
zh_cn["date_auto_select"] = '日期自动点选'
|
zh_cn["date_auto_select"] = '日期自动点选'
|
||||||
zh_cn["date_select_order"] = '日期排序方式'
|
zh_cn["date_select_order"] = '日期排序方式'
|
||||||
|
@ -183,8 +192,12 @@ def load_translate():
|
||||||
zh_cn["run"] = '抢票'
|
zh_cn["run"] = '抢票'
|
||||||
zh_cn["save"] = '存档'
|
zh_cn["save"] = '存档'
|
||||||
zh_cn["exit"] = '关闭'
|
zh_cn["exit"] = '关闭'
|
||||||
|
zh_cn["copy"] = '复制'
|
||||||
|
zh_cn["restore_defaults"] = '恢复默认值'
|
||||||
|
zh_cn["done"] = '完成'
|
||||||
|
|
||||||
zh_cn["facebook_account"] = 'Facebook 帐号'
|
zh_cn["facebook_account"] = 'Facebook 帐号'
|
||||||
|
zh_cn["kktix_account"] = 'KKTIX 帐号'
|
||||||
zh_cn["play_captcha_sound"] = '输入验证码时播放音效'
|
zh_cn["play_captcha_sound"] = '输入验证码时播放音效'
|
||||||
zh_cn["captcha_sound_filename"] = '验证码用音效档'
|
zh_cn["captcha_sound_filename"] = '验证码用音效档'
|
||||||
zh_cn["adblock_plus_enable"] = 'Adblock 浏览器扩充功能'
|
zh_cn["adblock_plus_enable"] = 'Adblock 浏览器扩充功能'
|
||||||
|
@ -212,6 +225,7 @@ def load_translate():
|
||||||
ja_jp["area_keyword"] = 'エリアキーワード'
|
ja_jp["area_keyword"] = 'エリアキーワード'
|
||||||
ja_jp["and"] = 'そして(同列)'
|
ja_jp["and"] = 'そして(同列)'
|
||||||
ja_jp["auto_guess_options"] = '自動推測検証問題'
|
ja_jp["auto_guess_options"] = '自動推測検証問題'
|
||||||
|
ja_jp["user_guess_string"] = '質問に回答を記入'
|
||||||
|
|
||||||
ja_jp["date_auto_select"] = '日付自動選択'
|
ja_jp["date_auto_select"] = '日付自動選択'
|
||||||
ja_jp["date_select_order"] = '日付のソート方法'
|
ja_jp["date_select_order"] = '日付のソート方法'
|
||||||
|
@ -233,8 +247,11 @@ def load_translate():
|
||||||
ja_jp["save"] = '保存'
|
ja_jp["save"] = '保存'
|
||||||
ja_jp["exit"] = '閉じる'
|
ja_jp["exit"] = '閉じる'
|
||||||
ja_jp["copy"] = 'コピー'
|
ja_jp["copy"] = 'コピー'
|
||||||
|
ja_jp["restore_defaults"] = 'デフォルトに戻す'
|
||||||
|
ja_jp["done"] = '終わり'
|
||||||
|
|
||||||
ja_jp["facebook_account"] = 'Facebookのアカウント'
|
ja_jp["facebook_account"] = 'Facebookのアカウント'
|
||||||
|
ja_jp["kktix_account"] = 'KKTIXのアカウント'
|
||||||
ja_jp["play_captcha_sound"] = 'キャプチャ時に音を鳴らす'
|
ja_jp["play_captcha_sound"] = 'キャプチャ時に音を鳴らす'
|
||||||
ja_jp["captcha_sound_filename"] = 'サウンドファイル名'
|
ja_jp["captcha_sound_filename"] = 'サウンドファイル名'
|
||||||
|
|
||||||
|
@ -281,6 +298,7 @@ def get_default_config():
|
||||||
config_dict["kktix"]["area_keyword_2"] = ""
|
config_dict["kktix"]["area_keyword_2"] = ""
|
||||||
config_dict["kktix"]["area_keyword_2_and"] = ""
|
config_dict["kktix"]["area_keyword_2_and"] = ""
|
||||||
config_dict["kktix"]["auto_guess_options"] = False
|
config_dict["kktix"]["auto_guess_options"] = False
|
||||||
|
config_dict["kktix"]["user_guess_string"] = ""
|
||||||
|
|
||||||
config_dict['tixcraft']={}
|
config_dict['tixcraft']={}
|
||||||
config_dict["tixcraft"]["date_auto_select"] = {}
|
config_dict["tixcraft"]["date_auto_select"] = {}
|
||||||
|
@ -298,6 +316,7 @@ def get_default_config():
|
||||||
|
|
||||||
config_dict["tixcraft"]["pass_date_is_sold_out"] = False
|
config_dict["tixcraft"]["pass_date_is_sold_out"] = False
|
||||||
config_dict["tixcraft"]["auto_reload_coming_soon_page"] = True
|
config_dict["tixcraft"]["auto_reload_coming_soon_page"] = True
|
||||||
|
config_dict["tixcraft"]["presale_code"] = ""
|
||||||
|
|
||||||
config_dict['advanced']={}
|
config_dict['advanced']={}
|
||||||
|
|
||||||
|
@ -306,6 +325,7 @@ def get_default_config():
|
||||||
config_dict["advanced"]["play_captcha_sound"]["filename"] = CONST_CAPTCHA_SOUND_FILENAME_DEFAULT
|
config_dict["advanced"]["play_captcha_sound"]["filename"] = CONST_CAPTCHA_SOUND_FILENAME_DEFAULT
|
||||||
|
|
||||||
config_dict["advanced"]["facebook_account"] = ""
|
config_dict["advanced"]["facebook_account"] = ""
|
||||||
|
config_dict["advanced"]["kktix_account"] = ""
|
||||||
config_dict["advanced"]["adblock_plus_enable"] = False
|
config_dict["advanced"]["adblock_plus_enable"] = False
|
||||||
|
|
||||||
config_dict['debug']=False
|
config_dict['debug']=False
|
||||||
|
@ -326,10 +346,23 @@ def load_json():
|
||||||
config_dict = get_default_config()
|
config_dict = get_default_config()
|
||||||
return config_filepath, config_dict
|
return config_filepath, config_dict
|
||||||
|
|
||||||
def btn_save_clicked():
|
def btn_restore_defaults_clicked(language_code):
|
||||||
btn_save_act()
|
app_root = get_app_root()
|
||||||
|
config_filepath = os.path.join(app_root, 'settings.json')
|
||||||
|
|
||||||
def btn_save_act(slience_mode=False):
|
config_dict = get_default_config()
|
||||||
|
import json
|
||||||
|
with open(config_filepath, 'w') as outfile:
|
||||||
|
json.dump(config_dict, outfile)
|
||||||
|
messagebox.showinfo(translate[language_code]["restore_defaults"], translate[language_code]["done"])
|
||||||
|
|
||||||
|
global root
|
||||||
|
load_GUI(root, config_dict)
|
||||||
|
|
||||||
|
def btn_save_clicked(language_code):
|
||||||
|
btn_save_act(language_code)
|
||||||
|
|
||||||
|
def btn_save_act(language_code, slience_mode=False):
|
||||||
app_root = get_app_root()
|
app_root = get_app_root()
|
||||||
config_filepath = os.path.join(app_root, 'settings.json')
|
config_filepath = os.path.join(app_root, 'settings.json')
|
||||||
|
|
||||||
|
@ -351,6 +384,7 @@ def btn_save_act(slience_mode=False):
|
||||||
global txt_kktix_area_keyword_2_and
|
global txt_kktix_area_keyword_2_and
|
||||||
# disable password brute force attack
|
# disable password brute force attack
|
||||||
global txt_kktix_answer_dictionary
|
global txt_kktix_answer_dictionary
|
||||||
|
global txt_kktix_user_guess_string
|
||||||
|
|
||||||
global chk_state_auto_guess_options
|
global chk_state_auto_guess_options
|
||||||
|
|
||||||
|
@ -367,8 +401,10 @@ def btn_save_act(slience_mode=False):
|
||||||
|
|
||||||
global chk_state_pass_date_is_sold_out
|
global chk_state_pass_date_is_sold_out
|
||||||
global chk_state_auto_reload_coming_soon_page
|
global chk_state_auto_reload_coming_soon_page
|
||||||
|
global txt_presale_code
|
||||||
|
|
||||||
global txt_facebook_account
|
global txt_facebook_account
|
||||||
|
global txt_kktix_account
|
||||||
global chk_state_play_captcha_sound
|
global chk_state_play_captcha_sound
|
||||||
global txt_captcha_sound_filename
|
global txt_captcha_sound_filename
|
||||||
global chk_state_adblock_plus
|
global chk_state_adblock_plus
|
||||||
|
@ -395,6 +431,8 @@ def btn_save_act(slience_mode=False):
|
||||||
messagebox.showerror("Error", "Please select a language")
|
messagebox.showerror("Error", "Please select a language")
|
||||||
else:
|
else:
|
||||||
config_dict["language"] = combo_language.get().strip()
|
config_dict["language"] = combo_language.get().strip()
|
||||||
|
# display as new language.
|
||||||
|
language_code = get_language_code_by_name(config_dict["language"])
|
||||||
|
|
||||||
if is_all_data_correct:
|
if is_all_data_correct:
|
||||||
if combo_ticket_number.get().strip()=="":
|
if combo_ticket_number.get().strip()=="":
|
||||||
|
@ -417,6 +455,7 @@ def btn_save_act(slience_mode=False):
|
||||||
# disable password brute force attack
|
# disable password brute force attack
|
||||||
#config_dict["kktix"]["answer_dictionary"] = txt_kktix_answer_dictionary.get().strip()
|
#config_dict["kktix"]["answer_dictionary"] = txt_kktix_answer_dictionary.get().strip()
|
||||||
config_dict["kktix"]["auto_guess_options"] = bool(chk_state_auto_guess_options.get())
|
config_dict["kktix"]["auto_guess_options"] = bool(chk_state_auto_guess_options.get())
|
||||||
|
config_dict["kktix"]["user_guess_string"] = txt_kktix_user_guess_string.get().strip()
|
||||||
|
|
||||||
config_dict["tixcraft"]["date_auto_select"]["enable"] = bool(chk_state_date_auto_select.get())
|
config_dict["tixcraft"]["date_auto_select"]["enable"] = bool(chk_state_date_auto_select.get())
|
||||||
config_dict["tixcraft"]["date_auto_select"]["date_keyword"] = txt_date_keyword.get().strip()
|
config_dict["tixcraft"]["date_auto_select"]["date_keyword"] = txt_date_keyword.get().strip()
|
||||||
|
@ -432,11 +471,13 @@ def btn_save_act(slience_mode=False):
|
||||||
|
|
||||||
config_dict["tixcraft"]["pass_date_is_sold_out"] = bool(chk_state_pass_date_is_sold_out.get())
|
config_dict["tixcraft"]["pass_date_is_sold_out"] = bool(chk_state_pass_date_is_sold_out.get())
|
||||||
config_dict["tixcraft"]["auto_reload_coming_soon_page"] = bool(chk_state_auto_reload_coming_soon_page.get())
|
config_dict["tixcraft"]["auto_reload_coming_soon_page"] = bool(chk_state_auto_reload_coming_soon_page.get())
|
||||||
|
config_dict["tixcraft"]["presale_code"] = txt_presale_code.get().strip()
|
||||||
|
|
||||||
config_dict["advanced"]["play_captcha_sound"]["enable"] = bool(chk_state_play_captcha_sound.get())
|
config_dict["advanced"]["play_captcha_sound"]["enable"] = bool(chk_state_play_captcha_sound.get())
|
||||||
config_dict["advanced"]["play_captcha_sound"]["filename"] = txt_captcha_sound_filename.get().strip()
|
config_dict["advanced"]["play_captcha_sound"]["filename"] = txt_captcha_sound_filename.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"]["adblock_plus_enable"] = bool(chk_state_adblock_plus.get())
|
config_dict["advanced"]["adblock_plus_enable"] = bool(chk_state_adblock_plus.get())
|
||||||
|
|
||||||
|
|
||||||
|
@ -446,17 +487,17 @@ def btn_save_act(slience_mode=False):
|
||||||
with open(config_filepath, 'w') as outfile:
|
with open(config_filepath, 'w') as outfile:
|
||||||
json.dump(config_dict, outfile)
|
json.dump(config_dict, outfile)
|
||||||
|
|
||||||
if slience_mode==False:
|
if not slience_mode:
|
||||||
messagebox.showinfo("File Save", "Done ^_^")
|
messagebox.showinfo(translate[language_code]["save"], translate[language_code]["done"])
|
||||||
|
|
||||||
return is_all_data_correct
|
return is_all_data_correct
|
||||||
|
|
||||||
def btn_run_clicked():
|
def btn_run_clicked(language_code):
|
||||||
import subprocess
|
import subprocess
|
||||||
|
|
||||||
print('run button pressed.')
|
print('run button pressed.')
|
||||||
Root_Dir = ""
|
Root_Dir = ""
|
||||||
save_ret = btn_save_act(slience_mode=True)
|
save_ret = btn_save_act(language_code, slience_mode=True)
|
||||||
print("save config result:", save_ret)
|
print("save config result:", save_ret)
|
||||||
if save_ret:
|
if save_ret:
|
||||||
if hasattr(sys, 'frozen'):
|
if hasattr(sys, 'frozen'):
|
||||||
|
@ -583,6 +624,7 @@ def applyNewLanguage():
|
||||||
global lbl_kktix_area_keyword_2
|
global lbl_kktix_area_keyword_2
|
||||||
global lbl_kktix_area_keyword_2_and_text
|
global lbl_kktix_area_keyword_2_and_text
|
||||||
global lbl_auto_guess_options
|
global lbl_auto_guess_options
|
||||||
|
global lbl_user_guess_string
|
||||||
|
|
||||||
# for tixcraft
|
# for tixcraft
|
||||||
global lbl_date_auto_select
|
global lbl_date_auto_select
|
||||||
|
@ -596,6 +638,7 @@ def applyNewLanguage():
|
||||||
global lbl_area_keyword_4
|
global lbl_area_keyword_4
|
||||||
global lbl_pass_date_is_sold_out
|
global lbl_pass_date_is_sold_out
|
||||||
global lbl_auto_reload_coming_soon_page
|
global lbl_auto_reload_coming_soon_page
|
||||||
|
global lbl_presale_code
|
||||||
|
|
||||||
# for checkbox
|
# for checkbox
|
||||||
global chk_pass_1_seat_remaining
|
global chk_pass_1_seat_remaining
|
||||||
|
@ -637,6 +680,8 @@ def applyNewLanguage():
|
||||||
lbl_kktix_area_keyword_2.config(text=translate[language_code]["area_keyword_2"])
|
lbl_kktix_area_keyword_2.config(text=translate[language_code]["area_keyword_2"])
|
||||||
lbl_kktix_area_keyword_2_and_text.config(text=translate[language_code]["and"])
|
lbl_kktix_area_keyword_2_and_text.config(text=translate[language_code]["and"])
|
||||||
lbl_auto_guess_options.config(text=translate[language_code]["auto_guess_options"])
|
lbl_auto_guess_options.config(text=translate[language_code]["auto_guess_options"])
|
||||||
|
lbl_user_guess_string.config(text=translate[language_code]["user_guess_string"])
|
||||||
|
|
||||||
lbl_date_auto_select.config(text=translate[language_code]["date_auto_select"])
|
lbl_date_auto_select.config(text=translate[language_code]["date_auto_select"])
|
||||||
lbl_date_auto_select_mode.config(text=translate[language_code]["date_select_order"])
|
lbl_date_auto_select_mode.config(text=translate[language_code]["date_select_order"])
|
||||||
lbl_date_keyword.config(text=translate[language_code]["date_keyword"])
|
lbl_date_keyword.config(text=translate[language_code]["date_keyword"])
|
||||||
|
@ -648,6 +693,7 @@ def applyNewLanguage():
|
||||||
lbl_area_keyword_4.config(text=translate[language_code]["area_keyword_4"])
|
lbl_area_keyword_4.config(text=translate[language_code]["area_keyword_4"])
|
||||||
lbl_pass_date_is_sold_out.config(text=translate[language_code]["pass_date_is_sold_out"])
|
lbl_pass_date_is_sold_out.config(text=translate[language_code]["pass_date_is_sold_out"])
|
||||||
lbl_auto_reload_coming_soon_page.config(text=translate[language_code]["auto_reload_coming_soon_page"])
|
lbl_auto_reload_coming_soon_page.config(text=translate[language_code]["auto_reload_coming_soon_page"])
|
||||||
|
lbl_presale_code.config(text=translate[language_code]["user_guess_string"])
|
||||||
|
|
||||||
chk_pass_1_seat_remaining.config(text=translate[language_code]["enable"])
|
chk_pass_1_seat_remaining.config(text=translate[language_code]["enable"])
|
||||||
chk_auto_check_agree.config(text=translate[language_code]["enable"])
|
chk_auto_check_agree.config(text=translate[language_code]["enable"])
|
||||||
|
@ -666,9 +712,11 @@ def applyNewLanguage():
|
||||||
tabControl.tab(2, text=translate[language_code]["about"])
|
tabControl.tab(2, text=translate[language_code]["about"])
|
||||||
|
|
||||||
global lbl_facebook_account
|
global lbl_facebook_account
|
||||||
|
global lbl_kktix_account
|
||||||
global lbl_play_captcha_sound
|
global lbl_play_captcha_sound
|
||||||
global lbl_captcha_sound_filename
|
global lbl_captcha_sound_filename
|
||||||
lbl_facebook_account.config(text=translate[language_code]["facebook_account"])
|
lbl_facebook_account.config(text=translate[language_code]["facebook_account"])
|
||||||
|
lbl_kktix_account.config(text=translate[language_code]["kktix_account"])
|
||||||
lbl_play_captcha_sound.config(text=translate[language_code]["play_captcha_sound"])
|
lbl_play_captcha_sound.config(text=translate[language_code]["play_captcha_sound"])
|
||||||
lbl_captcha_sound_filename.config(text=translate[language_code]["captcha_sound_filename"])
|
lbl_captcha_sound_filename.config(text=translate[language_code]["captcha_sound_filename"])
|
||||||
|
|
||||||
|
@ -684,9 +732,13 @@ def applyNewLanguage():
|
||||||
global btn_run
|
global btn_run
|
||||||
global btn_save
|
global btn_save
|
||||||
global btn_exit
|
global btn_exit
|
||||||
|
global btn_restore_defaults
|
||||||
|
|
||||||
btn_run.config(text=translate[language_code]["run"])
|
btn_run.config(text=translate[language_code]["run"])
|
||||||
btn_save.config(text=translate[language_code]["save"])
|
btn_save.config(text=translate[language_code]["save"])
|
||||||
btn_exit.config(text=translate[language_code]["exit"])
|
if btn_exit:
|
||||||
|
btn_exit.config(text=translate[language_code]["exit"])
|
||||||
|
btn_restore_defaults.config(text=translate[language_code]["restore_defaults"])
|
||||||
|
|
||||||
def callbackHomepageOnChange(event):
|
def callbackHomepageOnChange(event):
|
||||||
showHideBlocks()
|
showHideBlocks()
|
||||||
|
@ -889,6 +941,7 @@ def PreferenctTab(root, config_dict, language_code, UI_PADDING_X):
|
||||||
# PS: because of the question is always variable.
|
# PS: because of the question is always variable.
|
||||||
#kktix_answer_dictionary = ""
|
#kktix_answer_dictionary = ""
|
||||||
auto_guess_options = False
|
auto_guess_options = False
|
||||||
|
user_guess_string = ""
|
||||||
|
|
||||||
date_auto_select_enable = None
|
date_auto_select_enable = None
|
||||||
date_auto_select_mode = ""
|
date_auto_select_mode = ""
|
||||||
|
@ -903,6 +956,7 @@ def PreferenctTab(root, config_dict, language_code, UI_PADDING_X):
|
||||||
|
|
||||||
pass_date_is_sold_out_enable = False
|
pass_date_is_sold_out_enable = False
|
||||||
auto_reload_coming_soon_page_enable = True
|
auto_reload_coming_soon_page_enable = True
|
||||||
|
presale_code = ""
|
||||||
|
|
||||||
debugMode = False
|
debugMode = False
|
||||||
|
|
||||||
|
@ -929,6 +983,7 @@ def PreferenctTab(root, config_dict, language_code, UI_PADDING_X):
|
||||||
kktix_area_keyword_2 = config_dict["kktix"]["area_keyword_2"].strip()
|
kktix_area_keyword_2 = config_dict["kktix"]["area_keyword_2"].strip()
|
||||||
kktix_area_keyword_2_and = config_dict["kktix"]["area_keyword_2_and"].strip()
|
kktix_area_keyword_2_and = config_dict["kktix"]["area_keyword_2_and"].strip()
|
||||||
auto_guess_options = config_dict["kktix"]["auto_guess_options"]
|
auto_guess_options = config_dict["kktix"]["auto_guess_options"]
|
||||||
|
user_guess_string = config_dict["kktix"]["user_guess_string"].strip()
|
||||||
|
|
||||||
# disable password brute force attack
|
# disable password brute force attack
|
||||||
# PS: feature disabled.
|
# PS: feature disabled.
|
||||||
|
@ -954,6 +1009,7 @@ def PreferenctTab(root, config_dict, language_code, UI_PADDING_X):
|
||||||
area_keyword_4 = config_dict["tixcraft"]["area_auto_select"]["area_keyword_4"].strip()
|
area_keyword_4 = config_dict["tixcraft"]["area_auto_select"]["area_keyword_4"].strip()
|
||||||
pass_date_is_sold_out_enable = config_dict["tixcraft"]["pass_date_is_sold_out"]
|
pass_date_is_sold_out_enable = config_dict["tixcraft"]["pass_date_is_sold_out"]
|
||||||
auto_reload_coming_soon_page_enable = config_dict["tixcraft"]["auto_reload_coming_soon_page"]
|
auto_reload_coming_soon_page_enable = config_dict["tixcraft"]["auto_reload_coming_soon_page"]
|
||||||
|
presale_code = config_dict["tixcraft"]["presale_code"].strip()
|
||||||
|
|
||||||
# output config:
|
# output config:
|
||||||
print("setting app version", CONST_APP_VERSION)
|
print("setting app version", CONST_APP_VERSION)
|
||||||
|
@ -975,6 +1031,7 @@ def PreferenctTab(root, config_dict, language_code, UI_PADDING_X):
|
||||||
# disable password brute force attack
|
# disable password brute force attack
|
||||||
#print("kktix_answer_dictionary", kktix_answer_dictionary)
|
#print("kktix_answer_dictionary", kktix_answer_dictionary)
|
||||||
print("auto_guess_options", auto_guess_options)
|
print("auto_guess_options", auto_guess_options)
|
||||||
|
print("user_guess_string", user_guess_string)
|
||||||
|
|
||||||
# for tixcraft
|
# for tixcraft
|
||||||
print("==[tixcraft]==")
|
print("==[tixcraft]==")
|
||||||
|
@ -992,6 +1049,7 @@ def PreferenctTab(root, config_dict, language_code, UI_PADDING_X):
|
||||||
print("pass_date_is_sold_out", pass_date_is_sold_out_enable)
|
print("pass_date_is_sold_out", pass_date_is_sold_out_enable)
|
||||||
|
|
||||||
print("auto_reload_coming_soon_page", auto_reload_coming_soon_page_enable)
|
print("auto_reload_coming_soon_page", auto_reload_coming_soon_page_enable)
|
||||||
|
print("presale_code", presale_code)
|
||||||
|
|
||||||
print("debug Mode", debugMode)
|
print("debug Mode", debugMode)
|
||||||
|
|
||||||
|
@ -1246,8 +1304,15 @@ def PreferenctTab(root, config_dict, language_code, UI_PADDING_X):
|
||||||
|
|
||||||
group_row_count+=1
|
group_row_count+=1
|
||||||
|
|
||||||
lbl_hr = Label(frame_group_kktix, text="")
|
global lbl_user_guess_string
|
||||||
lbl_hr.grid(column=0, row=group_row_count)
|
lbl_user_guess_string = Label(frame_group_kktix, text=translate[language_code]['user_guess_string'])
|
||||||
|
lbl_user_guess_string.grid(column=0, row=group_row_count, sticky = E)
|
||||||
|
|
||||||
|
global txt_kktix_user_guess_string
|
||||||
|
txt_kktix_user_guess_string_value = StringVar(frame_group_kktix, value=user_guess_string)
|
||||||
|
txt_kktix_user_guess_string = Entry(frame_group_kktix, width=20, textvariable = txt_kktix_user_guess_string_value)
|
||||||
|
txt_kktix_user_guess_string.grid(column=1, row=group_row_count, sticky = W)
|
||||||
|
|
||||||
|
|
||||||
global frame_group_kktix_index
|
global frame_group_kktix_index
|
||||||
frame_group_kktix_index = row_count
|
frame_group_kktix_index = row_count
|
||||||
|
@ -1419,6 +1484,15 @@ def PreferenctTab(root, config_dict, language_code, UI_PADDING_X):
|
||||||
|
|
||||||
group_row_count+=1
|
group_row_count+=1
|
||||||
|
|
||||||
|
global lbl_presale_code
|
||||||
|
lbl_presale_code = Label(frame_group_tixcraft, text=translate[language_code]['user_guess_string'])
|
||||||
|
lbl_presale_code.grid(column=0, row=group_row_count, sticky = E)
|
||||||
|
|
||||||
|
global txt_presale_code
|
||||||
|
txt_presale_code_value = StringVar(frame_group_tixcraft, value=presale_code)
|
||||||
|
txt_presale_code = Entry(frame_group_tixcraft, width=20, textvariable = txt_presale_code_value)
|
||||||
|
txt_presale_code.grid(column=1, row=group_row_count, sticky = W)
|
||||||
|
|
||||||
global frame_group_tixcraft_index
|
global frame_group_tixcraft_index
|
||||||
frame_group_tixcraft_index = row_count
|
frame_group_tixcraft_index = row_count
|
||||||
frame_group_tixcraft.grid(column=0, row=row_count, sticky = W, padx=UI_PADDING_X)
|
frame_group_tixcraft.grid(column=0, row=row_count, sticky = W, padx=UI_PADDING_X)
|
||||||
|
@ -1433,13 +1507,14 @@ def AdvancedTab(root, config_dict, language_code, UI_PADDING_X):
|
||||||
group_row_count = 0
|
group_row_count = 0
|
||||||
|
|
||||||
facebook_account = ""
|
facebook_account = ""
|
||||||
|
kktix_account = ""
|
||||||
play_captcha_sound = False
|
play_captcha_sound = False
|
||||||
captcha_sound_filename = CONST_CAPTCHA_SOUND_FILENAME_DEFAULT
|
captcha_sound_filename = CONST_CAPTCHA_SOUND_FILENAME_DEFAULT
|
||||||
adblock_plus_enable = False
|
adblock_plus_enable = False
|
||||||
|
|
||||||
if 'advanced' in config_dict:
|
if 'advanced' in config_dict:
|
||||||
if 'facebook_account' in config_dict["advanced"]:
|
facebook_account = config_dict["advanced"]["facebook_account"].strip()
|
||||||
facebook_account = config_dict["advanced"]["facebook_account"].strip()
|
kktix_account = config_dict["advanced"]["kktix_account"].strip()
|
||||||
if 'play_captcha_sound' in config_dict["advanced"]:
|
if 'play_captcha_sound' in config_dict["advanced"]:
|
||||||
if 'enable' in config_dict["advanced"]["play_captcha_sound"]:
|
if 'enable' in config_dict["advanced"]["play_captcha_sound"]:
|
||||||
play_captcha_sound = config_dict["advanced"]["play_captcha_sound"]["enable"]
|
play_captcha_sound = config_dict["advanced"]["play_captcha_sound"]["enable"]
|
||||||
|
@ -1451,6 +1526,7 @@ def AdvancedTab(root, config_dict, language_code, UI_PADDING_X):
|
||||||
# for kktix
|
# for kktix
|
||||||
print("==[advanced]==")
|
print("==[advanced]==")
|
||||||
print("facebook_account", facebook_account)
|
print("facebook_account", facebook_account)
|
||||||
|
print("kktix_account", kktix_account)
|
||||||
print("play_captcha_sound", play_captcha_sound)
|
print("play_captcha_sound", play_captcha_sound)
|
||||||
print("captcha_sound_filename", captcha_sound_filename)
|
print("captcha_sound_filename", captcha_sound_filename)
|
||||||
print("adblock_plus_enable", adblock_plus_enable)
|
print("adblock_plus_enable", adblock_plus_enable)
|
||||||
|
@ -1473,6 +1549,17 @@ def AdvancedTab(root, config_dict, language_code, UI_PADDING_X):
|
||||||
|
|
||||||
group_row_count +=1
|
group_row_count +=1
|
||||||
|
|
||||||
|
global lbl_kktix_account
|
||||||
|
lbl_kktix_account = Label(frame_group_header, text=translate[language_code]['kktix_account'])
|
||||||
|
lbl_kktix_account.grid(column=0, row=group_row_count, sticky = E)
|
||||||
|
|
||||||
|
global txt_kktix_account
|
||||||
|
txt_kktix_account_value = StringVar(frame_group_header, value=kktix_account)
|
||||||
|
txt_kktix_account = Entry(frame_group_header, width=20, textvariable = txt_kktix_account_value)
|
||||||
|
txt_kktix_account.grid(column=1, row=group_row_count, sticky = W)
|
||||||
|
|
||||||
|
group_row_count +=1
|
||||||
|
|
||||||
global lbl_play_captcha_sound
|
global lbl_play_captcha_sound
|
||||||
lbl_play_captcha_sound = Label(frame_group_header, text=translate[language_code]['play_captcha_sound'])
|
lbl_play_captcha_sound = Label(frame_group_header, text=translate[language_code]['play_captcha_sound'])
|
||||||
lbl_play_captcha_sound.grid(column=0, row=group_row_count, sticky = E)
|
lbl_play_captcha_sound.grid(column=0, row=group_row_count, sticky = E)
|
||||||
|
@ -1610,44 +1697,35 @@ def AboutTab(root, language_code):
|
||||||
|
|
||||||
frame_group_header.grid(column=0, row=row_count)
|
frame_group_header.grid(column=0, row=row_count)
|
||||||
|
|
||||||
def get_action_bar(root,language_code):
|
def get_action_bar(root, language_code):
|
||||||
frame_action = Frame(root)
|
frame_action = Frame(root)
|
||||||
|
|
||||||
global btn_run
|
global btn_run
|
||||||
global btn_save
|
global btn_save
|
||||||
global btn_exit
|
global btn_exit
|
||||||
|
global btn_restore_defaults
|
||||||
|
|
||||||
btn_run = ttk.Button(frame_action, text=translate[language_code]['run'], command=btn_run_clicked)
|
btn_run = ttk.Button(frame_action, text=translate[language_code]['run'], command= lambda: btn_run_clicked(language_code))
|
||||||
btn_run.grid(column=0, row=0)
|
btn_run.grid(column=0, row=0)
|
||||||
|
|
||||||
btn_save = ttk.Button(frame_action, text=translate[language_code]['save'], command=btn_save_clicked)
|
btn_save = ttk.Button(frame_action, text=translate[language_code]['save'], command= lambda: btn_save_clicked(language_code) )
|
||||||
btn_save.grid(column=1, row=0)
|
btn_save.grid(column=1, row=0)
|
||||||
|
|
||||||
btn_exit = ttk.Button(frame_action, text=translate[language_code]['exit'], command=btn_exit_clicked)
|
btn_exit = ttk.Button(frame_action, text=translate[language_code]['exit'], command=btn_exit_clicked)
|
||||||
btn_exit.grid(column=3, row=0)
|
#btn_exit.grid(column=2, row=0)
|
||||||
|
|
||||||
|
btn_restore_defaults = ttk.Button(frame_action, text=translate[language_code]['restore_defaults'], command= lambda: btn_restore_defaults_clicked(language_code))
|
||||||
|
btn_restore_defaults.grid(column=2, row=0)
|
||||||
|
|
||||||
return frame_action
|
return frame_action
|
||||||
|
|
||||||
def main():
|
def clearFrame(frame):
|
||||||
global translate
|
# destroy all widgets from frame
|
||||||
translate = load_translate()
|
for widget in frame.winfo_children():
|
||||||
|
widget.destroy()
|
||||||
|
|
||||||
global config_filepath
|
def load_GUI(root, config_dict):
|
||||||
global config_dict
|
clearFrame(root)
|
||||||
config_filepath, config_dict = load_json()
|
|
||||||
|
|
||||||
global root
|
|
||||||
root = Tk()
|
|
||||||
root.title(CONST_APP_VERSION)
|
|
||||||
|
|
||||||
#style = ttk.Style(root)
|
|
||||||
#style.theme_use('aqua')
|
|
||||||
|
|
||||||
#root.configure(background='lightgray')
|
|
||||||
# style configuration
|
|
||||||
#style = Style(root)
|
|
||||||
#style.configure('TLabel', background='lightgray', foreground='black')
|
|
||||||
#style.configure('TFrame', background='lightgray')
|
|
||||||
|
|
||||||
language_code="en_us"
|
language_code="en_us"
|
||||||
if not config_dict is None:
|
if not config_dict is None:
|
||||||
|
@ -1669,18 +1747,36 @@ def main():
|
||||||
|
|
||||||
row_count+=1
|
row_count+=1
|
||||||
|
|
||||||
frame_action = get_action_bar(root,language_code)
|
frame_action = get_action_bar(root, language_code)
|
||||||
frame_action.grid(column=0, row=row_count)
|
frame_action.grid(column=0, row=row_count)
|
||||||
|
|
||||||
|
global UI_PADDING_X
|
||||||
|
PreferenctTab(tab1, config_dict, language_code, UI_PADDING_X)
|
||||||
|
AdvancedTab(tab2, config_dict, language_code, UI_PADDING_X)
|
||||||
|
AboutTab(tab3, language_code)
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
global translate
|
||||||
|
# only need to load translate once.
|
||||||
|
translate = load_translate()
|
||||||
|
|
||||||
|
global config_filepath
|
||||||
|
global config_dict
|
||||||
|
# only need to load json file once.
|
||||||
|
config_filepath, config_dict = load_json()
|
||||||
|
|
||||||
|
global root
|
||||||
|
root = Tk()
|
||||||
|
root.title(CONST_APP_VERSION)
|
||||||
|
|
||||||
global UI_PADDING_X
|
global UI_PADDING_X
|
||||||
UI_PADDING_X = 15
|
UI_PADDING_X = 15
|
||||||
|
|
||||||
GUI_SIZE_WIDTH = 460
|
load_GUI(root, config_dict)
|
||||||
GUI_SIZE_HEIGHT = 550
|
|
||||||
|
|
||||||
PreferenctTab(tab1, config_dict, language_code, UI_PADDING_X)
|
GUI_SIZE_WIDTH = 460
|
||||||
AdvancedTab(tab2, config_dict, language_code, UI_PADDING_X)
|
GUI_SIZE_HEIGHT = 575
|
||||||
AboutTab(tab3, language_code)
|
|
||||||
|
|
||||||
GUI_SIZE_MACOS = str(GUI_SIZE_WIDTH) + 'x' + str(GUI_SIZE_HEIGHT)
|
GUI_SIZE_MACOS = str(GUI_SIZE_WIDTH) + 'x' + str(GUI_SIZE_HEIGHT)
|
||||||
GUI_SIZE_WINDOWS=str(GUI_SIZE_WIDTH-60) + 'x' + str(GUI_SIZE_HEIGHT-90)
|
GUI_SIZE_WINDOWS=str(GUI_SIZE_WIDTH-60) + 'x' + str(GUI_SIZE_HEIGHT-90)
|
||||||
|
|
Loading…
Reference in New Issue