2024-04-20, update for kktix bus question
parent
ccbc811dbd
commit
6ab0fd75d7
|
@ -44,7 +44,7 @@ except Exception as exc:
|
||||||
print(exc)
|
print(exc)
|
||||||
pass
|
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_ANSWER_ONLINE_FILE = "MAXBOT_ONLINE_ANSWER.txt"
|
||||||
CONST_MAXBOT_CONFIG_FILE = "settings.json"
|
CONST_MAXBOT_CONFIG_FILE = "settings.json"
|
||||||
|
@ -11042,6 +11042,7 @@ def cli():
|
||||||
def test_captcha_model():
|
def test_captcha_model():
|
||||||
#for test kktix answer.
|
#for test kktix answer.
|
||||||
captcha_text_div_text = "請輸入括弧內數字( 278941 )"
|
captcha_text_div_text = "請輸入括弧內數字( 278941 )"
|
||||||
|
captcha_text_div_text = "請將括弧內文字轉換為阿拉伯數字(一二三四五六)"
|
||||||
answer_list = util.get_answer_list_from_question_string(None, captcha_text_div_text)
|
answer_list = util.get_answer_list_from_question_string(None, captcha_text_div_text)
|
||||||
print("answer_list:", answer_list)
|
print("answer_list:", answer_list)
|
||||||
|
|
||||||
|
|
|
@ -24,7 +24,7 @@ import webbrowser
|
||||||
|
|
||||||
import util
|
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_LAUNCHER_FILE = "config_launcher.json"
|
||||||
CONST_MAXBOT_CONFIG_FILE = "settings.json"
|
CONST_MAXBOT_CONFIG_FILE = "settings.json"
|
||||||
|
|
|
@ -32,7 +32,7 @@ except Exception as exc:
|
||||||
print(exc)
|
print(exc)
|
||||||
pass
|
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_ANSWER_ONLINE_FILE = "MAXBOT_ONLINE_ANSWER.txt"
|
||||||
CONST_MAXBOT_CONFIG_FILE = "settings.json"
|
CONST_MAXBOT_CONFIG_FILE = "settings.json"
|
||||||
|
|
|
@ -81,6 +81,8 @@
|
||||||
"user_guess_string": "",
|
"user_guess_string": "",
|
||||||
"remote_url": "\"http://127.0.0.1:16888/\"",
|
"remote_url": "\"http://127.0.0.1:16888/\"",
|
||||||
"auto_reload_page_interval": 0.1,
|
"auto_reload_page_interval": 0.1,
|
||||||
|
"auto_reload_overheat_count": 4,
|
||||||
|
"auto_reload_overheat_cd": 1,
|
||||||
"reset_browser_interval": 0,
|
"reset_browser_interval": 0,
|
||||||
"proxy_server_port": "",
|
"proxy_server_port": "",
|
||||||
"window_size": "480,1024",
|
"window_size": "480,1024",
|
||||||
|
|
|
@ -39,7 +39,7 @@ try:
|
||||||
except Exception as exc:
|
except Exception as exc:
|
||||||
pass
|
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_ANSWER_ONLINE_FILE = "MAXBOT_ONLINE_ANSWER.txt"
|
||||||
CONST_MAXBOT_CONFIG_FILE = "settings.json"
|
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"]["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_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"]["reset_browser_interval"] = 0
|
||||||
config_dict["advanced"]["proxy_server_port"] = ""
|
config_dict["advanced"]["proxy_server_port"] = ""
|
||||||
config_dict["advanced"]["window_size"] = "480,1024"
|
config_dict["advanced"]["window_size"] = "480,1024"
|
||||||
|
|
|
@ -34,7 +34,7 @@ try:
|
||||||
except Exception as exc:
|
except Exception as exc:
|
||||||
pass
|
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_ANSWER_ONLINE_FILE = "MAXBOT_ONLINE_ANSWER.txt"
|
||||||
CONST_MAXBOT_CONFIG_FILE = "settings.json"
|
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"]["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_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"]["reset_browser_interval"] = 0
|
||||||
config_dict["advanced"]["proxy_server_port"] = ""
|
config_dict["advanced"]["proxy_server_port"] = ""
|
||||||
config_dict["advanced"]["window_size"] = "480,1024"
|
config_dict["advanced"]["window_size"] = "480,1024"
|
||||||
|
|
45
util.py
45
util.py
|
@ -1814,6 +1814,51 @@ def get_answer_list_from_question_string(registrationsNewApp_div, captcha_text_d
|
||||||
|
|
||||||
inferred_answer_string = temp_answer
|
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:
|
if inferred_answer_string is None:
|
||||||
is_use_quota_message = False
|
is_use_quota_message = False
|
||||||
if "【" in captcha_text_div_text and "】" in captcha_text_div_text:
|
if "【" in captcha_text_div_text and "】" in captcha_text_div_text:
|
||||||
|
|
|
@ -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*"]}
|
{"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*"]}
|
|
@ -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) => {
|
chrome.runtime.onMessage.addListener((request, sender, sendResponse) => {
|
||||||
let request_json = request;
|
let request_json = request;
|
||||||
let result_json={"answer": "pong from background"};
|
let result_json={"answer": "pong from background"};
|
||||||
if(request_json.action=="decrypt") {
|
if(request_json.action=="decrypt") {
|
||||||
console.log(typeof crypto_decrypt);
|
//console.log(typeof crypto_decrypt);
|
||||||
let answer="";
|
let answer="";
|
||||||
if(typeof crypto_decrypt === 'function') {
|
if(typeof crypto_decrypt === 'function') {
|
||||||
answer=crypto_decrypt(request_json.data.text,request_json.data.key,request_json.data.iv);
|
answer=crypto_decrypt(request_json.data.text,request_json.data.key,request_json.data.iv);
|
||||||
|
|
|
@ -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": ""}}
|
{"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": ""}}
|
|
@ -2,4 +2,6 @@
|
||||||
$("ul.area-list > span > li:not(:has(a))").remove();
|
$("ul.area-list > span > li:not(:has(a))").remove();
|
||||||
// description row.
|
// description row.
|
||||||
$("ul.area-list > li:not(:has(a))").remove();
|
$("ul.area-list > li:not(:has(a))").remove();
|
||||||
$("footer").remove();
|
$("footer").remove();
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -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()
|
function area_auto_reload()
|
||||||
{
|
{
|
||||||
let reload=false;
|
let reload=false;
|
||||||
|
@ -120,20 +162,8 @@ function area_auto_reload()
|
||||||
}
|
}
|
||||||
|
|
||||||
if(reload) {
|
if(reload) {
|
||||||
let auto_reload_page_interval = 0.0;
|
|
||||||
if(settings) {
|
if(settings) {
|
||||||
auto_reload_page_interval = settings.advanced.auto_reload_page_interval;
|
do_reload_if_not_overheat(settings);
|
||||||
}
|
|
||||||
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);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -91,6 +91,48 @@ function date_main(settings)
|
||||||
}, 200);
|
}, 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()
|
function date_auto_reload()
|
||||||
{
|
{
|
||||||
let reload=false;
|
let reload=false;
|
||||||
|
@ -118,20 +160,8 @@ function date_auto_reload()
|
||||||
}
|
}
|
||||||
|
|
||||||
if(reload) {
|
if(reload) {
|
||||||
let auto_reload_page_interval = 0.0;
|
|
||||||
if(settings) {
|
if(settings) {
|
||||||
auto_reload_page_interval = settings.advanced.auto_reload_page_interval;
|
do_reload_if_not_overheat(settings);
|
||||||
}
|
|
||||||
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);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -478,5 +478,5 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
],
|
],
|
||||||
"version": "1.0.27"
|
"version": "1.0.28"
|
||||||
}
|
}
|
||||||
|
|
|
@ -159,6 +159,25 @@
|
||||||
<input class="form-control" id="auto_reload_page_interval" value="" />
|
<input class="form-control" id="auto_reload_page_interval" value="" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="row mb-3">
|
||||||
|
<label for="auto_reload_overheat_count" class="col-sm-2 col-form-label">每2.5秒最多可以刷新次數</label>
|
||||||
|
<div class="col-sm-10">
|
||||||
|
<input class="form-control" id="auto_reload_overheat_count" value="" />
|
||||||
|
|
||||||
|
<div class="bd-callout bd-callout-info">
|
||||||
|
<strong>提示:</strong>
|
||||||
|
目前只有拓元的「日期頁面」與「票價頁面」有支援這個功能。
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row mb-3">
|
||||||
|
<label for="auto_reload_overheat_cd" class="col-sm-2 col-form-label">達成最多刷新次數的冷確時間(秒)</label>
|
||||||
|
<div class="col-sm-10">
|
||||||
|
<input class="form-control" id="auto_reload_overheat_cd" value="" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="row mb-3">
|
<div class="row mb-3">
|
||||||
<label class="col-sm-2 col-form-label form-check-label" for="auto_press_next_step_button">KKTIX點選下一步按鈕</label>
|
<label class="col-sm-2 col-form-label form-check-label" for="auto_press_next_step_button">KKTIX點選下一步按鈕</label>
|
||||||
|
|
|
@ -8,6 +8,8 @@ const area_select_mode = document.querySelector('#area_select_mode');
|
||||||
const area_keyword = document.querySelector('#area_keyword');
|
const area_keyword = document.querySelector('#area_keyword');
|
||||||
const keyword_exclude = document.querySelector('#keyword_exclude');
|
const keyword_exclude = document.querySelector('#keyword_exclude');
|
||||||
const auto_reload_page_interval = document.querySelector('#auto_reload_page_interval');
|
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 auto_press_next_step_button = document.querySelector('#auto_press_next_step_button');
|
||||||
const max_dwell_time = document.querySelector('#max_dwell_time');
|
const max_dwell_time = document.querySelector('#max_dwell_time');
|
||||||
const disable_adjacent_seat = document.querySelector('#disable_adjacent_seat');
|
const disable_adjacent_seat = document.querySelector('#disable_adjacent_seat');
|
||||||
|
@ -59,9 +61,12 @@ async function saveChanges()
|
||||||
|
|
||||||
settings.keyword_exclude = keyword_exclude.value;
|
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.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.advanced.disable_adjacent_seat = disable_adjacent_seat.checked;
|
||||||
settings.ocr_captcha.enable = ocr_captcha_enable.checked;
|
settings.ocr_captcha.enable = ocr_captcha_enable.checked;
|
||||||
|
|
||||||
|
@ -112,6 +117,8 @@ function loadChanges()
|
||||||
|
|
||||||
keyword_exclude.value = settings.keyword_exclude;
|
keyword_exclude.value = settings.keyword_exclude;
|
||||||
auto_reload_page_interval.value = settings.advanced.auto_reload_page_interval;
|
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;
|
auto_press_next_step_button.checked = settings.kktix.auto_press_next_step_button;
|
||||||
max_dwell_time.value = settings.kktix.max_dwell_time;
|
max_dwell_time.value = settings.kktix.max_dwell_time;
|
||||||
disable_adjacent_seat.checked = settings.advanced.disable_adjacent_seat;
|
disable_adjacent_seat.checked = settings.advanced.disable_adjacent_seat;
|
||||||
|
|
|
@ -298,6 +298,26 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="row mb-3">
|
||||||
|
<label for="auto_reload_overheat_count" class="col-sm-2 col-form-label">每2.5秒最多可以刷新次數</label>
|
||||||
|
<div class="col-sm-10">
|
||||||
|
<input class="form-control" id="auto_reload_overheat_count" value="" />
|
||||||
|
|
||||||
|
<div class="bd-callout bd-callout-info">
|
||||||
|
<strong>提示:</strong>
|
||||||
|
目前只有拓元的「日期頁面」與「票價頁面」有支援這個功能。
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row mb-3">
|
||||||
|
<label for="auto_reload_overheat_cd" class="col-sm-2 col-form-label">達成最多刷新次數的冷確時間(秒)</label>
|
||||||
|
<div class="col-sm-10">
|
||||||
|
<input class="form-control" id="auto_reload_overheat_cd" value="" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div class="row mb-3">
|
<div class="row mb-3">
|
||||||
<label for="reset_browser_interval" class="col-sm-2 col-form-label">重新啟動瀏覽器間隔(秒)</label>
|
<label for="reset_browser_interval" class="col-sm-2 col-form-label">重新啟動瀏覽器間隔(秒)</label>
|
||||||
<div class="col-sm-10">
|
<div class="col-sm-10">
|
||||||
|
|
|
@ -29,6 +29,8 @@ const max_dwell_time = document.querySelector('#max_dwell_time');
|
||||||
const cityline_queue_retry = document.querySelector('#cityline_queue_retry');
|
const cityline_queue_retry = document.querySelector('#cityline_queue_retry');
|
||||||
|
|
||||||
const auto_reload_page_interval = document.querySelector('#auto_reload_page_interval');
|
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 reset_browser_interval = document.querySelector('#reset_browser_interval');
|
||||||
const proxy_server_port = document.querySelector('#proxy_server_port');
|
const proxy_server_port = document.querySelector('#proxy_server_port');
|
||||||
const window_size = document.querySelector('#window_size');
|
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;
|
cityline_queue_retry.checked = settings.cityline.cityline_queue_retry;
|
||||||
|
|
||||||
auto_reload_page_interval.value = settings.advanced.auto_reload_page_interval;
|
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;
|
reset_browser_interval.value = settings.advanced.reset_browser_interval;
|
||||||
proxy_server_port.value = settings.advanced.proxy_server_port;
|
proxy_server_port.value = settings.advanced.proxy_server_port;
|
||||||
window_size.value = settings.advanced.window_size;
|
window_size.value = settings.advanced.window_size;
|
||||||
|
@ -329,6 +333,9 @@ function save_changes_to_dict(silent_flag)
|
||||||
if(date_keyword_string.indexOf('"')==-1) {
|
if(date_keyword_string.indexOf('"')==-1) {
|
||||||
date_keyword_string = '"' + date_keyword_string + '"';
|
date_keyword_string = '"' + date_keyword_string + '"';
|
||||||
}
|
}
|
||||||
|
if(date_keyword_string=='""') {
|
||||||
|
date_keyword_string='';
|
||||||
|
}
|
||||||
settings.date_auto_select.date_keyword = date_keyword_string;
|
settings.date_auto_select.date_keyword = date_keyword_string;
|
||||||
|
|
||||||
settings.area_auto_select.mode = area_select_mode.value;
|
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) {
|
if(area_keyword_string.indexOf('"')==-1) {
|
||||||
area_keyword_string = '"' + area_keyword_string + '"';
|
area_keyword_string = '"' + area_keyword_string + '"';
|
||||||
}
|
}
|
||||||
|
if(area_keyword_string=='""') {
|
||||||
|
area_keyword_string='';
|
||||||
|
}
|
||||||
settings.area_auto_select.area_keyword = area_keyword_string;
|
settings.area_auto_select.area_keyword = area_keyword_string;
|
||||||
|
|
||||||
settings.keyword_exclude = keyword_exclude.value;
|
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.cityline.cityline_queue_retry = cityline_queue_retry.checked;
|
||||||
|
|
||||||
|
|
||||||
settings.advanced.auto_reload_page_interval = Number(auto_reload_page_interval.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.reset_browser_interval = parseInt(reset_browser_interval.value);
|
settings.advanced.reset_browser_interval = parseInt(reset_browser_interval.value);
|
||||||
settings.advanced.proxy_server_port = proxy_server_port.value;
|
settings.advanced.proxy_server_port = proxy_server_port.value;
|
||||||
settings.advanced.window_size = window_size.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) {
|
if(user_guess_string_string.indexOf('"')==-1) {
|
||||||
user_guess_string_string = '"' + user_guess_string_string + '"';
|
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;
|
settings.advanced.user_guess_string = user_guess_string_string;
|
||||||
|
|
||||||
// auto fill
|
// auto fill
|
||||||
|
@ -416,6 +430,8 @@ function save_changes_to_dict(silent_flag)
|
||||||
settings.advanced.resume_keyword = resume_keyword.value;
|
settings.advanced.resume_keyword = resume_keyword.value;
|
||||||
settings.advanced.idle_keyword_second = idle_keyword_second.value;
|
settings.advanced.idle_keyword_second = idle_keyword_second.value;
|
||||||
settings.advanced.resume_keyword_second = resume_keyword_second.value;
|
settings.advanced.resume_keyword_second = resume_keyword_second.value;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
if(!silent_flag) {
|
if(!silent_flag) {
|
||||||
message('已存檔');
|
message('已存檔');
|
||||||
|
@ -524,6 +540,8 @@ function check_unsaved_fields()
|
||||||
"user_guess_string",
|
"user_guess_string",
|
||||||
"remote_url",
|
"remote_url",
|
||||||
"auto_reload_page_interval",
|
"auto_reload_page_interval",
|
||||||
|
"auto_reload_overheat_count",
|
||||||
|
"auto_reload_overheat_cd",
|
||||||
"reset_browser_interval",
|
"reset_browser_interval",
|
||||||
"proxy_server_port",
|
"proxy_server_port",
|
||||||
"window_size",
|
"window_size",
|
||||||
|
|
Loading…
Reference in New Issue