allow date keyword to exclude

master
Max 2023-07-14 15:25:41 +08:00 committed by GitHub
parent 6e6efbd222
commit de86ff168c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 61 additions and 14 deletions

View File

@ -53,7 +53,7 @@ import webbrowser
import argparse import argparse
import itertools import itertools
CONST_APP_VERSION = "MaxBot (2023.07.04)" CONST_APP_VERSION = "MaxBot (2023.07.05)"
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"
@ -1547,11 +1547,17 @@ def tixcraft_date_auto_select(driver, url, config_dict, domain_name):
area_list = None area_list = None
if check_game_detail: if check_game_detail:
if show_debug_message:
print("start to query #gameList info.")
my_css_selector = '#gameList > table > tbody > tr'
try: try:
area_list = driver.find_elements(By.CSS_SELECTOR, '#gameList > table > tbody > tr') area_list = driver.find_elements(By.CSS_SELECTOR, my_css_selector)
except Exception as exc: except Exception as exc:
print("find #gameList fail") print("find #gameList fail")
if show_debug_message:
print("end of query #gameList info.")
is_coming_soon = False is_coming_soon = False
coming_soon_condictions_list_tw = ['開賣','剩餘','','小時','分鐘','','0',':','/'] coming_soon_condictions_list_tw = ['開賣','剩餘','','小時','分鐘','','0',':','/']
@ -1580,6 +1586,14 @@ def tixcraft_date_auto_select(driver, url, config_dict, domain_name):
if row_text is None: if row_text is None:
row_text = "" row_text = ""
if len(row_text) > 0:
row_text = reset_row_text_if_match_keyword_exclude(config_dict, row_text)
row_is_enabled=False
if len(row_text) > 0:
row_is_enabled=True
if row_is_enabled:
row_is_enabled=False row_is_enabled=False
for text_item in find_ticket_text_list: for text_item in find_ticket_text_list:
if text_item in row_text: if text_item in row_text:
@ -1705,8 +1719,14 @@ def tixcraft_date_auto_select(driver, url, config_dict, domain_name):
is_date_clicked = False is_date_clicked = False
if target_area is not None: if target_area is not None:
if show_debug_message:
print("target_area got, start to press button.")
is_date_clicked = force_press_button(target_area, By.CSS_SELECTOR,'button') is_date_clicked = force_press_button(target_area, By.CSS_SELECTOR,'button')
if not is_date_clicked: if not is_date_clicked:
if show_debug_message:
print("target_area got, start to press hyperlink.")
# for: ticketmaster.sg # for: ticketmaster.sg
is_date_clicked = force_press_button(target_area, By.CSS_SELECTOR,'a') is_date_clicked = force_press_button(target_area, By.CSS_SELECTOR,'a')
@ -1923,7 +1943,7 @@ def ticketmaster_date_auto_select(driver, url, config_dict, domain_name):
return is_date_clicked return is_date_clicked
def reset_row_text_if_match_area_keyword_exclude(config_dict, row_text): def reset_row_text_if_match_keyword_exclude(config_dict, row_text):
# clean stop word. # clean stop word.
row_text = format_keyword_string(row_text) row_text = format_keyword_string(row_text)
@ -2009,7 +2029,7 @@ def get_tixcraft_target_area(el, config_dict, area_keyword_item):
row_text = "" row_text = ""
if len(row_text) > 0: if len(row_text) > 0:
row_text = reset_row_text_if_match_area_keyword_exclude(config_dict, row_text) row_text = reset_row_text_if_match_keyword_exclude(config_dict, row_text)
if len(row_text) > 0: if len(row_text) > 0:
# clean stop word. # clean stop word.
@ -2122,7 +2142,7 @@ def get_ticketmaster_target_area(config_dict, area_keyword_item, zone_info):
row_text = "" row_text = ""
if len(row_text) > 0: if len(row_text) > 0:
row_text = reset_row_text_if_match_area_keyword_exclude(config_dict, row_text) row_text = reset_row_text_if_match_keyword_exclude(config_dict, row_text)
if len(row_text) > 0: if len(row_text) > 0:
# clean stop word. # clean stop word.
@ -2929,7 +2949,7 @@ def get_tixcraft_ticket_select_by_keyword(driver, config_dict, area_keyword_item
row_text = "" row_text = ""
if len(row_text) > 0: if len(row_text) > 0:
row_text = reset_row_text_if_match_area_keyword_exclude(config_dict, row_text) row_text = reset_row_text_if_match_keyword_exclude(config_dict, row_text)
if len(row_text) > 0: if len(row_text) > 0:
# clean stop word. # clean stop word.
@ -3338,7 +3358,7 @@ def kktix_travel_price_list(driver, config_dict, kktix_area_keyword):
row_text = "" row_text = ""
if len(row_text) > 0: if len(row_text) > 0:
row_text = reset_row_text_if_match_area_keyword_exclude(config_dict, row_text) row_text = reset_row_text_if_match_keyword_exclude(config_dict, row_text)
if len(row_text) > 0: if len(row_text) > 0:
# clean stop word. # clean stop word.
@ -4420,7 +4440,7 @@ def get_fami_target_area(driver, config_dict, area_keyword_item):
row_text = "" row_text = ""
if len(row_text) > 0: if len(row_text) > 0:
row_text = reset_row_text_if_match_area_keyword_exclude(config_dict, row_text) row_text = reset_row_text_if_match_keyword_exclude(config_dict, row_text)
if len(row_text) > 0: if len(row_text) > 0:
# check date. # check date.
@ -4914,7 +4934,7 @@ def urbtix_area_auto_select(driver, config_dict, area_keyword_item):
row_text = "" row_text = ""
if len(row_text) > 0: if len(row_text) > 0:
row_text = reset_row_text_if_match_area_keyword_exclude(config_dict, row_text) row_text = reset_row_text_if_match_keyword_exclude(config_dict, row_text)
if row_text == "": if row_text == "":
row_is_enabled=False row_is_enabled=False
@ -5519,7 +5539,7 @@ def cityline_area_auto_select(driver, config_dict, area_keyword_item):
row_text = "" row_text = ""
if len(row_text) > 0: if len(row_text) > 0:
row_text = reset_row_text_if_match_area_keyword_exclude(config_dict, row_text) row_text = reset_row_text_if_match_keyword_exclude(config_dict, row_text)
if len(row_text) > 0: if len(row_text) > 0:
row_text = format_keyword_string(row_text) row_text = format_keyword_string(row_text)
@ -5925,6 +5945,9 @@ def ibon_date_auto_select(driver, config_dict):
if row_text is None: if row_text is None:
row_text = "" row_text = ""
if len(row_text) > 0:
row_text = reset_row_text_if_match_keyword_exclude(config_dict, row_text)
if len(row_text) > 0: if len(row_text) > 0:
row_text = format_keyword_string(row_text) row_text = format_keyword_string(row_text)
if show_debug_message: if show_debug_message:
@ -6093,7 +6116,7 @@ def ibon_area_auto_select(driver, config_dict, area_keyword_item):
row_text="" row_text=""
if len(row_text) > 0: if len(row_text) > 0:
row_text = reset_row_text_if_match_area_keyword_exclude(config_dict, row_text) row_text = reset_row_text_if_match_keyword_exclude(config_dict, row_text)
# check ticket count when amount is few, because of it spent a lot of time at parsing element. # check ticket count when amount is few, because of it spent a lot of time at parsing element.
if len(row_text) > 0: if len(row_text) > 0:
@ -6992,8 +7015,21 @@ def ticketmaster_captcha(driver, config_dict, ocr, Captcha_Browser, domain_name)
if current_url != last_url: if current_url != last_url:
break break
def tixcraft_ad_footer(driver):
ad_div = None
try:
ad_div = driver.find_element(By.ID, 'ad-footer')
driver.execute_script("arguments[0].innerHTML='';", ad_div)
except Exception as exc:
pass
try:
ad_div = driver.find_element(By.CSS_SELECTOR, 'footer.footer')
driver.execute_script("arguments[0].innerHTML='';", ad_div)
except Exception as exc:
pass
def tixcraft_main(driver, url, config_dict, tixcraft_dict, ocr, Captcha_Browser): def tixcraft_main(driver, url, config_dict, tixcraft_dict, ocr, Captcha_Browser):
tixcraft_ad_footer(driver)
tixcraft_home_close_window(driver) tixcraft_home_close_window(driver)
home_url_list = ['https://tixcraft.com/' home_url_list = ['https://tixcraft.com/'
@ -8651,7 +8687,7 @@ def hkticketing_area_auto_select(driver, config_dict, area_keyword_item):
row_text = "" row_text = ""
if len(row_text) > 0: if len(row_text) > 0:
row_text = reset_row_text_if_match_area_keyword_exclude(config_dict, row_text) row_text = reset_row_text_if_match_keyword_exclude(config_dict, row_text)
if len(row_text) > 0: if len(row_text) > 0:
row_text = format_keyword_string(row_text) row_text = format_keyword_string(row_text)
@ -9246,6 +9282,9 @@ def hkam_date_auto_select(driver, domain_name, config_dict):
if row_text is None: if row_text is None:
row_text="" row_text=""
if len(row_text) > 0:
row_text = reset_row_text_if_match_keyword_exclude(config_dict, row_text)
if '立即訂購' in row_text: if '立即訂購' in row_text:
try: try:
# for kham.com # for kham.com
@ -9474,7 +9513,7 @@ def kham_area_auto_select(driver, domain_name, config_dict, area_keyword_item):
row_text = "" row_text = ""
if len(row_text) > 0: if len(row_text) > 0:
row_text = reset_row_text_if_match_area_keyword_exclude(config_dict, row_text) row_text = reset_row_text_if_match_keyword_exclude(config_dict, row_text)
if len(row_text) == 0: if len(row_text) == 0:
row_is_enabled = False row_is_enabled = False
@ -10198,6 +10237,14 @@ def ticketplus_date_auto_select(driver, config_dict):
if row_text is None: if row_text is None:
row_text = "" row_text = ""
if len(row_text) > 0:
row_text = reset_row_text_if_match_keyword_exclude(config_dict, row_text)
row_is_enabled=False
if len(row_text) > 0:
row_is_enabled=True
if row_is_enabled:
row_is_enabled=False row_is_enabled=False
for text_item in find_ticket_text_list: for text_item in find_ticket_text_list:
if text_item in row_text: if text_item in row_text:
@ -10469,7 +10516,7 @@ def ticketplus_order_expansion_auto_select(driver, config_dict, area_keyword_ite
row_text = "" row_text = ""
if len(row_text) > 0: if len(row_text) > 0:
row_text = reset_row_text_if_match_area_keyword_exclude(config_dict, row_text) row_text = reset_row_text_if_match_keyword_exclude(config_dict, row_text)
if row_text == "": if row_text == "":
row_is_enabled=False row_is_enabled=False