update for ticket-plus, allow sign in to redirect.

master
Max 2023-12-22 09:41:42 +08:00 committed by GitHub
parent c7796f59aa
commit 09edd3b2ae
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 30 additions and 6 deletions

View File

@ -54,7 +54,7 @@ import webbrowser
import chromedriver_autoinstaller import chromedriver_autoinstaller
CONST_APP_VERSION = "MaxBot (2023.12.13)" CONST_APP_VERSION = "MaxBot (2023.12.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"
@ -92,7 +92,7 @@ CONST_WEBDRIVER_TYPE_UC = "undetected_chromedriver"
CONST_WEBDRIVER_TYPE_DP = "DrissionPage" CONST_WEBDRIVER_TYPE_DP = "DrissionPage"
CONST_AUTO_RELOAD_RANDOM_DELAY_MAX_SECOND = 4 CONST_AUTO_RELOAD_RANDOM_DELAY_MAX_SECOND = 4
CONST_CHROME_FAMILY = ["chrome","edge","brave"] CONST_CHROME_FAMILY = ["chrome","edge","brave"]
USER_AGENT = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36" USER_AGENT = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"
def t_or_f(arg): def t_or_f(arg):
ret = False ret = False
@ -926,6 +926,10 @@ def get_driver_by_config(config_dict):
if 'galaxymacau.com' in homepage: if 'galaxymacau.com' in homepage:
pass pass
if 'ticketplus.com.tw' in homepage:
if len(config_dict["advanced"]["ticketplus_account"]) > 1:
homepage = "https://ticketplus.com.tw/"
print("goto url:", homepage) print("goto url:", homepage)
driver.get(homepage) driver.get(homepage)
time.sleep(3.0) time.sleep(3.0)
@ -11040,7 +11044,9 @@ def ticketplus_assign_ticket_number(target_area, config_dict):
my_css_selector = 'div.count-button > div' my_css_selector = 'div.count-button > div'
ticket_number_div = target_area.find_element(By.CSS_SELECTOR, my_css_selector) ticket_number_div = target_area.find_element(By.CSS_SELECTOR, my_css_selector)
except Exception as exc: except Exception as exc:
print("find ticket_number_div fail") if show_debug_message:
print("find div.count-button fail")
pass
if not ticket_number_div is None: if not ticket_number_div is None:
ticket_number = config_dict["ticket_number"] ticket_number = config_dict["ticket_number"]
@ -11862,9 +11868,11 @@ def ticketplus_keyin_captcha_code(driver, answer = "", auto_submit = False):
return is_verifyCode_editing, is_form_sumbited return is_verifyCode_editing, is_form_sumbited
def ticketplus_account_auto_fill(driver, config_dict): def ticketplus_account_auto_fill(driver, config_dict):
is_user_signin = False
# auto fill account info. # auto fill account info.
if len(config_dict["advanced"]["ticketplus_account"]) > 0: if len(config_dict["advanced"]["ticketplus_account"]) > 0:
is_user_signin = False
try: try:
all_cookies=list_all_cookies(driver) all_cookies=list_all_cookies(driver)
if 'user' in all_cookies: if 'user' in all_cookies:
@ -11888,6 +11896,12 @@ def ticketplus_account_auto_fill(driver, config_dict):
except Exception as exc: except Exception as exc:
pass pass
is_account_sent, is_password_sent = ticketplus_account_sign_in(driver, config_dict)
return is_user_signin
def ticketplus_account_sign_in(driver, config_dict):
# manually keyin verify code. # manually keyin verify code.
form_account = None form_account = None
try: try:
@ -12020,6 +12034,7 @@ def ticketplus_confirm(driver, config_dict):
def ticketplus_main(driver, url, config_dict, ocr, Captcha_Browser, ticketplus_dict): def ticketplus_main(driver, url, config_dict, ocr, Captcha_Browser, ticketplus_dict):
home_url_list = ['https://ticketplus.com.tw/'] home_url_list = ['https://ticketplus.com.tw/']
is_user_signin = False
for each_url in home_url_list: for each_url in home_url_list:
if each_url == url.lower(): if each_url == url.lower():
if config_dict["ocr_captcha"]["enable"]: if config_dict["ocr_captcha"]["enable"]:
@ -12028,9 +12043,18 @@ def ticketplus_main(driver, url, config_dict, ocr, Captcha_Browser, ticketplus_d
Captcha_Browser.Set_cookies(driver.get_cookies()) Captcha_Browser.Set_cookies(driver.get_cookies())
Captcha_Browser.Set_Domain(domain_name) Captcha_Browser.Set_Domain(domain_name)
ticketplus_account_auto_fill(driver, config_dict) is_user_signin = ticketplus_account_auto_fill(driver, config_dict)
if is_user_signin:
break break
if is_user_signin:
# only sign in on homepage.
if url != config_dict["homepage"]:
try:
driver.get(config_dict["homepage"])
except Exception as e:
pass
# https://ticketplus.com.tw/activity/XXX # https://ticketplus.com.tw/activity/XXX
if '/activity/' in url.lower(): if '/activity/' in url.lower():
is_event_page = False is_event_page = False