From a5e240bdb793d184e5d922a875f8db1a06f07953 Mon Sep 17 00:00:00 2001 From: Your Name Date: Tue, 12 Mar 2024 18:24:11 +0800 Subject: [PATCH] 2024-03-01, update for cityline,kktix --- chrome_tixcraft.py | 84 +++++++------ config_launcher.py | 2 +- settings.json | 5 +- settings.py | 115 +++++++++++------- .../Maxblockplus_1.0.0/data/settings.json | 2 +- webdriver/Maxbotplus_1.0.0/data/settings.json | 2 +- 6 files changed, 125 insertions(+), 85 deletions(-) diff --git a/chrome_tixcraft.py b/chrome_tixcraft.py index aeaea34..25f28a9 100644 --- a/chrome_tixcraft.py +++ b/chrome_tixcraft.py @@ -41,7 +41,7 @@ try: except Exception as exc: pass -CONST_APP_VERSION = "MaxBot (2024.02.07)" +CONST_APP_VERSION = "MaxBot (2024.03.01)" CONST_MAXBOT_ANSWER_ONLINE_FILE = "MAXBOT_ONLINE_ANSWER.txt" CONST_MAXBOT_CONFIG_FILE = "settings.json" @@ -988,8 +988,8 @@ def get_driver_by_config(config_dict): ,'*google-analytics.*' ,'*googletagmanager.*' ,'*googletagservices.*' + ,'*googlesyndication.*' ,'*play.google.com/*' - ,'*.googlesyndication.com/*' ,'*cdn.cookielaw.org/*' ,'*fundingchoicesmessages.google.com/*' ,'*.doubleclick.net/*' @@ -4631,7 +4631,7 @@ def get_kktix_question_text(driver): question_text = kktix_reg_captcha_question_text(captcha_inner_div) return question_text -def kktix_reg_captcha(driver, config_dict, fail_list, captcha_sound_played, is_finish_checkbox_click, registrationsNewApp_div): +def kktix_reg_captcha(driver, config_dict, fail_list, is_finish_checkbox_click, registrationsNewApp_div): show_debug_message = True # debug. show_debug_message = False # online @@ -4646,15 +4646,6 @@ def kktix_reg_captcha(driver, config_dict, fail_list, captcha_sound_played, is_f is_question_popup = True write_question_to_file(question_text) - if len(fail_list)==0: - # only play sound once. - if not captcha_sound_played: - captcha_sound_played = True - try: - play_sound_while_ordering(config_dict) - except Exception as exc: - pass - answer_list = get_answer_list_from_user_guess_string(config_dict) if len(answer_list)==0: if config_dict["advanced"]["auto_guess_options"]: @@ -4678,9 +4669,9 @@ def kktix_reg_captcha(driver, config_dict, fail_list, captcha_sound_played, is_f check_input_interval = 0.2 is_answer_sent, fail_list = fill_common_verify_form(driver, config_dict, inferred_answer_string, fail_list, input_text_css, next_step_button_css, submit_by_enter, check_input_interval) - return fail_list, captcha_sound_played, is_question_popup + return fail_list, is_question_popup -def kktix_reg_new_main(driver, config_dict, fail_list, captcha_sound_played, is_finish_checkbox_click): +def kktix_reg_new_main(driver, config_dict, fail_list, played_sound_ticket, is_finish_checkbox_click): show_debug_message = True # debug. show_debug_message = False # online @@ -4740,7 +4731,12 @@ def kktix_reg_new_main(driver, config_dict, fail_list, captcha_sound_played, is_ if is_dom_ready: # part 3: captcha if is_ticket_number_assigned: - fail_list, captcha_sound_played, is_question_popup = kktix_reg_captcha(driver, config_dict, fail_list, captcha_sound_played, is_finish_checkbox_click, registrationsNewApp_div) + if config_dict["advanced"]["play_sound"]["ticket"]: + if not played_sound_ticket: + play_sound_while_ordering(config_dict) + played_sound_ticket = True + + fail_list, is_question_popup = kktix_reg_captcha(driver, config_dict, fail_list, is_finish_checkbox_click, registrationsNewApp_div) if not is_question_popup: # no captcha text popup, goto next page. control_text = get_kktix_control_label_text(driver) @@ -4754,6 +4750,9 @@ def kktix_reg_new_main(driver, config_dict, fail_list, captcha_sound_played, is_ pass else: if is_need_refresh: + # reset to play sound when ticket avaiable. + played_sound_ticket = False + try: print("no match any price, start to refresh page...") driver.refresh() @@ -4764,7 +4763,7 @@ def kktix_reg_new_main(driver, config_dict, fail_list, captcha_sound_played, is_ if config_dict["advanced"]["auto_reload_page_interval"] > 0: time.sleep(config_dict["advanced"]["auto_reload_page_interval"]) - return fail_list, captcha_sound_played + return fail_list, played_sound_ticket def kktix_get_registerStatus(driver, event_code): html_result = None @@ -7441,10 +7440,9 @@ def hkticketing_login(driver, account, password): return ret def play_sound_while_ordering(config_dict): - if config_dict["advanced"]["play_captcha_sound"]["enable"]: - app_root = get_app_root() - captcha_sound_filename = os.path.join(app_root, config_dict["advanced"]["play_captcha_sound"]["filename"].strip()) - play_mp3_async(captcha_sound_filename) + app_root = get_app_root() + captcha_sound_filename = os.path.join(app_root, config_dict["advanced"]["play_sound"]["filename"].strip()) + play_mp3_async(captcha_sound_filename) def play_mp3_async(sound_filename): import threading @@ -7822,12 +7820,12 @@ def tixcraft_main(driver, url, config_dict, tixcraft_dict, ocr, Captcha_Browser) tixcraft_ticket_main(driver, config_dict, ocr, Captcha_Browser, domain_name) tixcraft_dict["done_time"] = time.time() - if not tixcraft_dict["played_sound"]: - play_sound_while_ordering(config_dict) - - tixcraft_dict["played_sound"] = True + if config_dict["advanced"]["play_sound"]["ticket"]: + if not tixcraft_dict["played_sound_ticket"]: + play_sound_while_ordering(config_dict) + tixcraft_dict["played_sound_ticket"] = True else: - tixcraft_dict["played_sound"] = False + tixcraft_dict["played_sound_ticket"] = False if '/ticket/order' in url: tixcraft_dict["done_time"] = time.time() @@ -7849,8 +7847,14 @@ def tixcraft_main(driver, url, config_dict, tixcraft_dict, ocr, Captcha_Browser) tixcraft_dict["is_popup_checkout"] = True driver.quit() sys.exit() + + if config_dict["advanced"]["play_sound"]["order"]: + if not tixcraft_dict["played_sound_order"]: + play_sound_while_ordering(config_dict) + tixcraft_dict["played_sound_order"] = True else: tixcraft_dict["is_popup_checkout"] = False + tixcraft_dict["played_sound_order"] = False return tixcraft_dict @@ -7911,11 +7915,11 @@ def kktix_main(driver, url, config_dict, kktix_dict): if not is_dom_ready: # reset answer fail list. kktix_dict["fail_list"] = [] - kktix_dict["captcha_sound_played"] = False + kktix_dict["played_sound_ticket"] = False else: # check is able to buy. if config_dict["kktix"]["auto_fill_ticket_number"]: - kktix_dict["fail_list"], kktix_dict["captcha_sound_played"] = kktix_reg_new_main(driver, config_dict, kktix_dict["fail_list"], kktix_dict["captcha_sound_played"], is_finish_checkbox_click) + kktix_dict["fail_list"], kktix_dict["played_sound_ticket"] = kktix_reg_new_main(driver, config_dict, kktix_dict["fail_list"], kktix_dict["played_sound_ticket"], is_finish_checkbox_click) kktix_dict["done_time"] = time.time() else: is_event_page = False @@ -7932,7 +7936,7 @@ def kktix_main(driver, url, config_dict, kktix_dict): # reset answer fail list. kktix_dict["fail_list"] = [] - kktix_dict["captcha_sound_played"] = False + kktix_dict["played_sound_ticket"] = False if '/events/' in url and '/registrations/' in url and "-" in url: if not '/registrations/new' in url: @@ -7942,6 +7946,12 @@ def kktix_main(driver, url, config_dict, kktix_dict): if kktix_dict["elapsed_time"] != bot_elapsed_time: print("bot elapsed time:", "{:.3f}".format(bot_elapsed_time)) kktix_dict["elapsed_time"] = bot_elapsed_time + + if config_dict["advanced"]["play_sound"]["order"]: + if not kktix_dict["played_sound_order"]: + play_sound_while_ordering(config_dict) + kktix_dict["played_sound_order"] = True + if config_dict["advanced"]["headless"]: if not kktix_dict["is_popup_checkout"]: @@ -7960,6 +7970,7 @@ def kktix_main(driver, url, config_dict, kktix_dict): sys.exit() else: kktix_dict["is_popup_checkout"] = False + kktix_dict["played_sound_order"] = False return kktix_dict @@ -8476,11 +8487,14 @@ def cityline_main(driver, url, config_dict): try: window_handles_count = len(driver.window_handles) if window_handles_count > 1: - driver.switch_to.window(driver.window_handles[0]) - driver.close() - driver.switch_to.window(driver.window_handles[0]) - time.sleep(0.2) - except Exception as excSwithFail: + driver.switch_to.window(driver.window_handles[-1]) + page_title = driver.title + if len(page_title) > 0: + driver.switch_to.window(driver.window_handles[0]) + if not(".cityline.com/" in page_title and "https://" in page_title): + driver.close() + driver.switch_to.window(driver.window_handles[-1]) + except Exception as exc: pass if '.cityline.com/Events.html' in url: @@ -12526,16 +12540,16 @@ def main(args): tixcraft_dict["elapsed_time"]=None tixcraft_dict["is_popup_checkout"] = False tixcraft_dict["area_retry_count"]=0 - tixcraft_dict["played_sound"] = False # for kktix kktix_dict = {} kktix_dict["fail_list"]=[] - kktix_dict["captcha_sound_played"] = False kktix_dict["start_time"]=None kktix_dict["done_time"]=None kktix_dict["elapsed_time"]=None kktix_dict["is_popup_checkout"] = False + kktix_dict["played_sound_ticket"] = False + kktix_dict["played_sound_order"] = False fami_dict = {} fami_dict["fail_list"] = [] diff --git a/config_launcher.py b/config_launcher.py index b1cc47d..37fe1cf 100644 --- a/config_launcher.py +++ b/config_launcher.py @@ -22,7 +22,7 @@ import sys import threading import webbrowser -CONST_APP_VERSION = "MaxBot (2024.02.07)" +CONST_APP_VERSION = "MaxBot (2024.03.01)" CONST_MAXBOT_LAUNCHER_FILE = "config_launcher.json" CONST_MAXBOT_CONFIG_FILE = "settings.json" diff --git a/settings.json b/settings.json index bbaa6be..bc210f5 100644 --- a/settings.json +++ b/settings.json @@ -30,8 +30,9 @@ "auto_reload_coming_soon_page": true }, "advanced": { - "play_captcha_sound": { - "enable": true, + "play_sound": { + "ticket": true, + "order": true, "filename": "ding-dong.wav" }, "tixcraft_sid": "", diff --git a/settings.py b/settings.py index c8ecb1c..10e224a 100644 --- a/settings.py +++ b/settings.py @@ -48,7 +48,7 @@ try: except Exception as exc: pass -CONST_APP_VERSION = "MaxBot (2024.02.07)" +CONST_APP_VERSION = "MaxBot (2024.03.01)" CONST_MAXBOT_ANSWER_ONLINE_FILE = "MAXBOT_ONLINE_ANSWER.txt" CONST_MAXBOT_CONFIG_FILE = "settings.json" @@ -218,8 +218,9 @@ def load_translate(): en_us["ticketplus_password"] = 'TicketPlus password' en_us["save_password_alert"] = 'Saving passwords to config file may expose your passwords.' - en_us["play_captcha_sound"] = 'Play sound while ordering' - en_us["captcha_sound_filename"] = 'sound filename' + en_us["play_ticket_sound"] = 'Play sound when ticketing' + en_us["play_order_sound"] = 'Play sound when ordering' + en_us["play_sound_filename"] = 'sound filename' en_us["chrome_extension"] = "Chrome Browser Extension" en_us["disable_adjacent_seat"] = "Disable Adjacent Seat" @@ -333,8 +334,9 @@ def load_translate(): zh_tw["ticketplus_password"] = '遠大 密碼' zh_tw["save_password_alert"] = '將密碼保存到設定檔中可能會讓您的密碼被盜。' - zh_tw["play_captcha_sound"] = '訂購時播放音效' - zh_tw["captcha_sound_filename"] = '音效檔' + zh_tw["play_ticket_sound"] = '有票時播放音效' + zh_tw["play_order_sound"] = '訂購時播放音效' + zh_tw["play_sound_filename"] = '音效檔' zh_tw["chrome_extension"] = "Chrome 瀏覽器擴充功能" zh_tw["disable_adjacent_seat"] = "允許不連續座位" @@ -450,8 +452,9 @@ def load_translate(): zh_cn["ticketplus_password"] = '远大 密码' zh_cn["save_password_alert"] = '将密码保存到文件中可能会暴露您的密码。' - zh_cn["play_captcha_sound"] = '订购时播放音效' - zh_cn["captcha_sound_filename"] = '音效档' + zh_cn["play_ticket_sound"] = '有票时播放音效' + zh_cn["play_order_sound"] = '订购时播放音效' + zh_cn["play_sound_filename"] = '音效档' zh_cn["chrome_extension"] = "Chrome 浏览器扩展程序" zh_cn["disable_adjacent_seat"] = "允许不连续座位" @@ -566,8 +569,9 @@ def load_translate(): ja_jp["ticketplus_password"] = '遠大のパスワード' ja_jp["save_password_alert"] = 'パスワードをファイルに保存すると、パスワードが公開される可能性があります。' - ja_jp["play_captcha_sound"] = '注文時に音を鳴らす' - ja_jp["captcha_sound_filename"] = 'サウンドファイル' + ja_jp["play_ticket_sound"] = '有票時に音を鳴らす' + ja_jp["play_order_sound"] = '注文時に音を鳴らす' + ja_jp["play_sound_filename"] = 'サウンドファイル' ja_jp["chrome_extension"] = "Chrome ブラウザ拡張機能" ja_jp["disable_adjacent_seat"] = "連続しない座席も可" @@ -693,9 +697,10 @@ def get_default_config(): config_dict['advanced']={} - config_dict['advanced']['play_captcha_sound']={} - config_dict["advanced"]["play_captcha_sound"]["enable"] = True - config_dict["advanced"]["play_captcha_sound"]["filename"] = CONST_CAPTCHA_SOUND_FILENAME_DEFAULT + config_dict['advanced']['play_sound']={} + config_dict["advanced"]["play_sound"]["ticket"] = True + config_dict["advanced"]["play_sound"]["order"] = True + config_dict["advanced"]["play_sound"]["filename"] = CONST_CAPTCHA_SOUND_FILENAME_DEFAULT config_dict["advanced"]["tixcraft_sid"] = "" config_dict["advanced"]["ibonqware"] = "" @@ -872,8 +877,9 @@ def btn_save_act(language_code, slience_mode=False): global txt_udn_password global txt_ticketplus_password - global chk_state_play_captcha_sound - global txt_captcha_sound_filename + global chk_state_play_ticket_sound + global chk_state_play_order_sound + global txt_play_sound_filename global chk_state_ocr_captcha global chk_state_ocr_captcha_ddddocr_beta global chk_state_ocr_captcha_force_submit @@ -1064,8 +1070,9 @@ def btn_save_act(language_code, slience_mode=False): config_dict["area_auto_select"]["enable"] = bool(chk_state_area_auto_select.get()) config_dict["area_auto_select"]["mode"] = combo_area_auto_select_mode.get().strip() - config_dict["advanced"]["play_captcha_sound"]["enable"] = bool(chk_state_play_captcha_sound.get()) - config_dict["advanced"]["play_captcha_sound"]["filename"] = txt_captcha_sound_filename.get().strip() + config_dict["advanced"]["play_sound"]["ticket"] = bool(chk_state_play_ticket_sound.get()) + config_dict["advanced"]["play_sound"]["order"] = bool(chk_state_play_order_sound.get()) + config_dict["advanced"]["play_sound"]["filename"] = txt_play_sound_filename.get().strip() config_dict["advanced"]["tixcraft_sid"] = txt_tixcraft_sid.get().strip() config_dict["advanced"]["ibonqware"] = txt_ibon_ibonqware.get().strip() @@ -1301,8 +1308,8 @@ def btn_open_text_server_clicked(): tabControl.select(tab4) def btn_preview_sound_clicked(): - global txt_captcha_sound_filename - new_sound_filename = txt_captcha_sound_filename.get().strip() + global txt_play_sound_filename + new_sound_filename = txt_play_sound_filename.get().strip() #print("new_sound_filename:", new_sound_filename) app_root = get_app_root() new_sound_filename = os.path.join(app_root, new_sound_filename) @@ -1407,7 +1414,8 @@ def applyNewLanguage(): global chk_area_auto_select global chk_pass_date_is_sold_out global chk_auto_reload_coming_soon_page - global chk_play_captcha_sound + global chk_play_ticket_sound + global chk_play_order_sound global chk_ocr_captcha global chk_ocr_captcha_ddddocr_beta global chk_ocr_captcha_force_submit @@ -1506,7 +1514,8 @@ def applyNewLanguage(): chk_area_auto_select.config(text=translate[language_code]["enable"]) chk_pass_date_is_sold_out.config(text=translate[language_code]["enable"]) chk_auto_reload_coming_soon_page.config(text=translate[language_code]["enable"]) - chk_play_captcha_sound.config(text=translate[language_code]["enable"]) + chk_play_ticket_sound.config(text=translate[language_code]["enable"]) + chk_play_order_sound.config(text=translate[language_code]["enable"]) chk_ocr_captcha.config(text=translate[language_code]["enable"]) chk_ocr_captcha_ddddocr_beta.config(text=translate[language_code]["enable"]) chk_ocr_captcha_force_submit.config(text=translate[language_code]["enable"]) @@ -1554,8 +1563,9 @@ def applyNewLanguage(): global lbl_save_password_alert - global lbl_play_captcha_sound - global lbl_captcha_sound_filename + global lbl_play_ticket_sound + global lbl_play_order_sound + global lbl_play_sound_filename lbl_tixcraft_sid.config(text=translate[language_code]["tixcraft_sid"]) lbl_ibon_ibonqware.config(text=translate[language_code]["ibon_ibonqware"]) @@ -1582,8 +1592,9 @@ def applyNewLanguage(): lbl_save_password_alert.config(text=translate[language_code]["save_password_alert"]) - lbl_play_captcha_sound.config(text=translate[language_code]["play_captcha_sound"]) - lbl_captcha_sound_filename.config(text=translate[language_code]["captcha_sound_filename"]) + lbl_play_ticket_sound.config(text=translate[language_code]["play_ticket_sound"]) + lbl_play_order_sound.config(text=translate[language_code]["play_order_sound"]) + lbl_play_sound_filename.config(text=translate[language_code]["play_sound_filename"]) lbl_slogan.config(text=translate[language_code]["maxbot_slogan"]) lbl_help.config(text=translate[language_code]["help"]) @@ -2009,11 +2020,11 @@ def AdvancedTab(root, config_dict, language_code, UI_PADDING_X): group_row_count = 0 # assign default value. - captcha_sound_filename = config_dict["advanced"]["play_captcha_sound"]["filename"].strip() - if captcha_sound_filename is None: - captcha_sound_filename = "" - if len(captcha_sound_filename)==0: - captcha_sound_filename = captcha_sound_filename_default + play_sound_filename = config_dict["advanced"]["play_sound"]["filename"].strip() + if play_sound_filename is None: + play_sound_filename = "" + if len(play_sound_filename)==0: + play_sound_filename = play_sound_filename_default global lbl_browser lbl_browser = Label(frame_group_header, text=translate[language_code]['browser']) @@ -2064,28 +2075,42 @@ def AdvancedTab(root, config_dict, language_code, UI_PADDING_X): group_row_count +=1 - global lbl_play_captcha_sound - lbl_play_captcha_sound = Label(frame_group_header, text=translate[language_code]['play_captcha_sound']) - lbl_play_captcha_sound.grid(column=0, row=group_row_count, sticky = E) + global lbl_play_ticket_sound + lbl_play_ticket_sound = Label(frame_group_header, text=translate[language_code]['play_ticket_sound']) + lbl_play_ticket_sound.grid(column=0, row=group_row_count, sticky = E) - global chk_state_play_captcha_sound - chk_state_play_captcha_sound = BooleanVar() - chk_state_play_captcha_sound.set(config_dict["advanced"]["play_captcha_sound"]["enable"]) + global chk_state_play_ticket_sound + chk_state_play_ticket_sound = BooleanVar() + chk_state_play_ticket_sound.set(config_dict["advanced"]["play_sound"]["ticket"]) - global chk_play_captcha_sound - chk_play_captcha_sound = Checkbutton(frame_group_header, text=translate[language_code]['enable'], variable=chk_state_play_captcha_sound) - chk_play_captcha_sound.grid(column=1, row=group_row_count, sticky = W) + global chk_play_ticket_sound + chk_play_ticket_sound = Checkbutton(frame_group_header, text=translate[language_code]['enable'], variable=chk_state_play_ticket_sound) + chk_play_ticket_sound.grid(column=1, row=group_row_count, sticky = W) group_row_count +=1 - global lbl_captcha_sound_filename - lbl_captcha_sound_filename = Label(frame_group_header, text=translate[language_code]['captcha_sound_filename']) - lbl_captcha_sound_filename.grid(column=0, row=group_row_count, sticky = E) + global lbl_play_order_sound + lbl_play_order_sound = Label(frame_group_header, text=translate[language_code]['play_order_sound']) + lbl_play_order_sound.grid(column=0, row=group_row_count, sticky = E) - global txt_captcha_sound_filename - txt_captcha_sound_filename_value = StringVar(frame_group_header, value=captcha_sound_filename) - txt_captcha_sound_filename = Entry(frame_group_header, width=30, textvariable = txt_captcha_sound_filename_value) - txt_captcha_sound_filename.grid(column=1, row=group_row_count, sticky = W) + global chk_state_play_order_sound + chk_state_play_order_sound = BooleanVar() + chk_state_play_order_sound.set(config_dict["advanced"]["play_sound"]["order"]) + + global chk_play_order_sound + chk_play_order_sound = Checkbutton(frame_group_header, text=translate[language_code]['enable'], variable=chk_state_play_order_sound) + chk_play_order_sound.grid(column=1, row=group_row_count, sticky = W) + + group_row_count +=1 + + global lbl_play_sound_filename + lbl_play_sound_filename = Label(frame_group_header, text=translate[language_code]['play_sound_filename']) + lbl_play_sound_filename.grid(column=0, row=group_row_count, sticky = E) + + global txt_play_sound_filename + txt_play_sound_filename_value = StringVar(frame_group_header, value=play_sound_filename) + txt_play_sound_filename = Entry(frame_group_header, width=30, textvariable = txt_play_sound_filename_value) + txt_play_sound_filename.grid(column=1, row=group_row_count, sticky = W) icon_play_filename = "icon_play_1.gif" icon_play_img = PhotoImage(file=icon_play_filename) diff --git a/webdriver/Maxblockplus_1.0.0/data/settings.json b/webdriver/Maxblockplus_1.0.0/data/settings.json index ecb49a5..5b9fdda 100644 --- a/webdriver/Maxblockplus_1.0.0/data/settings.json +++ b/webdriver/Maxblockplus_1.0.0/data/settings.json @@ -1 +1 @@ -{"homepage": "https://tixcraft.com", "browser": "chrome", "language": "\u7e41\u9ad4\u4e2d\u6587", "ticket_number": 2, "ocr_captcha": {"enable": true, "beta": true, "force_submit": true, "image_source": "canvas"}, "webdriver_type": "undetected_chromedriver", "date_auto_select": {"enable": true, "date_keyword": "", "mode": "random"}, "area_auto_select": {"enable": true, "mode": "random", "area_keyword": ""}, "keyword_exclude": "\"\u8f2a\u6905\",\"\u8eab\u969c\",\"\u8eab\u5fc3 \u969c\u7919\",\"Restricted View\",\"\u71c8\u67f1\u906e\u853d\",\"\u8996\u7dda\u4e0d\u5b8c\u6574\"", "kktix": {"auto_press_next_step_button": true, "auto_fill_ticket_number": true}, "tixcraft": {"pass_date_is_sold_out": true, "auto_reload_coming_soon_page": true}, "advanced": {"play_captcha_sound": {"enable": true, "filename": "ding-dong.wav"}, "tixcraft_sid": "", "ibonqware": "", "facebook_account": "", "kktix_account": "", "fami_account": "", "cityline_account": "", "urbtix_account": "", "hkticketing_account": "", "kham_account": "", "ticket_account": "", "udn_account": "", "ticketplus_account": "", "facebook_password": "", "kktix_password": "", "fami_password": "", "urbtix_password": "", "cityline_password": "", "hkticketing_password": "", "kham_password": "", "ticket_password": "", "udn_password": "", "ticketplus_password": "", "facebook_password_plaintext": "", "kktix_password_plaintext": "", "fami_password_plaintext": "", "urbtix_password_plaintext": "", "cityline_password_plaintext": "", "hkticketing_password_plaintext": "", "kham_password_plaintext": "", "ticket_password_plaintext": "", "udn_password_plaintext": "", "ticketplus_password_plaintext": "", "chrome_extension": true, "disable_adjacent_seat": false, "hide_some_image": true, "block_facebook_network": false, "headless": false, "verbose": false, "auto_guess_options": true, "user_guess_string": "", "remote_url": "\"http://127.0.0.1:16888/\"", "auto_reload_page_interval": 0.1, "reset_browser_interval": 0.0, "proxy_server_port": "", "idle_keyword": "", "resume_keyword": "", "idle_keyword_second": "", "resume_keyword_second": ""}, "domain_filter": ["*google-analytics.com/*", "*googletagmanager.com/*", "*googletagservices.com/*", "*lndata.com/*", "*a.amnet.tw/*", "*adx.c.appier.net/*", "*clarity.ms/*", "*cloudfront.com/*", "*cms.analytics.yahoo.com/*", "*doubleclick.net/*", "*e2elog.fetnet.net/*", "*fundingchoicesmessages.google.com/*", "*ghtinc.com/*", "*match.adsrvr.org/*", "*onead.onevision.com.tw/*", "*popin.cc/*", "*rollbar.com/*", "*sb.scorecardresearch.com/*", "*tagtoo.co/*", "*.ssp.hinet.net/*", "*ticketmaster.sg/js/adblock*", "*.googlesyndication.com/*", "*treasuredata.com/*", "*play.google.com/log?*", "*www.youtube.com/youtubei/v1/player/heartbeat*", "*tixcraft.com/js/analytics.js*", "*ticketmaster.sg/js/adblock.js*", "*img.uniicreative.com/*", "*cdn.cookielaw.org/*", "*tixcraft.com/js/custom.js*", "*tixcraft.com/js/common.js*", "*cdnjs.cloudflare.com/ajax/libs/clipboard.js/*"]} \ No newline at end of file +{"homepage": "https://tixcraft.com", "browser": "chrome", "language": "\u7e41\u9ad4\u4e2d\u6587", "ticket_number": 2, "ocr_captcha": {"enable": true, "beta": true, "force_submit": true, "image_source": "canvas"}, "webdriver_type": "undetected_chromedriver", "date_auto_select": {"enable": true, "date_keyword": "", "mode": "random"}, "area_auto_select": {"enable": true, "mode": "random", "area_keyword": ""}, "keyword_exclude": "\"\u8f2a\u6905\",\"\u8eab\u969c\",\"\u8eab\u5fc3 \u969c\u7919\",\"Restricted View\",\"\u71c8\u67f1\u906e\u853d\",\"\u8996\u7dda\u4e0d\u5b8c\u6574\"", "kktix": {"auto_press_next_step_button": true, "auto_fill_ticket_number": true}, "tixcraft": {"pass_date_is_sold_out": true, "auto_reload_coming_soon_page": true}, "advanced": {"play_sound": {"ticket": true, "order": true, "filename": "ding-dong.wav"}, "tixcraft_sid": "", "ibonqware": "", "facebook_account": "", "kktix_account": "", "fami_account": "", "cityline_account": "", "urbtix_account": "", "hkticketing_account": "", "kham_account": "", "ticket_account": "", "udn_account": "", "ticketplus_account": "", "facebook_password": "", "kktix_password": "", "fami_password": "", "urbtix_password": "", "cityline_password": "", "hkticketing_password": "", "kham_password": "", "ticket_password": "", "udn_password": "", "ticketplus_password": "", "facebook_password_plaintext": "", "kktix_password_plaintext": "", "fami_password_plaintext": "", "urbtix_password_plaintext": "", "cityline_password_plaintext": "", "hkticketing_password_plaintext": "", "kham_password_plaintext": "", "ticket_password_plaintext": "", "udn_password_plaintext": "", "ticketplus_password_plaintext": "", "chrome_extension": true, "disable_adjacent_seat": false, "hide_some_image": true, "block_facebook_network": false, "headless": false, "verbose": false, "auto_guess_options": true, "user_guess_string": "", "remote_url": "\"http://127.0.0.1:16888/\"", "auto_reload_page_interval": 0.1, "reset_browser_interval": 0.0, "proxy_server_port": "", "idle_keyword": "", "resume_keyword": "", "idle_keyword_second": "", "resume_keyword_second": ""}, "domain_filter": ["*google-analytics.com/*", "*googletagmanager.com/*", "*googletagservices.com/*", "*lndata.com/*", "*a.amnet.tw/*", "*adx.c.appier.net/*", "*clarity.ms/*", "*cloudfront.com/*", "*cms.analytics.yahoo.com/*", "*doubleclick.net/*", "*e2elog.fetnet.net/*", "*fundingchoicesmessages.google.com/*", "*ghtinc.com/*", "*match.adsrvr.org/*", "*onead.onevision.com.tw/*", "*popin.cc/*", "*rollbar.com/*", "*sb.scorecardresearch.com/*", "*tagtoo.co/*", "*.ssp.hinet.net/*", "*ticketmaster.sg/js/adblock*", "*.googlesyndication.com/*", "*treasuredata.com/*", "*play.google.com/log?*", "*www.youtube.com/youtubei/v1/player/heartbeat*", "*tixcraft.com/js/analytics.js*", "*ticketmaster.sg/js/adblock.js*", "*img.uniicreative.com/*", "*cdn.cookielaw.org/*", "*tixcraft.com/js/custom.js*", "*tixcraft.com/js/common.js*", "*cdnjs.cloudflare.com/ajax/libs/clipboard.js/*"]} \ No newline at end of file diff --git a/webdriver/Maxbotplus_1.0.0/data/settings.json b/webdriver/Maxbotplus_1.0.0/data/settings.json index 8073524..21b1bf2 100644 --- a/webdriver/Maxbotplus_1.0.0/data/settings.json +++ b/webdriver/Maxbotplus_1.0.0/data/settings.json @@ -1 +1 @@ -{"homepage": "https://tixcraft.com", "browser": "chrome", "language": "\u7e41\u9ad4\u4e2d\u6587", "ticket_number": 2, "ocr_captcha": {"enable": true, "beta": true, "force_submit": true, "image_source": "canvas"}, "webdriver_type": "undetected_chromedriver", "date_auto_select": {"enable": true, "date_keyword": "", "mode": "random"}, "area_auto_select": {"enable": true, "mode": "random", "area_keyword": ""}, "keyword_exclude": "\"\u8f2a\u6905\",\"\u8eab\u969c\",\"\u8eab\u5fc3 \u969c\u7919\",\"Restricted View\",\"\u71c8\u67f1\u906e\u853d\",\"\u8996\u7dda\u4e0d\u5b8c\u6574\"", "kktix": {"auto_press_next_step_button": true, "auto_fill_ticket_number": true}, "tixcraft": {"pass_date_is_sold_out": true, "auto_reload_coming_soon_page": true}, "advanced": {"play_captcha_sound": {"enable": true, "filename": "ding-dong.wav"}, "tixcraft_sid": "", "ibonqware": "", "facebook_account": "", "kktix_account": "", "fami_account": "", "cityline_account": "", "urbtix_account": "", "hkticketing_account": "", "kham_account": "", "ticket_account": "", "udn_account": "", "ticketplus_account": "", "facebook_password": "", "kktix_password": "", "fami_password": "", "urbtix_password": "", "cityline_password": "", "hkticketing_password": "", "kham_password": "", "ticket_password": "", "udn_password": "", "ticketplus_password": "", "facebook_password_plaintext": "", "kktix_password_plaintext": "", "fami_password_plaintext": "", "urbtix_password_plaintext": "", "cityline_password_plaintext": "", "hkticketing_password_plaintext": "", "kham_password_plaintext": "", "ticket_password_plaintext": "", "udn_password_plaintext": "", "ticketplus_password_plaintext": "", "chrome_extension": true, "disable_adjacent_seat": false, "hide_some_image": true, "block_facebook_network": false, "headless": false, "verbose": false, "auto_guess_options": true, "user_guess_string": "", "remote_url": "\"http://127.0.0.1:16888/\"", "auto_reload_page_interval": 0.1, "reset_browser_interval": 0.0, "proxy_server_port": "", "idle_keyword": "", "resume_keyword": "", "idle_keyword_second": "", "resume_keyword_second": ""}} \ No newline at end of file +{"homepage": "https://tixcraft.com", "browser": "chrome", "language": "\u7e41\u9ad4\u4e2d\u6587", "ticket_number": 2, "ocr_captcha": {"enable": true, "beta": true, "force_submit": true, "image_source": "canvas"}, "webdriver_type": "undetected_chromedriver", "date_auto_select": {"enable": true, "date_keyword": "", "mode": "random"}, "area_auto_select": {"enable": true, "mode": "random", "area_keyword": ""}, "keyword_exclude": "\"\u8f2a\u6905\",\"\u8eab\u969c\",\"\u8eab\u5fc3 \u969c\u7919\",\"Restricted View\",\"\u71c8\u67f1\u906e\u853d\",\"\u8996\u7dda\u4e0d\u5b8c\u6574\"", "kktix": {"auto_press_next_step_button": true, "auto_fill_ticket_number": true}, "tixcraft": {"pass_date_is_sold_out": true, "auto_reload_coming_soon_page": true}, "advanced": {"play_sound": {"ticket": true, "order": true, "filename": "ding-dong.wav"}, "tixcraft_sid": "", "ibonqware": "", "facebook_account": "", "kktix_account": "", "fami_account": "", "cityline_account": "", "urbtix_account": "", "hkticketing_account": "", "kham_account": "", "ticket_account": "", "udn_account": "", "ticketplus_account": "", "facebook_password": "", "kktix_password": "", "fami_password": "", "urbtix_password": "", "cityline_password": "", "hkticketing_password": "", "kham_password": "", "ticket_password": "", "udn_password": "", "ticketplus_password": "", "facebook_password_plaintext": "", "kktix_password_plaintext": "", "fami_password_plaintext": "", "urbtix_password_plaintext": "", "cityline_password_plaintext": "", "hkticketing_password_plaintext": "", "kham_password_plaintext": "", "ticket_password_plaintext": "", "udn_password_plaintext": "", "ticketplus_password_plaintext": "", "chrome_extension": true, "disable_adjacent_seat": false, "hide_some_image": true, "block_facebook_network": false, "headless": false, "verbose": false, "auto_guess_options": true, "user_guess_string": "", "remote_url": "\"http://127.0.0.1:16888/\"", "auto_reload_page_interval": 0.1, "reset_browser_interval": 0.0, "proxy_server_port": "", "idle_keyword": "", "resume_keyword": "", "idle_keyword_second": "", "resume_keyword_second": ""}} \ No newline at end of file