diff --git a/chrome_tixcraft.py b/chrome_tixcraft.py index 09448d6..6fa3419 100644 --- a/chrome_tixcraft.py +++ b/chrome_tixcraft.py @@ -44,7 +44,7 @@ except Exception as exc: print(exc) pass -CONST_APP_VERSION = "MaxBot (2024.03.22)" +CONST_APP_VERSION = "MaxBot (2024.03.23)" CONST_MAXBOT_ANSWER_ONLINE_FILE = "MAXBOT_ONLINE_ANSWER.txt" CONST_MAXBOT_CONFIG_FILE = "settings.json" @@ -248,7 +248,6 @@ def get_chrome_options(webdriver_path, config_dict): chrome_options.add_argument('--headless=new') chrome_options.add_argument("--user-agent=%s" % (USER_AGENT)) - chrome_options.add_argument("--password-store=basic") chrome_options.add_argument("--disable-animations") chrome_options.add_argument("--disable-background-networking") chrome_options.add_argument("--disable-backgrounding-occluded-windows") @@ -266,7 +265,7 @@ def get_chrome_options(webdriver_path, config_dict): chrome_options.add_argument("--disable-device-discovery-notifications") chrome_options.add_argument("--disable-dinosaur-easter-egg") chrome_options.add_argument("--disable-domain-reliability") - chrome_options.add_argument("--disable-features=IsolateOrigins,site-per-process,TranslateUI") + chrome_options.add_argument("--disable-features=IsolateOrigins,site-per-process,TranslateUI,PrivacySandboxSettings4") chrome_options.add_argument("--disable-infobars") chrome_options.add_argument("--disable-logging") chrome_options.add_argument("--disable-login-animations") @@ -277,20 +276,23 @@ def get_chrome_options(webdriver_path, config_dict): chrome_options.add_argument("--disable-renderer-backgrounding") chrome_options.add_argument("--disable-session-crashed-bubble") chrome_options.add_argument("--disable-smooth-scrolling") + chrome_options.add_argument("--disable-suggestions-ui") chrome_options.add_argument("--disable-sync") chrome_options.add_argument("--disable-translate") + chrome_options.add_argument("--hide-crash-restore-bubble") chrome_options.add_argument("--lang=zh-TW") chrome_options.add_argument("--no-default-browser-check") chrome_options.add_argument("--no-first-run") chrome_options.add_argument("--no-pings") chrome_options.add_argument("--no-sandbox") chrome_options.add_argument("--no-service-autorun") + chrome_options.add_argument("--password-store=basic") # for navigator.webdriver chrome_options.add_experimental_option("excludeSwitches", ['enable-automation']) # Deprecated chrome option is ignored: useAutomationExtension #chrome_options.add_experimental_option('useAutomationExtension', False) - chrome_options.add_experimental_option("prefs", {"credentials_enable_service": False, "profile.password_manager_enabled": False, "translate":{"enabled": False}}) + chrome_options.add_experimental_option("prefs", {"credentials_enable_service": False, "profile.password_manager_enabled": False, "profile.name": CONST_APP_VERSION, "translate":{"enabled": False}}) if len(config_dict["advanced"]["proxy_server_port"]) > 2: chrome_options.add_argument('--proxy-server=%s' % config_dict["advanced"]["proxy_server_port"]) @@ -414,7 +416,6 @@ def get_uc_options(uc, config_dict, webdriver_path): options.add_argument('--headless=new') options.add_argument("--user-agent=%s" % (USER_AGENT)) - options.add_argument("--password-store=basic") options.add_argument("--disable-animations") options.add_argument("--disable-background-networking") options.add_argument("--disable-backgrounding-occluded-windows") @@ -432,7 +433,7 @@ def get_uc_options(uc, config_dict, webdriver_path): options.add_argument("--disable-device-discovery-notifications") options.add_argument("--disable-dinosaur-easter-egg") options.add_argument("--disable-domain-reliability") - options.add_argument("--disable-features=IsolateOrigins,site-per-process,TranslateUI") + options.add_argument("--disable-features=IsolateOrigins,site-per-process,TranslateUI,PrivacySandboxSettings4") options.add_argument("--disable-infobars") options.add_argument("--disable-logging") options.add_argument("--disable-login-animations") @@ -443,15 +444,18 @@ def get_uc_options(uc, config_dict, webdriver_path): options.add_argument("--disable-renderer-backgrounding") options.add_argument("--disable-session-crashed-bubble") options.add_argument("--disable-smooth-scrolling") + options.add_argument("--disable-suggestions-ui") options.add_argument("--disable-sync") options.add_argument("--disable-translate") + options.add_argument("--hide-crash-restore-bubble") options.add_argument("--lang=zh-TW") options.add_argument("--no-default-browser-check") options.add_argument("--no-first-run") options.add_argument("--no-pings") options.add_argument("--no-sandbox") options.add_argument("--no-service-autorun") - options.add_experimental_option("prefs", {"credentials_enable_service": False, "profile.password_manager_enabled": False, "translate":{"enabled": False}}) + options.add_argument("--password-store=basic") + options.add_experimental_option("prefs", {"credentials_enable_service": False, "profile.password_manager_enabled": False, "profile.name": CONST_APP_VERSION, "translate":{"enabled": False}}) if len(config_dict["advanced"]["proxy_server_port"]) > 2: options.add_argument('--proxy-server=%s' % config_dict["advanced"]["proxy_server_port"]) @@ -6250,7 +6254,11 @@ def kktix_main(driver, url, config_dict, kktix_dict): print("基本資料(或實名制)網址:", url) if len(kktix_account) > 0: print("搶票成功, 帳號:", kktix_account) - threading.Thread(target=launch_maxbot, args=("", url, kktix_account, kktix_password, "false", )).start() + + script_name = "chrome_tixcraft" + if config_dict["advanced"]["webdriver_type"] == CONST_WEBDRIVER_TYPE_NODRIVER: + script_name = "nodriver_tixcraft" + threading.Thread(target=util.launch_maxbot, args=(script_name,"", url, kktix_account, kktix_password,"","false",)).start() #driver.quit() #sys.exit() @@ -10868,53 +10876,6 @@ def resize_window(driver, config_dict): driver.set_window_size(int(size_array[0]), int(size_array[1])) driver.set_window_position(position_left, 30) -def launch_maxbot(filename, homepage="", kktix_account = "", kktix_password="", headless="", script_name="chrome_tixcraft"): - cmd_argument = [] - if len(filename) > 0: - cmd_argument.append('--input=' + filename) - if len(homepage) > 0: - cmd_argument.append('--homepage=' + homepage) - if len(kktix_account) > 0: - cmd_argument.append('--kktix_account=' + kktix_account) - if len(kktix_password) > 0: - cmd_argument.append('--kktix_password=' + kktix_password) - if len(headless) > 0: - cmd_argument.append('--headless=' + headless) - - working_dir = os.path.dirname(os.path.realpath(__file__)) - if hasattr(sys, 'frozen'): - print("execute in frozen mode") - # check platform here. - cmd = './' + script_name + ' '.join(cmd_argument) - if platform.system() == 'Darwin': - print("execute MacOS python script") - if platform.system() == 'Linux': - print("execute linux binary") - if platform.system() == 'Windows': - print("execute .exe binary.") - cmd = script_name + '.exe ' + ' '.join(cmd_argument) - subprocess.Popen(cmd, shell=True, cwd=working_dir) - else: - interpreter_binary = 'python' - interpreter_binary_alt = 'python3' - if platform.system() != 'Windows': - interpreter_binary = 'python3' - interpreter_binary_alt = 'python' - print("execute in shell mode.") - - try: - print('try', interpreter_binary) - cmd_array = [interpreter_binary, script_name + '.py'] + cmd_argument - s=subprocess.Popen(cmd_array, cwd=working_dir) - except Exception as exc: - print('try', interpreter_binary_alt) - try: - cmd_array = [interpreter_binary_alt, script_name + '.py'] + cmd_argument - s=subprocess.Popen(cmd_array, cwd=working_dir) - except Exception as exc: - msg=str(exc) - print("exeption:", msg) - pass def main(args): config_dict = get_config_dict(args) diff --git a/config_launcher.py b/config_launcher.py index 179a242..650fffe 100644 --- a/config_launcher.py +++ b/config_launcher.py @@ -24,7 +24,7 @@ import webbrowser import util -CONST_APP_VERSION = "MaxBot (2024.03.22)" +CONST_APP_VERSION = "MaxBot (2024.03.23)" CONST_MAXBOT_LAUNCHER_FILE = "config_launcher.json" CONST_MAXBOT_CONFIG_FILE = "settings.json" diff --git a/kktix_signout.py b/kktix_signout.py index f72f384..506ff86 100644 --- a/kktix_signout.py +++ b/kktix_signout.py @@ -13,7 +13,7 @@ import requests import util -CONST_APP_VERSION = "MaxBot (2024.03.22)" +CONST_APP_VERSION = "MaxBot (2024.03.23)" CONST_MAXBOT_CONFIG_FILE = "settings.json" USER_AGENT = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36" diff --git a/kktix_status.py b/kktix_status.py index cd6e539..875fe63 100644 --- a/kktix_status.py +++ b/kktix_status.py @@ -29,7 +29,7 @@ from datetime import datetime import util -CONST_APP_VERSION = "MaxBot (2024.03.22)" +CONST_APP_VERSION = "MaxBot (2024.03.23)" CONST_MAXBOT_CONFIG_FILE = "settings.json" CONST_MAXBOT_KKTIX_CONFIG_FILE = "kktix.json" diff --git a/nodriver_tixcraft.py b/nodriver_tixcraft.py index b6ca935..ac0f22d 100644 --- a/nodriver_tixcraft.py +++ b/nodriver_tixcraft.py @@ -32,7 +32,7 @@ except Exception as exc: print(exc) pass -CONST_APP_VERSION = "MaxBot (2024.03.22)" +CONST_APP_VERSION = "MaxBot (2024.03.23)" CONST_MAXBOT_ANSWER_ONLINE_FILE = "MAXBOT_ONLINE_ANSWER.txt" CONST_MAXBOT_CONFIG_FILE = "settings.json" @@ -797,7 +797,12 @@ async def nodriver_kktix_main(tab, url, config_dict, kktix_dict): print("基本資料(或實名制)網址:", url) if len(kktix_account) > 0: print("搶票成功, 帳號:", kktix_account) - threading.Thread(target=launch_maxbot, args=("", url, kktix_account, kktix_password, "false", )).start() + + script_name = "chrome_tixcraft" + if config_dict["advanced"]["webdriver_type"] == CONST_WEBDRIVER_TYPE_NODRIVER: + script_name = "nodriver_tixcraft" + + threading.Thread(target=util.launch_maxbot, args=(script_name,"", url, kktix_account, kktix_password,"","false",)).start() #driver.quit() #sys.exit() @@ -829,65 +834,10 @@ async def nodriver_kktix_main(tab, url, config_dict, kktix_dict): return kktix_dict -def launch_maxbot(filename, homepage="", kktix_account = "", kktix_password="", headless="", script_name="nodriver_tixcraft"): - cmd_argument = [] - if len(filename) > 0: - cmd_argument.append('--input=' + filename) - if len(homepage) > 0: - cmd_argument.append('--homepage=' + homepage) - if len(kktix_account) > 0: - cmd_argument.append('--kktix_account=' + kktix_account) - if len(kktix_password) > 0: - cmd_argument.append('--kktix_password=' + kktix_password) - if len(headless) > 0: - cmd_argument.append('--headless=' + headless) - - working_dir = os.path.dirname(os.path.realpath(__file__)) - if hasattr(sys, 'frozen'): - print("execute in frozen mode") - # check platform here. - cmd = './' + script_name + ' '.join(cmd_argument) - if platform.system() == 'Darwin': - print("execute MacOS python script") - if platform.system() == 'Linux': - print("execute linux binary") - if platform.system() == 'Windows': - print("execute .exe binary.") - cmd = script_name + '.exe ' + ' '.join(cmd_argument) - subprocess.Popen(cmd, shell=True, cwd=working_dir) - else: - interpreter_binary = 'python' - interpreter_binary_alt = 'python3' - if platform.system() != 'Windows': - interpreter_binary = 'python3' - interpreter_binary_alt = 'python' - print("execute in shell mode.") - - try: - print('try', interpreter_binary) - cmd_array = [interpreter_binary, script_name + '.py'] + cmd_argument - s=subprocess.Popen(cmd_array, cwd=working_dir) - except Exception as exc: - print('try', interpreter_binary_alt) - try: - cmd_array = [interpreter_binary_alt, script_name + '.py'] + cmd_argument - s=subprocess.Popen(cmd_array, cwd=working_dir) - except Exception as exc: - msg=str(exc) - print("exeption:", msg) - pass def get_nodriver_browser_args(): browser_args = [ "--user-agent=%s" % (USER_AGENT), - "--remote-allow-origins=*", - "--homepage=about:blank", - "--no-first-run", - "--no-service-autorun", - "--no-default-browser-check", - "--no-pings", - "--no-sandbox" - "--password-store=basic", "--disable-2d-canvas-clip-aa", "--disable-3d-apis", "--disable-animations", @@ -920,10 +870,20 @@ def get_nodriver_browser_args(): "--disable-renderer-backgrounding", "--disable-session-crashed-bubble", "--disable-smooth-scrolling", + "--disable-suggestions-ui", "--disable-sync", "--disable-translate", - #"--disable-remote-fonts", + "--hide-crash-restore-bubble", + "--homepage=about:blank", + "--no-default-browser-check", + "--no-first-run", + "--no-pings", + "--no-sandbox" + "--no-service-autorun", + "--password-store=basic", + "--remote-allow-origins=*", "--lang=zh-TW", + #"--disable-remote-fonts", ] return browser_args @@ -1039,6 +999,33 @@ async def nodriver_current_url(tab): url = ''.join(url_array) return url +def nodriver_overwrite_prefs(conf, prefs_dict={}): + #print(conf.user_data_dir) + prefs_filepath = os.path.join(conf.user_data_dir,"Default") + if not os.path.exists(prefs_filepath): + os.mkdir(prefs_filepath) + prefs_filepath = os.path.join(prefs_filepath,"Preferences") + prefs_dict["profile"]={} + prefs_dict["profile"]["name"]=CONST_APP_VERSION + prefs_dict["profile"]["password_manager_enabled"]=False + json_str = json.dumps(prefs_dict) + with open(prefs_filepath, 'w') as outfile: + outfile.write(json_str) + + state_filepath = os.path.join(conf.user_data_dir,"Local State") + state_dict = {} + state_dict["performance_tuning"]={} + state_dict["performance_tuning"]["high_efficiency_mode"]={} + state_dict["performance_tuning"]["high_efficiency_mode"]["state"]=1 + state_dict["browser"]={} + state_dict["browser"]["enabled_labs_experiments"]=[ + "memory-saver-multi-state-mode@1", + "modal-memory-saver@1" + ] + json_str = json.dumps(state_dict) + with open(state_filepath, 'w') as outfile: + outfile.write(json_str) + async def main(args): config_dict = get_config_dict(args) @@ -1047,6 +1034,10 @@ async def main(args): if not config_dict is None: sandbox = False conf = get_extension_config(config_dict) + prefs = {"credentials_enable_service": False, + "ack_existing_ntp_extensions": False, + "translate":{"enabled": False}} + nodriver_overwrite_prefs(conf, prefs) # PS: nodrirver run twice always cause error: # Failed to connect to browser # One of the causes could be when you are running as root. @@ -1158,6 +1149,76 @@ async def main(args): kktix_dict = await nodriver_kktix_main(tab, url, config_dict, kktix_dict) pass + tixcraft_family = False + if 'tixcraft.com' in url: + tixcraft_family = True + + if 'indievox.com' in url: + tixcraft_family = True + + if 'ticketmaster.' in url: + tixcraft_family = True + + if tixcraft_family: + #tixcraft_dict = tixcraft_main(driver, url, config_dict, tixcraft_dict, ocr, Captcha_Browser) + pass + + if 'famiticket.com' in url: + #fami_dict = famiticket_main(driver, url, config_dict, fami_dict) + pass + + if 'ibon.com' in url: + #ibon_dict = ibon_main(driver, url, config_dict, ibon_dict, ocr, Captcha_Browser) + pass + + kham_family = False + if 'kham.com.tw' in url: + kham_family = True + + if 'ticket.com.tw' in url: + kham_family = True + + if 'tickets.udnfunlife.com' in url: + kham_family = True + + if kham_family: + #kham_main(driver, url, config_dict, ocr, Captcha_Browser) + pass + + if 'ticketplus.com' in url: + #ticketplus_dict = ticketplus_main(driver, url, config_dict, ocr, Captcha_Browser, ticketplus_dict) + pass + + if 'urbtix.hk' in url: + #urbtix_main(driver, url, config_dict) + pass + + if 'cityline.com' in url: + #cityline_main(driver, url, config_dict) + pass + + softix_family = False + if 'hkticketing.com' in url: + softix_family = True + if 'galaxymacau.com' in url: + softix_family = True + if 'ticketek.com' in url: + softix_family = True + if softix_family: + #hkticketing_dict = softix_powerweb_main(driver, url, config_dict, hkticketing_dict) + pass + + # for facebook + facebook_login_url = 'https://www.facebook.com/login.php?' + if url[:len(facebook_login_url)]==facebook_login_url: + facebook_account = config_dict["advanced"]["facebook_account"].strip() + facebook_password = config_dict["advanced"]["facebook_password_plaintext"].strip() + if facebook_password == "": + facebook_password = util.decryptMe(config_dict["advanced"]["facebook_password"]) + if len(facebook_account) > 4: + #facebook_login(driver, facebook_account, facebook_password) + pass + def cli(): parser = argparse.ArgumentParser( diff --git a/pip-req.txt b/pip-req.txt index 910741f..b693094 100644 --- a/pip-req.txt +++ b/pip-req.txt @@ -15,4 +15,5 @@ tornado undetected-chromedriver urllib3 #PS: nodriver need python 3.9+ -# \ No newline at end of file +# nodriver max modified version: +# python -m pip install git+https://github.com/max32002/nodriver \ No newline at end of file diff --git a/settings.py b/settings.py index 6a171af..e20d91a 100644 --- a/settings.py +++ b/settings.py @@ -41,7 +41,7 @@ try: except Exception as exc: pass -CONST_APP_VERSION = "MaxBot (2024.03.22)" +CONST_APP_VERSION = "MaxBot (2024.03.23)" CONST_MAXBOT_ANSWER_ONLINE_FILE = "MAXBOT_ONLINE_ANSWER.txt" CONST_MAXBOT_CONFIG_FILE = "settings.json" diff --git a/util.py b/util.py index b82cb06..9ee9796 100644 --- a/util.py +++ b/util.py @@ -1913,7 +1913,7 @@ def get_kktix_status_by_url(url): #print(registerStatus) return registerStatus -def launch_maxbot(script_name="chrome_tixcraft", filename="", homepage="", kktix_account = "", kktix_password="", window_size=""): +def launch_maxbot(script_name="chrome_tixcraft", filename="", homepage="", kktix_account = "", kktix_password="", window_size="", headless=""): cmd_argument = [] if len(filename) > 0: cmd_argument.append('--input=' + filename) @@ -1925,6 +1925,8 @@ def launch_maxbot(script_name="chrome_tixcraft", filename="", homepage="", kktix cmd_argument.append('--kktix_password=' + kktix_password) if len(window_size) > 0: cmd_argument.append('--window_size=' + window_size) + if len(headless) > 0: + cmd_argument.append('--headless=' + headless) working_dir = os.path.dirname(os.path.realpath(__file__)) if hasattr(sys, 'frozen'): diff --git a/webdriver/Maxblockplus_1.0.0/data/settings.json b/webdriver/Maxblockplus_1.0.0/data/settings.json index d4b2716..bd5d0b5 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_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": false, "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.25, "reset_browser_interval": 0, "max_dwell_time": 60, "proxy_server_port": "", "window_size": "480,1024,0", "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.25, "reset_browser_interval": 0, "max_dwell_time": 60, "proxy_server_port": "", "window_size": "480,1024,0", "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 45aa757..d168656 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_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": false, "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.25, "reset_browser_interval": 0, "max_dwell_time": 60, "proxy_server_port": "", "window_size": "480,1024,0", "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.25, "reset_browser_interval": 0, "max_dwell_time": 60, "proxy_server_port": "", "window_size": "480,1024,0", "idle_keyword": "", "resume_keyword": "", "idle_keyword_second": "", "resume_keyword_second": ""}} \ No newline at end of file diff --git a/webdriver/Maxbotplus_1.0.0/js/kktix_registrations_assign.js b/webdriver/Maxbotplus_1.0.0/js/kktix_registrations_assign.js index ce1fd61..e79458d 100644 --- a/webdriver/Maxbotplus_1.0.0/js/kktix_registrations_assign.js +++ b/webdriver/Maxbotplus_1.0.0/js/kktix_registrations_assign.js @@ -1,6 +1,3 @@ -$("footer").remove(); -$("div.banner-wrapper div.img-wrapper img").remove(); - var myInterval = null; //console.log("assign appear"); @@ -199,8 +196,11 @@ if(rootElement) { if(!dom_ready()) { myInterval = setInterval(() => { dom_ready(); - }, 1000); + }, 400); } + + $("footer").remove(); + $("div.banner-wrapper div.img-wrapper img").remove(); } diff --git a/webdriver/Maxbotplus_1.0.0/js/kktix_registrations_reload.js b/webdriver/Maxbotplus_1.0.0/js/kktix_registrations_reload.js index 4ffb262..c225b66 100644 --- a/webdriver/Maxbotplus_1.0.0/js/kktix_registrations_reload.js +++ b/webdriver/Maxbotplus_1.0.0/js/kktix_registrations_reload.js @@ -2,7 +2,7 @@ const storage = chrome.storage.local; var settings = null; var myInterval = null; -function kktix_clean_exclude(settings, register_info) +function kktix_clean_exclude(settings, register_info) { let exclude_keyword_array = []; if(settings) { @@ -41,7 +41,7 @@ function clean_sold_out_row(register_info, base_info) match_target = true; break; } - + } } //console.log("match_target:"+match_target); @@ -97,14 +97,18 @@ function kktix_ajax_return_register_info(register_info) rootElement.remove(); register_info=null; settings = null; - myInterval = null; + myInterval = null; + for (var key in window) { + key=null; + delete key; + } if(auto_reload_page_interval == 0) { //console.log('Start to reload now.'); - location.reload(); + window.location.reload(); } else { //console.log('We are going to reload after few seconeds.'); setTimeout(function () { - location.reload(); + window.location.reload(); }, auto_reload_page_interval * 1000); } } @@ -116,7 +120,7 @@ function kktix_ajax_return_register_info(register_info) function kktix_event_base_info(register_info) { - const currentUrl = window.location.href; + const currentUrl = window.location.href; const event_code = currentUrl.split('/')[4]; //console.log(currentUrl); //console.log(event_code); @@ -140,7 +144,7 @@ function kktix_event_base_info(register_info) function kktix_event_register_info() { - const currentUrl = window.location.href; + const currentUrl = window.location.href; const event_code = currentUrl.split('/')[4]; //console.log(currentUrl); //console.log(event_code); @@ -162,7 +166,7 @@ function kktix_event_register_info() } } -function kktix_force_auto_reload_by_timer() +function kktix_force_auto_reload_by_timer() { if(settings) { //console.log("auto reload for kktix"); @@ -173,7 +177,7 @@ function kktix_force_auto_reload_by_timer() } if(max_dwell_time <= 10) { max_dwell_time = 10; - } + } //console.log('We are going to reload after few seconeds.'); setTimeout(function () { location.reload();