add new field and remove old fields
parent
edc52f6800
commit
29fe93ba37
|
@ -37,6 +37,8 @@ import requests
|
||||||
import warnings
|
import warnings
|
||||||
from urllib3.exceptions import InsecureRequestWarning
|
from urllib3.exceptions import InsecureRequestWarning
|
||||||
warnings.simplefilter('ignore',InsecureRequestWarning)
|
warnings.simplefilter('ignore',InsecureRequestWarning)
|
||||||
|
import ssl
|
||||||
|
ssl._create_default_https_context = ssl._create_unverified_context
|
||||||
|
|
||||||
# ocr
|
# ocr
|
||||||
import base64
|
import base64
|
||||||
|
@ -51,14 +53,12 @@ import webbrowser
|
||||||
import argparse
|
import argparse
|
||||||
import itertools
|
import itertools
|
||||||
|
|
||||||
import ssl
|
|
||||||
ssl._create_default_https_context = ssl._create_unverified_context
|
|
||||||
|
|
||||||
CONST_APP_VERSION = "MaxBot (2023.6.14)"
|
CONST_APP_VERSION = "MaxBot (2023.6.14)"
|
||||||
|
|
||||||
CONST_MAXBOT_CONFIG_FILE = "settings.json"
|
CONST_MAXBOT_CONFIG_FILE = "settings.json"
|
||||||
CONST_MAXBOT_LAST_URL_FILE = "MAXBOT_LAST_URL.txt"
|
CONST_MAXBOT_LAST_URL_FILE = "MAXBOT_LAST_URL.txt"
|
||||||
CONST_MAXBOT_INT28_FILE = "MAXBOT_INT28_IDLE.txt"
|
CONST_MAXBOT_INT28_FILE = "MAXBOT_INT28_IDLE.txt"
|
||||||
|
CONST_MAXBOT_ANSWER_ONLINE_FILE = "MAXBOT_ONLINE_ANSWER.txt"
|
||||||
|
|
||||||
CONST_HOMEPAGE_DEFAULT = "https://tixcraft.com"
|
CONST_HOMEPAGE_DEFAULT = "https://tixcraft.com"
|
||||||
URL_CHROME_DRIVER = 'https://chromedriver.chromium.org/'
|
URL_CHROME_DRIVER = 'https://chromedriver.chromium.org/'
|
||||||
|
@ -2318,25 +2318,25 @@ def tixcraft_verify(driver, config_dict, answer_index):
|
||||||
if config_dict["advanced"]["verbose"]:
|
if config_dict["advanced"]["verbose"]:
|
||||||
show_debug_message = True
|
show_debug_message = True
|
||||||
|
|
||||||
inferred_answer_string = None
|
inferred_answer_string = ""
|
||||||
answer_list = []
|
answer_list = []
|
||||||
|
|
||||||
is_retry_user_single_answer = False
|
is_retry_user_single_answer = False
|
||||||
|
|
||||||
presale_code = config_dict["tixcraft"]["presale_code"]
|
presale_code = config_dict["advanced"]["user_guess_string"]
|
||||||
presale_code_delimiter = config_dict["tixcraft"]["presale_code_delimiter"]
|
|
||||||
|
# load from internet.
|
||||||
|
if len(presale_code) == 0:
|
||||||
|
if len(config_dict["advanced"]["online_dictionary_url"]) > 0:
|
||||||
|
if os.path.exists(CONST_MAXBOT_ANSWER_ONLINE_FILE):
|
||||||
|
with open(CONST_MAXBOT_ANSWER_ONLINE_FILE, "r") as text_file:
|
||||||
|
presale_code = text_file.readline()
|
||||||
|
|
||||||
if len(presale_code) > 0:
|
if len(presale_code) > 0:
|
||||||
if len(presale_code_delimiter) > 0:
|
answer_list = json.loads("["+ presale_code +"]")
|
||||||
if presale_code_delimiter in presale_code:
|
if len(answer_list) > 0:
|
||||||
answer_list = presale_code.split(presale_code_delimiter)
|
if answer_index < len(answer_list)-1:
|
||||||
if len(answer_list) > 0:
|
inferred_answer_string = answer_list[answer_index+1]
|
||||||
if answer_index < len(answer_list)-1:
|
|
||||||
inferred_answer_string = answer_list[answer_index+1]
|
|
||||||
else:
|
|
||||||
is_retry_user_single_answer = True
|
|
||||||
if answer_index < 2:
|
|
||||||
inferred_answer_string = presale_code
|
|
||||||
|
|
||||||
if inferred_answer_string is None:
|
if inferred_answer_string is None:
|
||||||
if config_dict["advanced"]["auto_guess_options"]:
|
if config_dict["advanced"]["auto_guess_options"]:
|
||||||
|
@ -2838,17 +2838,17 @@ def kktix_captcha_text_value(captcha_inner_div):
|
||||||
|
|
||||||
return ret
|
return ret
|
||||||
|
|
||||||
def kktix_input_captcha_text(captcha_password_input_tag, inferred_answer_string, force_overwrite = False):
|
def kktix_input_captcha_text(captcha_password_input_element, inferred_answer_string, force_overwrite = False):
|
||||||
show_debug_message = True # debug.
|
show_debug_message = True # debug.
|
||||||
show_debug_message = False # online
|
show_debug_message = False # online
|
||||||
|
|
||||||
is_cpatcha_sent = False
|
is_cpatcha_sent = False
|
||||||
inputed_captcha_text = ""
|
inputed_captcha_text = ""
|
||||||
|
|
||||||
if not captcha_password_input_tag is None:
|
if not captcha_password_input_element is None:
|
||||||
if force_overwrite:
|
if force_overwrite:
|
||||||
try:
|
try:
|
||||||
captcha_password_input_tag.send_keys(inferred_answer_string)
|
captcha_password_input_element.send_keys(inferred_answer_string)
|
||||||
print("send captcha keys:" + inferred_answer_string)
|
print("send captcha keys:" + inferred_answer_string)
|
||||||
is_cpatcha_sent = True
|
is_cpatcha_sent = True
|
||||||
inputed_captcha_text = inferred_answer_string
|
inputed_captcha_text = inferred_answer_string
|
||||||
|
@ -2858,7 +2858,7 @@ def kktix_input_captcha_text(captcha_password_input_tag, inferred_answer_string,
|
||||||
# not force overwrite:
|
# not force overwrite:
|
||||||
inputed_captcha_text = None
|
inputed_captcha_text = None
|
||||||
try:
|
try:
|
||||||
inputed_captcha_text = captcha_password_input_tag.get_attribute('value')
|
inputed_captcha_text = captcha_password_input_element.get_attribute('value')
|
||||||
except Exception as exc:
|
except Exception as exc:
|
||||||
pass
|
pass
|
||||||
if inputed_captcha_text is None:
|
if inputed_captcha_text is None:
|
||||||
|
@ -2866,7 +2866,7 @@ def kktix_input_captcha_text(captcha_password_input_tag, inferred_answer_string,
|
||||||
|
|
||||||
if len(inputed_captcha_text) == 0:
|
if len(inputed_captcha_text) == 0:
|
||||||
try:
|
try:
|
||||||
captcha_password_input_tag.send_keys(inferred_answer_string)
|
captcha_password_input_element.send_keys(inferred_answer_string)
|
||||||
print("send captcha keys:" + inferred_answer_string)
|
print("send captcha keys:" + inferred_answer_string)
|
||||||
is_cpatcha_sent = True
|
is_cpatcha_sent = True
|
||||||
except Exception as exc:
|
except Exception as exc:
|
||||||
|
@ -3326,9 +3326,8 @@ if (typeof $.kkUser.checked_status_register_code === 'undefined') {
|
||||||
#print('event_code:',event_code)
|
#print('event_code:',event_code)
|
||||||
#print("url:", url)
|
#print("url:", url)
|
||||||
|
|
||||||
user_agent = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36'
|
user_agent = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36'
|
||||||
headers = {"Accept-Language": "zh-TW,zh;q=0.5", 'User-Agent': user_agent}
|
headers = {"Accept-Language": "zh-TW,zh;q=0.5", 'User-Agent': user_agent}
|
||||||
|
|
||||||
try:
|
try:
|
||||||
html_result = requests.get(url , headers=headers, timeout=0.7, allow_redirects=False)
|
html_result = requests.get(url , headers=headers, timeout=0.7, allow_redirects=False)
|
||||||
except Exception as exc:
|
except Exception as exc:
|
||||||
|
@ -3340,11 +3339,9 @@ if (typeof $.kkUser.checked_status_register_code === 'undefined') {
|
||||||
if not html_result is None:
|
if not html_result is None:
|
||||||
status_code = html_result.status_code
|
status_code = html_result.status_code
|
||||||
#print("status_code:",status_code)
|
#print("status_code:",status_code)
|
||||||
|
|
||||||
if status_code == 200:
|
if status_code == 200:
|
||||||
html_text = html_result.text
|
html_text = html_result.text
|
||||||
#print("html_text:", html_text)
|
#print("html_text:", html_text)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
jsLoads = json.loads(html_text)
|
jsLoads = json.loads(html_text)
|
||||||
if 'inventory' in jsLoads:
|
if 'inventory' in jsLoads:
|
||||||
|
@ -3802,31 +3799,44 @@ def kktix_reg_captcha(driver, config_dict, answer_index, is_finish_checkbox_clic
|
||||||
except Exception as exc:
|
except Exception as exc:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
captcha_password_input_tag = None
|
captcha_password_input_element = None
|
||||||
if not captcha_inner_div is None:
|
if not captcha_inner_div is None:
|
||||||
try:
|
try:
|
||||||
captcha_password_input_tag = captcha_inner_div.find_element(By.TAG_NAME, "input")
|
captcha_password_input_element = captcha_inner_div.find_element(By.TAG_NAME, "input")
|
||||||
if show_debug_message:
|
if show_debug_message:
|
||||||
print("found captcha input field")
|
print("found captcha input field")
|
||||||
except Exception as exc:
|
except Exception as exc:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
if not captcha_password_input_tag is None:
|
if not captcha_password_input_element is None:
|
||||||
inferred_answer_string = None
|
inferred_answer_string = ""
|
||||||
if captcha_inner_div is not None:
|
if captcha_inner_div is not None:
|
||||||
is_captcha_appear = True
|
is_captcha_appear = True
|
||||||
if show_debug_message:
|
if show_debug_message:
|
||||||
print("found captcha_inner_div layor.")
|
print("found captcha_inner_div layor.")
|
||||||
|
|
||||||
if len(config_dict["kktix"]["user_guess_string"]) > 0:
|
user_guess_string = ""
|
||||||
inferred_answer_string = config_dict["kktix"]["user_guess_string"]
|
if len(config_dict["advanced"]["user_guess_string"]) > 0:
|
||||||
else:
|
user_guess_string = config_dict["advanced"]["user_guess_string"]
|
||||||
|
if len(user_guess_string) == 0:
|
||||||
|
if len(config_dict["advanced"]["online_dictionary_url"]) > 0:
|
||||||
|
if os.path.exists(CONST_MAXBOT_ANSWER_ONLINE_FILE):
|
||||||
|
with open(CONST_MAXBOT_ANSWER_ONLINE_FILE, "r") as text_file:
|
||||||
|
user_guess_string = text_file.readline()
|
||||||
|
if len(user_guess_string) > 0:
|
||||||
|
answer_list = json.loads("["+ user_guess_string +"]")
|
||||||
|
if len(answer_list) == 1:
|
||||||
|
inferred_answer_string = answer_list[0]
|
||||||
|
|
||||||
|
if len(user_guess_string) == 0:
|
||||||
if config_dict["advanced"]["auto_guess_options"]:
|
if config_dict["advanced"]["auto_guess_options"]:
|
||||||
inferred_answer_string, answer_list = kktix_reg_new_captcha(registrationsNewApp_div, captcha_inner_div)
|
inferred_answer_string, answer_list = kktix_reg_new_captcha(registrationsNewApp_div, captcha_inner_div)
|
||||||
|
if inferred_answer_string is None:
|
||||||
|
inferred_answer_string = ""
|
||||||
|
|
||||||
if inferred_answer_string is not None:
|
if len(inferred_answer_string) > 0:
|
||||||
# password is not None, try to send.
|
# password is not None, try to send.
|
||||||
is_cpatcha_sent = kktix_input_captcha_text(captcha_password_input_tag, inferred_answer_string)
|
is_cpatcha_sent = kktix_input_captcha_text(captcha_password_input_element, inferred_answer_string)
|
||||||
if is_cpatcha_sent:
|
if is_cpatcha_sent:
|
||||||
is_captcha_appear_and_filled_password = True
|
is_captcha_appear_and_filled_password = True
|
||||||
else:
|
else:
|
||||||
|
@ -3841,7 +3851,7 @@ def kktix_reg_captcha(driver, config_dict, answer_index, is_finish_checkbox_clic
|
||||||
# password is None, focus to input, and play sound.
|
# password is None, focus to input, and play sound.
|
||||||
inputed_captcha_text = None
|
inputed_captcha_text = None
|
||||||
try:
|
try:
|
||||||
inputed_captcha_text = captcha_password_input_tag.get_attribute('value')
|
inputed_captcha_text = captcha_password_input_element.get_attribute('value')
|
||||||
except Exception as exc:
|
except Exception as exc:
|
||||||
pass
|
pass
|
||||||
if inputed_captcha_text is None:
|
if inputed_captcha_text is None:
|
||||||
|
@ -3851,8 +3861,8 @@ def kktix_reg_captcha(driver, config_dict, answer_index, is_finish_checkbox_clic
|
||||||
#print("focus() captcha to input.")
|
#print("focus() captcha to input.")
|
||||||
# only this case: "ticket number not changed by bot" to play sound!
|
# only this case: "ticket number not changed by bot" to play sound!
|
||||||
check_and_play_sound_for_captcha(config_dict)
|
check_and_play_sound_for_captcha(config_dict)
|
||||||
captcha_password_input_tag.click()
|
captcha_password_input_element.click()
|
||||||
time.sleep(1)
|
time.sleep(1.0)
|
||||||
# let user to input answer, bot sleep 1 second.
|
# let user to input answer, bot sleep 1 second.
|
||||||
except Exception as exc:
|
except Exception as exc:
|
||||||
pass
|
pass
|
||||||
|
@ -3907,7 +3917,7 @@ def kktix_reg_captcha(driver, config_dict, answer_index, is_finish_checkbox_clic
|
||||||
|
|
||||||
if len(answer_string) > 0:
|
if len(answer_string) > 0:
|
||||||
print("send answer:" + answer_string)
|
print("send answer:" + answer_string)
|
||||||
is_cpatcha_sent = kktix_input_captcha_text(captcha_password_input_tag, answer_string)
|
is_cpatcha_sent = kktix_input_captcha_text(captcha_password_input_element, answer_string)
|
||||||
if is_cpatcha_sent:
|
if is_cpatcha_sent:
|
||||||
kktix_press_next_button(driver)
|
kktix_press_next_button(driver)
|
||||||
else:
|
else:
|
||||||
|
|
Loading…
Reference in New Issue