From a4a16e6de01b2ab5f826c541e3cc849231e8ed17 Mon Sep 17 00:00:00 2001 From: Max Date: Wed, 15 Nov 2023 18:11:03 +0800 Subject: [PATCH] update for kktix/kham/ticket.com.tw --- chrome_tixcraft.py | 79 ++++++++++++++++++++++++++++++---------------- 1 file changed, 52 insertions(+), 27 deletions(-) diff --git a/chrome_tixcraft.py b/chrome_tixcraft.py index b863cc9..d3c8032 100644 --- a/chrome_tixcraft.py +++ b/chrome_tixcraft.py @@ -55,7 +55,7 @@ import webbrowser import chromedriver_autoinstaller -CONST_APP_VERSION = "MaxBot (2023.11.11)" +CONST_APP_VERSION = "MaxBot (2023.11.12)" CONST_MAXBOT_CONFIG_FILE = "settings.json" CONST_MAXBOT_LAST_URL_FILE = "MAXBOT_LAST_URL.txt" @@ -4458,22 +4458,30 @@ def kktix_reg_new_main(driver, config_dict, fail_list, captcha_sound_played, is_ is_need_refresh = False if len(area_keyword) > 0: - for retry_index in range(2): + area_keyword_array = [] + try: + area_keyword_array = json.loads("["+ area_keyword +"]") + except Exception as exc: area_keyword_array = [] - try: - area_keyword_array = json.loads("["+ area_keyword +"]") - except Exception as exc: - area_keyword_array = [] - for area_keyword_item in area_keyword_array: - is_ticket_number_assigned, is_need_refresh = kktix_assign_ticket_number(driver, config_dict, area_keyword_item) - if is_ticket_number_assigned: - break - else: - print("is_need_refresh for keyword:", area_keyword_item) + # default refresh + is_need_refresh_final = True + + for area_keyword_item in area_keyword_array: + is_ticket_number_assigned, is_need_refresh_tmp = kktix_assign_ticket_number(driver, config_dict, area_keyword_item) + + # one of keywords not need to refresh, final is not refresh. + if not is_need_refresh_tmp: + is_need_refresh_final = False if is_ticket_number_assigned: break + else: + if show_debug_message: + print("is_need_refresh for keyword:", area_keyword_item) + + if not is_ticket_number_assigned: + is_need_refresh = is_need_refresh_final else: # empty keyword, match all. is_ticket_number_assigned, is_need_refresh = kktix_assign_ticket_number(driver, config_dict, "") @@ -9636,6 +9644,11 @@ def hkam_date_auto_select(driver, domain_name, config_dict): if reset_row_text_if_match_keyword_exclude(config_dict, row_text): row_text = "" + if len(row_text) > 0: + if "' in row_html: + row_text = "" + if len(row_text) > 0: if " 0: + # kham. + price_disabled_html = '"lightblue"' + if 'ticket.com' in domain_name: + price_disabled_html = '' + + if " 3: + td_target = " 0: formated_area_list.append(row) else: @@ -9978,25 +10010,18 @@ def ticket_performance_ticket_number(driver, config_dict): inputed_value = "" if inputed_value == "" or inputed_value == "0": - is_visible = False try: - if form_input.is_enabled(): - is_visible = True + form_input.click() + form_input.clear() + form_input.send_keys(str(ticket_number)) + is_ticket_number_assigned = True except Exception as exc: - pass - - if is_visible: + if show_debug_message: + print(exc) try: - form_input.click() - form_input.clear() - form_input.send_keys(str(ticket_number)) - is_ticket_number_assigned = True + driver.execute_script("arguments[0].value='"+ str(ticket_number) +"';", form_input) except Exception as exc: - try: - driver.execute_script("arguments[0].value='"+ str(ticket_number) +"'';", form_input) - ret = True - except Exception as exc: - pass + pass if len(inputed_value) > 0: if not inputed_value=="0":