2023-07-03, add new fill form for kham

master
Max 2023-07-13 16:21:53 +08:00 committed by GitHub
parent 9fc2a5addd
commit 85656d7899
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 27 additions and 5 deletions

View File

@ -53,7 +53,7 @@ import webbrowser
import argparse import argparse
import itertools import itertools
CONST_APP_VERSION = "MaxBot (2023.07.01)" CONST_APP_VERSION = "MaxBot (2023.07.03)"
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"
@ -9603,7 +9603,7 @@ def kham_performance_ticket_number(driver, config_dict):
return is_ticket_number_assigned return is_ticket_number_assigned
def kham_choice_auto_seat(driver): def kham_switch_to_auto_seat(driver):
is_switch_to_auto_seat = False is_switch_to_auto_seat = False
btn_switch_to_auto_seat = None btn_switch_to_auto_seat = None
@ -9653,6 +9653,7 @@ def kham_performance(driver, config_dict, ocr, Captcha_Browser, domain_name, mod
is_need_refresh = False is_need_refresh = False
auto_fill_ticket_number = True auto_fill_ticket_number = True
is_captcha_sent = False
if auto_fill_ticket_number: if auto_fill_ticket_number:
area_keyword = config_dict["area_auto_select"]["area_keyword"].strip() area_keyword = config_dict["area_auto_select"]["area_keyword"].strip()
@ -9688,7 +9689,7 @@ def kham_performance(driver, config_dict, ocr, Captcha_Browser, domain_name, mod
is_captcha_sent = kham_captcha(driver, config_dict, ocr, Captcha_Browser, model_name) is_captcha_sent = kham_captcha(driver, config_dict, ocr, Captcha_Browser, model_name)
return is_price_assign_by_bot return is_price_assign_by_bot, is_captcha_sent
def kham_keyin_captcha_code(driver, answer = "", auto_submit = False): def kham_keyin_captcha_code(driver, answer = "", auto_submit = False):
@ -9987,6 +9988,7 @@ def kham_main(driver, url, config_dict, ocr, Captcha_Browser):
if not Captcha_Browser is None: if not Captcha_Browser is None:
Captcha_Browser.Set_Domain(domain_name, captcha_url=captcha_url) Captcha_Browser.Set_Domain(domain_name, captcha_url=captcha_url)
is_captcha_sent = False
if config_dict["ocr_captcha"]["enable"]: if config_dict["ocr_captcha"]["enable"]:
is_reset_password_text = kham_check_captcha_text_error(driver, config_dict) is_reset_password_text = kham_check_captcha_text_error(driver, config_dict)
if is_reset_password_text: if is_reset_password_text:
@ -9994,8 +9996,28 @@ def kham_main(driver, url, config_dict, ocr, Captcha_Browser):
is_button_clicked = force_press_button(driver, By.CSS_SELECTOR,'div.ui-dialog-buttonset > button.ui-button') is_button_clicked = force_press_button(driver, By.CSS_SELECTOR,'div.ui-dialog-buttonset > button.ui-button')
if config_dict["area_auto_select"]["enable"]: if config_dict["area_auto_select"]["enable"]:
is_switch_to_auto_seat = kham_choice_auto_seat(driver) is_switch_to_auto_seat = kham_switch_to_auto_seat(driver)
is_price_assign_by_bot = kham_performance(driver, config_dict, ocr, Captcha_Browser, domain_name, model_name) is_price_assign_by_bot, is_captcha_sent = kham_performance(driver, config_dict, ocr, Captcha_Browser, domain_name, model_name)
# this is a special case, not performance_price_area_id, directly input ticket_nubmer in #amount.
is_ticket_number_assigned = kham_performance_ticket_number(driver, config_dict)
if show_debug_message:
print("is_ticket_number_assigned:", is_ticket_number_assigned)
print("is_captcha_sent:", is_captcha_sent)
if is_ticket_number_assigned:
if is_captcha_sent:
el_btn = None
my_css_selector = '#addcart'
try:
el_btn = driver.find_element(By.CSS_SELECTOR, my_css_selector)
if not el_btn is None:
el_btn.click()
except Exception as exc:
if show_debug_message:
print("find addcart button fail")
print(exc)
pass
#https://kham.com.tw/application/UTK02/UTK0205_.aspx?PERFORMANCE_ID=XXX&GROUP_ID=30&PERFORMANCE_PRICE_AREA_ID=XXX #https://kham.com.tw/application/UTK02/UTK0205_.aspx?PERFORMANCE_ID=XXX&GROUP_ID=30&PERFORMANCE_PRICE_AREA_ID=XXX
if '.aspx?performance_id=' in url.lower() and 'performance_price_area_id=' in url.lower(): if '.aspx?performance_id=' in url.lower() and 'performance_price_area_id=' in url.lower():