disalbe answer dictionary feature
parent
6cc0b5853f
commit
503e2c74f6
|
@ -36,12 +36,15 @@ logger = logging.getLogger('logger')
|
||||||
|
|
||||||
# for check reg_info
|
# for check reg_info
|
||||||
import requests
|
import requests
|
||||||
|
import warnings
|
||||||
|
from urllib3.exceptions import InsecureRequestWarning
|
||||||
|
warnings.simplefilter('ignore',InsecureRequestWarning)
|
||||||
|
|
||||||
#執行方式:python chrome_tixcraft.py 或 python3 chrome_tixcraft.py
|
#執行方式:python chrome_tixcraft.py 或 python3 chrome_tixcraft.py
|
||||||
#附註1:沒有寫的很好,很多地方應該可以模組化。
|
#附註1:沒有寫的很好,很多地方應該可以模組化。
|
||||||
#附註2:
|
#附註2:
|
||||||
|
|
||||||
CONST_APP_VERSION = u"MaxBot (2019.12.10)"
|
CONST_APP_VERSION = u"MaxBot (2019.12.17)"
|
||||||
|
|
||||||
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"
|
||||||
|
@ -130,6 +133,7 @@ if not config_dict is None:
|
||||||
kktix_area_keyword = ""
|
kktix_area_keyword = ""
|
||||||
kktix_area_keyword = kktix_area_keyword.strip()
|
kktix_area_keyword = kktix_area_keyword.strip()
|
||||||
|
|
||||||
|
# disable password brute force attack
|
||||||
if 'answer_dictionary' in config_dict["kktix"]:
|
if 'answer_dictionary' in config_dict["kktix"]:
|
||||||
kktix_answer_dictionary = config_dict["kktix"]["answer_dictionary"]
|
kktix_answer_dictionary = config_dict["kktix"]["answer_dictionary"]
|
||||||
if kktix_answer_dictionary is None:
|
if kktix_answer_dictionary is None:
|
||||||
|
@ -1390,7 +1394,7 @@ def kktix_assign_ticket_number():
|
||||||
current_ticket_number = str(ticket_price_input.get_attribute('value'))
|
current_ticket_number = str(ticket_price_input.get_attribute('value'))
|
||||||
if current_ticket_number == "0":
|
if current_ticket_number == "0":
|
||||||
try:
|
try:
|
||||||
print("asssign ticket number:%s" % str(ticket_number))
|
#print("asssign ticket number:%s" % str(ticket_number))
|
||||||
ticket_price_input.clear()
|
ticket_price_input.clear()
|
||||||
ticket_price_input.send_keys(ticket_number)
|
ticket_price_input.send_keys(ticket_number)
|
||||||
|
|
||||||
|
@ -1549,7 +1553,7 @@ def kktix_reg_new_main(url, answer_index, registrationsNewApp_div, is_finish_che
|
||||||
is_assign_ticket_number = kktix_assign_ticket_number()
|
is_assign_ticket_number = kktix_assign_ticket_number()
|
||||||
if is_assign_ticket_number:
|
if is_assign_ticket_number:
|
||||||
break
|
break
|
||||||
print('is_assign_ticket_number:', is_assign_ticket_number)
|
#print('is_assign_ticket_number:', is_assign_ticket_number)
|
||||||
|
|
||||||
#---------------------------
|
#---------------------------
|
||||||
# part 3: captcha
|
# part 3: captcha
|
||||||
|
@ -1584,6 +1588,7 @@ def kktix_reg_new_main(url, answer_index, registrationsNewApp_div, is_finish_che
|
||||||
if captcha_text_div is not None:
|
if captcha_text_div is not None:
|
||||||
is_captcha_appear = True
|
is_captcha_appear = True
|
||||||
|
|
||||||
|
captcha_text_div_text = ""
|
||||||
try:
|
try:
|
||||||
captcha_text_div_text = captcha_text_div.text
|
captcha_text_div_text = captcha_text_div.text
|
||||||
except Exception as exc:
|
except Exception as exc:
|
||||||
|
@ -1873,8 +1878,9 @@ def kktix_reg_new_main(url, answer_index, registrationsNewApp_div, is_finish_che
|
||||||
|
|
||||||
#print("captcha_password_string:", captcha_password_string)
|
#print("captcha_password_string:", captcha_password_string)
|
||||||
# ask question.
|
# ask question.
|
||||||
if captcha_password_string is None:
|
# disable password brute force attack
|
||||||
answer_list, my_answer_delimitor = get_answer_list_by_question(captcha_text_div_text)
|
#if captcha_password_string is None:
|
||||||
|
# answer_list, my_answer_delimitor = get_answer_list_by_question(captcha_text_div_text)
|
||||||
|
|
||||||
# final run.
|
# final run.
|
||||||
if captcha_password_string is not None:
|
if captcha_password_string is not None:
|
||||||
|
@ -3051,6 +3057,7 @@ def main():
|
||||||
driver.switch_to.window(driver.window_handles[0])
|
driver.switch_to.window(driver.window_handles[0])
|
||||||
except Exception as excSwithFail:
|
except Exception as excSwithFail:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
except UnexpectedAlertPresentException as exc1:
|
except UnexpectedAlertPresentException as exc1:
|
||||||
#print('UnexpectedAlertPresentException at this url:', url )
|
#print('UnexpectedAlertPresentException at this url:', url )
|
||||||
#print("last_url:", last_url)
|
#print("last_url:", last_url)
|
||||||
|
@ -3070,7 +3077,9 @@ def main():
|
||||||
except NoAlertPresentException:
|
except NoAlertPresentException:
|
||||||
pass
|
pass
|
||||||
#print('*crickets*')
|
#print('*crickets*')
|
||||||
|
|
||||||
except Exception as exc:
|
except Exception as exc:
|
||||||
|
logger.error('Exception')
|
||||||
logger.error(exc, exc_info=True)
|
logger.error(exc, exc_info=True)
|
||||||
|
|
||||||
#UnicodeEncodeError: 'ascii' codec can't encode characters in position 63-72: ordinal not in range(128)
|
#UnicodeEncodeError: 'ascii' codec can't encode characters in position 63-72: ordinal not in range(128)
|
||||||
|
|
51
settings.py
51
settings.py
|
@ -16,7 +16,7 @@ import os
|
||||||
import sys
|
import sys
|
||||||
import json
|
import json
|
||||||
|
|
||||||
CONST_APP_VERSION = u"MaxBot (2019.12.10)"
|
CONST_APP_VERSION = u"MaxBot (2019.12.17)"
|
||||||
|
|
||||||
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"
|
||||||
|
@ -72,6 +72,7 @@ def btn_save_act(slience_mode=False):
|
||||||
global chk_state_auto_press_next_step_button
|
global chk_state_auto_press_next_step_button
|
||||||
global chk_state_auto_fill_ticket_number
|
global chk_state_auto_fill_ticket_number
|
||||||
global txt_kktix_area_keyword
|
global txt_kktix_area_keyword
|
||||||
|
# disable password brute force attack
|
||||||
global txt_kktix_answer_dictionary
|
global txt_kktix_answer_dictionary
|
||||||
|
|
||||||
global chk_state_date_auto_select
|
global chk_state_date_auto_select
|
||||||
|
@ -113,7 +114,8 @@ def btn_save_act(slience_mode=False):
|
||||||
config_dict["kktix"]["auto_fill_ticket_number"] = bool(chk_state_auto_fill_ticket_number.get())
|
config_dict["kktix"]["auto_fill_ticket_number"] = bool(chk_state_auto_fill_ticket_number.get())
|
||||||
config_dict["kktix"]["area_mode"] = combo_kktix_area_mode.get().strip()
|
config_dict["kktix"]["area_mode"] = combo_kktix_area_mode.get().strip()
|
||||||
config_dict["kktix"]["area_keyword"] = txt_kktix_area_keyword.get().strip()
|
config_dict["kktix"]["area_keyword"] = txt_kktix_area_keyword.get().strip()
|
||||||
config_dict["kktix"]["answer_dictionary"] = txt_kktix_answer_dictionary.get().strip()
|
# disable password brute force attack
|
||||||
|
#config_dict["kktix"]["answer_dictionary"] = txt_kktix_answer_dictionary.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()
|
||||||
|
@ -171,10 +173,12 @@ def showHideBlocks(all_layout_visible=False):
|
||||||
|
|
||||||
# for kktix only.
|
# for kktix only.
|
||||||
global lbl_kktix_area_mode
|
global lbl_kktix_area_mode
|
||||||
global lbl_kktix_answer_dictionary
|
|
||||||
|
|
||||||
global txt_kktix_answer_dictionary
|
# disable password brute force attack
|
||||||
global txt_kktix_answer_dictionary_index
|
#global lbl_kktix_answer_dictionary
|
||||||
|
|
||||||
|
#global txt_kktix_answer_dictionary
|
||||||
|
#global txt_kktix_answer_dictionary_index
|
||||||
|
|
||||||
global combo_kktix_area_mode
|
global combo_kktix_area_mode
|
||||||
global combo_kktix_area_mode_index
|
global combo_kktix_area_mode_index
|
||||||
|
@ -200,7 +204,8 @@ def showHideBlocks(all_layout_visible=False):
|
||||||
pass
|
pass
|
||||||
else:
|
else:
|
||||||
combo_kktix_area_mode.grid_forget()
|
combo_kktix_area_mode.grid_forget()
|
||||||
txt_kktix_answer_dictionary.grid_forget()
|
# disable password brute force attack
|
||||||
|
#txt_kktix_answer_dictionary.grid_forget()
|
||||||
|
|
||||||
else:
|
else:
|
||||||
frame_group_kktix.grid_forget()
|
frame_group_kktix.grid_forget()
|
||||||
|
@ -211,23 +216,27 @@ def showHideBlocks(all_layout_visible=False):
|
||||||
|
|
||||||
if u'kktix' in new_homepage:
|
if u'kktix' in new_homepage:
|
||||||
combo_kktix_area_mode.grid(column=1, row=combo_kktix_area_mode_index, sticky = W)
|
combo_kktix_area_mode.grid(column=1, row=combo_kktix_area_mode_index, sticky = W)
|
||||||
txt_kktix_answer_dictionary.grid(column=1, row=txt_kktix_answer_dictionary_index, sticky = W)
|
# disable password brute force attack
|
||||||
|
#txt_kktix_answer_dictionary.grid(column=1, row=txt_kktix_answer_dictionary_index, sticky = W)
|
||||||
else:
|
else:
|
||||||
combo_kktix_area_mode.grid_forget()
|
combo_kktix_area_mode.grid_forget()
|
||||||
txt_kktix_answer_dictionary.grid_forget()
|
# disable password brute force attack
|
||||||
|
#txt_kktix_answer_dictionary.grid_forget()
|
||||||
|
|
||||||
else:
|
else:
|
||||||
frame_group_tixcraft.grid(column=0, row=frame_group_tixcraft_index, padx=UI_PADDING_X)
|
frame_group_tixcraft.grid(column=0, row=frame_group_tixcraft_index, padx=UI_PADDING_X)
|
||||||
frame_group_kktix.grid_forget()
|
frame_group_kktix.grid_forget()
|
||||||
|
|
||||||
lbl_kktix_area_mode_default = 'Area select order'
|
lbl_kktix_area_mode_default = 'Area select order'
|
||||||
lbl_kktix_answer_default = 'Answer Dictionary'
|
#lbl_kktix_answer_default = 'Answer Dictionary'
|
||||||
if u'kktix' in new_homepage:
|
if u'kktix' in new_homepage:
|
||||||
lbl_kktix_area_mode['text'] = lbl_kktix_area_mode_default
|
lbl_kktix_area_mode['text'] = lbl_kktix_area_mode_default
|
||||||
lbl_kktix_answer_dictionary['text'] = lbl_kktix_answer_default
|
# disable password brute force attack
|
||||||
|
#lbl_kktix_answer_dictionary['text'] = lbl_kktix_answer_default
|
||||||
else:
|
else:
|
||||||
lbl_kktix_area_mode['text'] = ''
|
lbl_kktix_area_mode['text'] = ''
|
||||||
lbl_kktix_answer_dictionary['text'] = ''
|
# disable password brute force attack
|
||||||
|
#lbl_kktix_answer_dictionary['text'] = ''
|
||||||
|
|
||||||
showHideTixcraftBlocks()
|
showHideTixcraftBlocks()
|
||||||
|
|
||||||
|
@ -322,7 +331,8 @@ def MainMenu(root):
|
||||||
|
|
||||||
kktix_area_mode = ""
|
kktix_area_mode = ""
|
||||||
kktix_area_keyword = ""
|
kktix_area_keyword = ""
|
||||||
kktix_answer_dictionary = ""
|
# disable password brute force attack
|
||||||
|
#kktix_answer_dictionary = ""
|
||||||
|
|
||||||
date_auto_select_enable = None
|
date_auto_select_enable = None
|
||||||
date_auto_select_mode = ""
|
date_auto_select_mode = ""
|
||||||
|
@ -369,6 +379,7 @@ def MainMenu(root):
|
||||||
kktix_area_keyword = ""
|
kktix_area_keyword = ""
|
||||||
kktix_area_keyword = kktix_area_keyword.strip()
|
kktix_area_keyword = kktix_area_keyword.strip()
|
||||||
|
|
||||||
|
# disable password brute force attack
|
||||||
if 'answer_dictionary' in config_dict["kktix"]:
|
if 'answer_dictionary' in config_dict["kktix"]:
|
||||||
kktix_answer_dictionary = config_dict["kktix"]["answer_dictionary"]
|
kktix_answer_dictionary = config_dict["kktix"]["answer_dictionary"]
|
||||||
if kktix_answer_dictionary is None:
|
if kktix_answer_dictionary is None:
|
||||||
|
@ -413,7 +424,8 @@ def MainMenu(root):
|
||||||
print("auto_fill_ticket_number", auto_fill_ticket_number)
|
print("auto_fill_ticket_number", auto_fill_ticket_number)
|
||||||
print("kktix_area_mode", kktix_area_mode)
|
print("kktix_area_mode", kktix_area_mode)
|
||||||
print("kktix_area_keyword", kktix_area_keyword)
|
print("kktix_area_keyword", kktix_area_keyword)
|
||||||
print("kktix_answer_dictionary", kktix_answer_dictionary)
|
# disable password brute force attack
|
||||||
|
#print("kktix_answer_dictionary", kktix_answer_dictionary)
|
||||||
|
|
||||||
# for tixcraft
|
# for tixcraft
|
||||||
print("==[tixcraft]==")
|
print("==[tixcraft]==")
|
||||||
|
@ -552,19 +564,20 @@ def MainMenu(root):
|
||||||
|
|
||||||
group_row_count+=1
|
group_row_count+=1
|
||||||
|
|
||||||
|
# disable password brute force attack
|
||||||
global lbl_kktix_answer_dictionary
|
global lbl_kktix_answer_dictionary
|
||||||
lbl_kktix_answer_dictionary = Label(frame_group_kktix, text="Answer Dictionary")
|
#lbl_kktix_answer_dictionary = Label(frame_group_kktix, text="Answer Dictionary")
|
||||||
lbl_kktix_answer_dictionary.grid(column=0, row=group_row_count, sticky = E)
|
#lbl_kktix_answer_dictionary.grid(column=0, row=group_row_count, sticky = E)
|
||||||
|
|
||||||
global txt_kktix_answer_dictionary
|
global txt_kktix_answer_dictionary
|
||||||
global txt_kktix_answer_dictionary_index
|
global txt_kktix_answer_dictionary_index
|
||||||
txt_kktix_answer_dictionary_index = group_row_count
|
txt_kktix_answer_dictionary_index = group_row_count
|
||||||
global txt_kktix_answer_dictionary_value
|
global txt_kktix_answer_dictionary_value
|
||||||
txt_kktix_answer_dictionary_value = StringVar(frame_group_kktix, value=kktix_answer_dictionary)
|
#txt_kktix_answer_dictionary_value = StringVar(frame_group_kktix, value=kktix_answer_dictionary)
|
||||||
txt_kktix_answer_dictionary = Entry(frame_group_kktix, width=20, textvariable = txt_kktix_answer_dictionary_value)
|
#txt_kktix_answer_dictionary = Entry(frame_group_kktix, width=20, textvariable = txt_kktix_answer_dictionary_value)
|
||||||
txt_kktix_answer_dictionary.grid(column=1, row=group_row_count, sticky = W)
|
#txt_kktix_answer_dictionary.grid(column=1, row=group_row_count, sticky = W)
|
||||||
|
|
||||||
group_row_count+=1
|
#group_row_count+=1
|
||||||
|
|
||||||
lbl_hr = Label(frame_group_kktix, text="")
|
lbl_hr = Label(frame_group_kktix, text="")
|
||||||
lbl_hr.grid(column=0, row=group_row_count)
|
lbl_hr.grid(column=0, row=group_row_count)
|
||||||
|
|
Loading…
Reference in New Issue