diff --git a/chrome_tixcraft.py b/chrome_tixcraft.py index ab6d451..2b603a6 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.04.19)" +CONST_APP_VERSION = "MaxBot (2024.04.20)" CONST_MAXBOT_ANSWER_ONLINE_FILE = "MAXBOT_ONLINE_ANSWER.txt" CONST_MAXBOT_CONFIG_FILE = "settings.json" @@ -11042,6 +11042,7 @@ def cli(): def test_captcha_model(): #for test kktix answer. captcha_text_div_text = "請輸入括弧內數字( 278941 )" + captcha_text_div_text = "請將括弧內文字轉換為阿拉伯數字(一二三四五六)" answer_list = util.get_answer_list_from_question_string(None, captcha_text_div_text) print("answer_list:", answer_list) diff --git a/config_launcher.py b/config_launcher.py index ee4dd3d..7fcfa49 100644 --- a/config_launcher.py +++ b/config_launcher.py @@ -24,7 +24,7 @@ import webbrowser import util -CONST_APP_VERSION = "MaxBot (2024.04.19)" +CONST_APP_VERSION = "MaxBot (2024.04.20)" CONST_MAXBOT_LAUNCHER_FILE = "config_launcher.json" CONST_MAXBOT_CONFIG_FILE = "settings.json" diff --git a/nodriver_tixcraft.py b/nodriver_tixcraft.py index bc030ea..5451285 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.04.19)" +CONST_APP_VERSION = "MaxBot (2024.04.20)" CONST_MAXBOT_ANSWER_ONLINE_FILE = "MAXBOT_ONLINE_ANSWER.txt" CONST_MAXBOT_CONFIG_FILE = "settings.json" diff --git a/settings.json b/settings.json index b65dce5..3043a85 100644 --- a/settings.json +++ b/settings.json @@ -81,6 +81,8 @@ "user_guess_string": "", "remote_url": "\"http://127.0.0.1:16888/\"", "auto_reload_page_interval": 0.1, + "auto_reload_overheat_count": 4, + "auto_reload_overheat_cd": 1, "reset_browser_interval": 0, "proxy_server_port": "", "window_size": "480,1024", diff --git a/settings.py b/settings.py index aaf0164..931e553 100644 --- a/settings.py +++ b/settings.py @@ -39,7 +39,7 @@ try: except Exception as exc: pass -CONST_APP_VERSION = "MaxBot (2024.04.19)" +CONST_APP_VERSION = "MaxBot (2024.04.20)" CONST_MAXBOT_ANSWER_ONLINE_FILE = "MAXBOT_ONLINE_ANSWER.txt" CONST_MAXBOT_CONFIG_FILE = "settings.json" @@ -190,6 +190,8 @@ def get_default_config(): config_dict["advanced"]["remote_url"] = "\"http://127.0.0.1:%d/\"" % (CONST_SERVER_PORT) config_dict["advanced"]["auto_reload_page_interval"] = 0.1 + config_dict["advanced"]["auto_reload_overheat_count"] = 4 + config_dict["advanced"]["auto_reload_overheat_cd"] = 1.0 config_dict["advanced"]["reset_browser_interval"] = 0 config_dict["advanced"]["proxy_server_port"] = "" config_dict["advanced"]["window_size"] = "480,1024" diff --git a/settings_old.py b/settings_old.py index 05bb74e..b41bd5f 100644 --- a/settings_old.py +++ b/settings_old.py @@ -34,7 +34,7 @@ try: except Exception as exc: pass -CONST_APP_VERSION = "MaxBot (2024.04.19)" +CONST_APP_VERSION = "MaxBot (2024.04.20)" CONST_MAXBOT_ANSWER_ONLINE_FILE = "MAXBOT_ONLINE_ANSWER.txt" CONST_MAXBOT_CONFIG_FILE = "settings.json" @@ -675,6 +675,8 @@ def get_default_config(): config_dict["advanced"]["remote_url"] = "http://127.0.0.1:%d/" % (CONST_SERVER_PORT) config_dict["advanced"]["auto_reload_page_interval"] = 0.1 + config_dict["advanced"]["auto_reload_overheat_count"] = 4 + config_dict["advanced"]["auto_reload_overheat_cd"] = 1.0 config_dict["advanced"]["reset_browser_interval"] = 0 config_dict["advanced"]["proxy_server_port"] = "" config_dict["advanced"]["window_size"] = "480,1024" diff --git a/util.py b/util.py index d724725..32f6c47 100644 --- a/util.py +++ b/util.py @@ -1814,6 +1814,51 @@ def get_answer_list_from_question_string(registrationsNewApp_div, captcha_text_d inferred_answer_string = temp_answer + # 請將括弧內文字轉換為阿拉伯數字 + if inferred_answer_string is None: + formated_html_text = captcha_text_div_text.strip() + formated_html_text = format_quota_string(formated_html_text) + formated_html_text = formated_html_text.replace('請輸入','輸入') + + formated_html_text = formated_html_text.replace('的','') + formated_html_text = formated_html_text.replace('之內','內') + formated_html_text = formated_html_text.replace('之中','中') + + formated_html_text = formated_html_text.replace('括弧','括號') + formated_html_text = formated_html_text.replace('引號','括號') + + formated_html_text = formated_html_text.replace('括號中','括號內') + + formated_html_text = formated_html_text.replace('修改','轉換') + formated_html_text = formated_html_text.replace('調整','轉換') + formated_html_text = formated_html_text.replace('改變','轉換') + formated_html_text = formated_html_text.replace('改為','轉換') + formated_html_text = formated_html_text.replace('置換','轉換') + formated_html_text = formated_html_text.replace('換成','轉換') + + is_match_input_quota_text = False + if len(formated_html_text) <= 30: + print("formated_html_text:", formated_html_text) + if not '\n' in formated_html_text: + if '【' in formated_html_text and '】' in formated_html_text: + is_match_input_quota_text = True + + # check target text terms. + if is_match_input_quota_text: + target_text_list = ["轉換","數字","文字"] + for item in target_text_list: + if not item in formated_html_text: + is_match_input_quota_text = False + break + + if is_match_input_quota_text: + temp_answer = find_between(formated_html_text, "【", "】") + temp_answer = temp_answer.strip() + if len(temp_answer) > 0: + temp_answer = temp_answer.replace(' ','') + temp_answer = normalize_chinese_numeric(temp_answer) + inferred_answer_string = temp_answer + if inferred_answer_string is None: is_use_quota_message = False if "【" in captcha_text_div_text and "】" in captcha_text_div_text: diff --git a/webdriver/Maxblockplus_1.0.0/data/settings.json b/webdriver/Maxblockplus_1.0.0/data/settings.json index 1977f50..4ca0673 100644 --- a/webdriver/Maxblockplus_1.0.0/data/settings.json +++ b/webdriver/Maxblockplus_1.0.0/data/settings.json @@ -1 +1 @@ -{"homepage": "about:blank", "browser": "chrome", "language": "English", "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, "max_dwell_time": 60}, "cityline": {"cityline_queue_retry": 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.1, "reset_browser_interval": 0, "proxy_server_port": "", "window_size": "480,1024,1", "idle_keyword": "", "resume_keyword": "", "idle_keyword_second": "", "resume_keyword_second": ""}, "domain_filter": ["*.doubleclick.net/*", "*.googlesyndication.com/*", "*.ssp.hinet.net/*", "*a.amnet.tw/*", "*adx.c.appier.net/*", "*cdn.cookielaw.org/*", "*cdnjs.cloudflare.com/ajax/libs/clipboard.js/*", "*clarity.ms/*", "*cloudfront.com/*", "*cms.analytics.yahoo.com/*", "*e2elog.fetnet.net/*", "*fundingchoicesmessages.google.com/*", "*ghtinc.com/*", "*google-analytics.com/*", "*googletagmanager.com/*", "*googletagservices.com/*", "*img.uniicreative.com/*", "*lndata.com/*", "*match.adsrvr.org/*", "*onead.onevision.com.tw/*", "*play.google.com/log?*", "*popin.cc/*", "*rollbar.com/*", "*sb.scorecardresearch.com/*", "*tagtoo.co/*", "*ticketmaster.sg/js/adblock*", "*ticketmaster.sg/js/adblock.js*", "*tixcraft.com/js/analytics.js*", "*tixcraft.com/js/common.js*", "*tixcraft.com/js/custom.js*", "*treasuredata.com/*", "*www.youtube.com/youtubei/v1/player/heartbeat*"]} \ No newline at end of file +{"homepage": "about:blank", "browser": "chrome", "language": "English", "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, "max_dwell_time": 60}, "cityline": {"cityline_queue_retry": 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.1, "auto_reload_overheat_count": 4, "auto_reload_overheat_cd": 1, "reset_browser_interval": 0, "proxy_server_port": "", "window_size": "480,1024,0", "idle_keyword": "", "resume_keyword": "", "idle_keyword_second": "", "resume_keyword_second": ""}, "domain_filter": ["*.doubleclick.net/*", "*.googlesyndication.com/*", "*.ssp.hinet.net/*", "*a.amnet.tw/*", "*adx.c.appier.net/*", "*cdn.cookielaw.org/*", "*cdnjs.cloudflare.com/ajax/libs/clipboard.js/*", "*clarity.ms/*", "*cloudfront.com/*", "*cms.analytics.yahoo.com/*", "*e2elog.fetnet.net/*", "*fundingchoicesmessages.google.com/*", "*ghtinc.com/*", "*google-analytics.com/*", "*googletagmanager.com/*", "*googletagservices.com/*", "*img.uniicreative.com/*", "*lndata.com/*", "*match.adsrvr.org/*", "*onead.onevision.com.tw/*", "*play.google.com/log?*", "*popin.cc/*", "*rollbar.com/*", "*sb.scorecardresearch.com/*", "*tagtoo.co/*", "*ticketmaster.sg/js/adblock*", "*ticketmaster.sg/js/adblock.js*", "*tixcraft.com/js/analytics.js*", "*tixcraft.com/js/common.js*", "*tixcraft.com/js/custom.js*", "*treasuredata.com/*", "*www.youtube.com/youtubei/v1/player/heartbeat*"]} \ No newline at end of file diff --git a/webdriver/Maxbotplus_1.0.0/background.js b/webdriver/Maxbotplus_1.0.0/background.js index 9beabd8..c99c578 100644 --- a/webdriver/Maxbotplus_1.0.0/background.js +++ b/webdriver/Maxbotplus_1.0.0/background.js @@ -153,11 +153,19 @@ async function ocr(data_url, image_data, tabId) ); } +// for avoid overheat. +chrome.storage.local.set( +{ + last_reload_timestamp: [] +} +); + + chrome.runtime.onMessage.addListener((request, sender, sendResponse) => { let request_json = request; let result_json={"answer": "pong from background"}; if(request_json.action=="decrypt") { - console.log(typeof crypto_decrypt); + //console.log(typeof crypto_decrypt); let answer=""; if(typeof crypto_decrypt === 'function') { answer=crypto_decrypt(request_json.data.text,request_json.data.key,request_json.data.iv); diff --git a/webdriver/Maxbotplus_1.0.0/data/settings.json b/webdriver/Maxbotplus_1.0.0/data/settings.json index 52d7916..d08e58e 100644 --- a/webdriver/Maxbotplus_1.0.0/data/settings.json +++ b/webdriver/Maxbotplus_1.0.0/data/settings.json @@ -1 +1 @@ -{"homepage": "about:blank", "browser": "chrome", "language": "English", "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, "max_dwell_time": 60}, "cityline": {"cityline_queue_retry": 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.1, "reset_browser_interval": 0, "proxy_server_port": "", "window_size": "480,1024,1", "idle_keyword": "", "resume_keyword": "", "idle_keyword_second": "", "resume_keyword_second": ""}} \ No newline at end of file +{"homepage": "about:blank", "browser": "chrome", "language": "English", "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, "max_dwell_time": 60}, "cityline": {"cityline_queue_retry": 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.1, "auto_reload_overheat_count": 4, "auto_reload_overheat_cd": 1, "reset_browser_interval": 0, "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/ticket_area.js b/webdriver/Maxbotplus_1.0.0/js/ticket_area.js index 0321179..2aa80cc 100644 --- a/webdriver/Maxbotplus_1.0.0/js/ticket_area.js +++ b/webdriver/Maxbotplus_1.0.0/js/ticket_area.js @@ -2,4 +2,6 @@ $("ul.area-list > span > li:not(:has(a))").remove(); // description row. $("ul.area-list > li:not(:has(a))").remove(); -$("footer").remove(); \ No newline at end of file +$("footer").remove(); + + diff --git a/webdriver/Maxbotplus_1.0.0/js/tixcraft_area.js b/webdriver/Maxbotplus_1.0.0/js/tixcraft_area.js index 3a588d6..059c2aa 100644 --- a/webdriver/Maxbotplus_1.0.0/js/tixcraft_area.js +++ b/webdriver/Maxbotplus_1.0.0/js/tixcraft_area.js @@ -107,6 +107,48 @@ function tixcraft_area_main(settings) { } } +async function do_reload_if_not_overheat(settings) { + let auto_reload_page_interval = settings.advanced.auto_reload_page_interval; + const auto_reload_overheat_count = settings.advanced.auto_reload_overheat_count; + const auto_reload_overheat_cd = settings.advanced.auto_reload_overheat_cd; + chrome.storage.local.get('last_reload_timestamp', function(items) { + if (items.last_reload_timestamp) { + let new_timestamp = []; + const now = new Date().getTime(); + const overheat_second = 2.5; + //for (let i = items.last_reload_timestamp.length - 1; i >= 0; i--) { + for (let i = 0; i < items.last_reload_timestamp.length; i++) { + let each_time = items.last_reload_timestamp[i]; + let current_diff = now - each_time; + if (current_diff <= overheat_second * 1000) { + //last_reload_timestamp.splice(i, 1); + new_timestamp.push(each_time); + } + } + if(new_timestamp.length >= auto_reload_overheat_count) { + console.log("overheat, slow down!"); + auto_reload_page_interval = auto_reload_overheat_cd; + } + new_timestamp.push(now); + chrome.storage.local.set({ + last_reload_timestamp: new_timestamp + }); + + //const rootElement = document.documentElement; + //rootElement.remove(); + if(auto_reload_page_interval == 0) { + //console.log('Start to reload now.'); + location.reload(); + } else { + //console.log('We are going to reload after few seconeds.'); + setTimeout(function () { + location.reload(); + }, auto_reload_page_interval * 1000); + } + } + }); +} + function area_auto_reload() { let reload=false; @@ -120,20 +162,8 @@ function area_auto_reload() } if(reload) { - let auto_reload_page_interval = 0.0; if(settings) { - auto_reload_page_interval = settings.advanced.auto_reload_page_interval; - } - const rootElement = document.documentElement; - rootElement.remove(); - if(auto_reload_page_interval == 0) { - //console.log('Start to reload now.'); - location.reload(); - } else { - console.log('We are going to reload after few seconeds.'); - setTimeout(function () { - location.reload(); - }, auto_reload_page_interval * 1000); + do_reload_if_not_overheat(settings); } } } diff --git a/webdriver/Maxbotplus_1.0.0/js/tixcraft_game.js b/webdriver/Maxbotplus_1.0.0/js/tixcraft_game.js index 2bd507b..0949738 100644 --- a/webdriver/Maxbotplus_1.0.0/js/tixcraft_game.js +++ b/webdriver/Maxbotplus_1.0.0/js/tixcraft_game.js @@ -91,6 +91,48 @@ function date_main(settings) }, 200); } +async function do_reload_if_not_overheat(settings) { + let auto_reload_page_interval = settings.advanced.auto_reload_page_interval; + const auto_reload_overheat_count = settings.advanced.auto_reload_overheat_count; + const auto_reload_overheat_cd = settings.advanced.auto_reload_overheat_cd; + chrome.storage.local.get('last_reload_timestamp', function(items) { + if (items.last_reload_timestamp) { + let new_timestamp = []; + const now = new Date().getTime(); + const overheat_second = 2.5; + //for (let i = items.last_reload_timestamp.length - 1; i >= 0; i--) { + for (let i = 0; i < items.last_reload_timestamp.length; i++) { + let each_time = items.last_reload_timestamp[i]; + let current_diff = now - each_time; + if (current_diff <= overheat_second * 1000) { + //last_reload_timestamp.splice(i, 1); + new_timestamp.push(each_time); + } + } + if(new_timestamp.length >= auto_reload_overheat_count) { + console.log("overheat, slow down!"); + auto_reload_page_interval = auto_reload_overheat_cd; + } + new_timestamp.push(now); + chrome.storage.local.set({ + last_reload_timestamp: new_timestamp + }); + + //const rootElement = document.documentElement; + //rootElement.remove(); + if(auto_reload_page_interval == 0) { + //console.log('Start to reload now.'); + location.reload(); + } else { + //console.log('We are going to reload after few seconeds.'); + setTimeout(function () { + location.reload(); + }, auto_reload_page_interval * 1000); + } + } + }); +} + function date_auto_reload() { let reload=false; @@ -118,20 +160,8 @@ function date_auto_reload() } if(reload) { - let auto_reload_page_interval = 0.0; if(settings) { - auto_reload_page_interval = settings.advanced.auto_reload_page_interval; - } - const rootElement = document.documentElement; - rootElement.remove(); - if(auto_reload_page_interval == 0) { - //console.log('Start to reload now.'); - location.reload(); - } else { - console.log('We are going to reload after few seconeds.'); - setTimeout(function () { - location.reload(); - }, auto_reload_page_interval * 1000); + do_reload_if_not_overheat(settings); } } } diff --git a/webdriver/Maxbotplus_1.0.0/manifest.json b/webdriver/Maxbotplus_1.0.0/manifest.json index b2b1c1d..15cfe59 100644 --- a/webdriver/Maxbotplus_1.0.0/manifest.json +++ b/webdriver/Maxbotplus_1.0.0/manifest.json @@ -478,5 +478,5 @@ } ], - "version": "1.0.27" + "version": "1.0.28" } diff --git a/webdriver/Maxbotplus_1.0.0/options.html b/webdriver/Maxbotplus_1.0.0/options.html index 2d5fd5a..8ac9d7c 100644 --- a/webdriver/Maxbotplus_1.0.0/options.html +++ b/webdriver/Maxbotplus_1.0.0/options.html @@ -159,6 +159,25 @@ + +
+ +
+ + +
+ 提示: + 目前只有拓元的「日期頁面」與「票價頁面」有支援這個功能。 +
+
+
+ +
+ +
+ +
+
diff --git a/webdriver/Maxbotplus_1.0.0/options.js b/webdriver/Maxbotplus_1.0.0/options.js index d774064..358e5d8 100644 --- a/webdriver/Maxbotplus_1.0.0/options.js +++ b/webdriver/Maxbotplus_1.0.0/options.js @@ -8,6 +8,8 @@ const area_select_mode = document.querySelector('#area_select_mode'); const area_keyword = document.querySelector('#area_keyword'); const keyword_exclude = document.querySelector('#keyword_exclude'); const auto_reload_page_interval = document.querySelector('#auto_reload_page_interval'); +const auto_reload_overheat_count = document.querySelector('#auto_reload_overheat_count'); +const auto_reload_overheat_cd = document.querySelector('#auto_reload_overheat_cd'); const auto_press_next_step_button = document.querySelector('#auto_press_next_step_button'); const max_dwell_time = document.querySelector('#max_dwell_time'); const disable_adjacent_seat = document.querySelector('#disable_adjacent_seat'); @@ -59,9 +61,12 @@ async function saveChanges() settings.keyword_exclude = keyword_exclude.value; - settings.advanced.auto_reload_page_interval = auto_reload_page_interval.value; settings.kktix.auto_press_next_step_button = auto_press_next_step_button.checked; - settings.kktix.max_dwell_time = max_dwell_time.value; + settings.kktix.max_dwell_time = parseInt(max_dwell_time.value); + + settings.advanced.auto_reload_page_interval = Number(auto_reload_page_interval.value); + settings.advanced.auto_reload_overheat_count = Number(auto_reload_overheat_count.value); + settings.advanced.auto_reload_overheat_cd = Number(auto_reload_overheat_cd.value); settings.advanced.disable_adjacent_seat = disable_adjacent_seat.checked; settings.ocr_captcha.enable = ocr_captcha_enable.checked; @@ -112,6 +117,8 @@ function loadChanges() keyword_exclude.value = settings.keyword_exclude; auto_reload_page_interval.value = settings.advanced.auto_reload_page_interval; + auto_reload_overheat_count.value = settings.advanced.auto_reload_overheat_count; + auto_reload_overheat_cd.value = settings.advanced.auto_reload_overheat_cd; auto_press_next_step_button.checked = settings.kktix.auto_press_next_step_button; max_dwell_time.value = settings.kktix.max_dwell_time; disable_adjacent_seat.checked = settings.advanced.disable_adjacent_seat; diff --git a/www/settings.html b/www/settings.html index aae774a..98a98a0 100644 --- a/www/settings.html +++ b/www/settings.html @@ -298,6 +298,26 @@
+
+ +
+ + +
+ 提示: + 目前只有拓元的「日期頁面」與「票價頁面」有支援這個功能。 +
+
+
+ +
+ +
+ +
+
+ +
diff --git a/www/settings.js b/www/settings.js index d199071..08eecb5 100644 --- a/www/settings.js +++ b/www/settings.js @@ -29,6 +29,8 @@ const max_dwell_time = document.querySelector('#max_dwell_time'); const cityline_queue_retry = document.querySelector('#cityline_queue_retry'); const auto_reload_page_interval = document.querySelector('#auto_reload_page_interval'); +const auto_reload_overheat_count = document.querySelector('#auto_reload_overheat_count'); +const auto_reload_overheat_cd = document.querySelector('#auto_reload_overheat_cd'); const reset_browser_interval = document.querySelector('#reset_browser_interval'); const proxy_server_port = document.querySelector('#proxy_server_port'); const window_size = document.querySelector('#window_size'); @@ -121,6 +123,8 @@ function load_settins_to_form(settings) cityline_queue_retry.checked = settings.cityline.cityline_queue_retry; auto_reload_page_interval.value = settings.advanced.auto_reload_page_interval; + auto_reload_overheat_count.value = settings.advanced.auto_reload_overheat_count; + auto_reload_overheat_cd.value = settings.advanced.auto_reload_overheat_cd; reset_browser_interval.value = settings.advanced.reset_browser_interval; proxy_server_port.value = settings.advanced.proxy_server_port; window_size.value = settings.advanced.window_size; @@ -329,6 +333,9 @@ function save_changes_to_dict(silent_flag) if(date_keyword_string.indexOf('"')==-1) { date_keyword_string = '"' + date_keyword_string + '"'; } + if(date_keyword_string=='""') { + date_keyword_string=''; + } settings.date_auto_select.date_keyword = date_keyword_string; settings.area_auto_select.mode = area_select_mode.value; @@ -337,6 +344,9 @@ function save_changes_to_dict(silent_flag) if(area_keyword_string.indexOf('"')==-1) { area_keyword_string = '"' + area_keyword_string + '"'; } + if(area_keyword_string=='""') { + area_keyword_string=''; + } settings.area_auto_select.area_keyword = area_keyword_string; settings.keyword_exclude = keyword_exclude.value; @@ -354,8 +364,9 @@ function save_changes_to_dict(silent_flag) settings.cityline.cityline_queue_retry = cityline_queue_retry.checked; - settings.advanced.auto_reload_page_interval = Number(auto_reload_page_interval.value); + settings.advanced.auto_reload_overheat_count = Number(auto_reload_overheat_count.value); + settings.advanced.auto_reload_overheat_cd = Number(auto_reload_overheat_cd.value); settings.advanced.reset_browser_interval = parseInt(reset_browser_interval.value); settings.advanced.proxy_server_port = proxy_server_port.value; settings.advanced.window_size = window_size.value; @@ -385,6 +396,9 @@ function save_changes_to_dict(silent_flag) if(user_guess_string_string.indexOf('"')==-1) { user_guess_string_string = '"' + user_guess_string_string + '"'; } + if(user_guess_string_string=='""') { + user_guess_string_string=''; + } settings.advanced.user_guess_string = user_guess_string_string; // auto fill @@ -416,6 +430,8 @@ function save_changes_to_dict(silent_flag) settings.advanced.resume_keyword = resume_keyword.value; settings.advanced.idle_keyword_second = idle_keyword_second.value; settings.advanced.resume_keyword_second = resume_keyword_second.value; + + } if(!silent_flag) { message('已存檔'); @@ -524,6 +540,8 @@ function check_unsaved_fields() "user_guess_string", "remote_url", "auto_reload_page_interval", + "auto_reload_overheat_count", + "auto_reload_overheat_cd", "reset_browser_interval", "proxy_server_port", "window_size",