From 42827f9a52707c5e689c7fd51f43e281012599cb Mon Sep 17 00:00:00 2001 From: Liwanyi Date: Wed, 21 Sep 2022 18:47:52 +0800 Subject: [PATCH] =?UTF-8?q?TS=E9=87=8D=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/dictionaries/Liwanyi.xml | 1 + global.d.ts | 2 +- package-lock.json | 133 ++++++++++++++++++++ package.json | 5 +- rollup.config.js | 2 + src/class/Global.ts | 8 +- src/class/Log.ts | 36 ++++-- src/class/TravelItemFetchLoop.ts | 20 +-- src/class/WuhuBase.ts | 18 +++ src/class/WuhuConfig.ts | 18 +++ src/class/WuhuTornHelper.ts | 13 +- src/class/ZhongIcon.ts | 104 ++++++++------- src/class/action/WuhuBaseAction.ts | 3 + src/class/utils/Alert.ts | 30 +++++ src/class/{ => utils}/Utils.ts | 57 ++++++--- src/func/module/attackHelper.ts | 8 +- src/func/module/cityFinder.ts | 4 +- src/func/module/depoHelper.ts | 19 +-- src/func/module/loadGS.ts | 12 +- src/func/module/safeKeeper.ts | 2 +- src/func/module/travelHelper.ts | 9 +- src/func/translate/translateMain.ts | 2 +- src/func/utils/@deprecated/getDeviceType.ts | 9 ++ src/func/utils/@deprecated/getPlayerInfo.ts | 12 ++ src/func/utils/@deprecated/getRandomInt.ts | 9 ++ src/func/utils/BuyBeer.ts | 7 +- src/func/utils/COFetch.ts | 4 +- src/func/utils/WHNotify.ts | 6 +- src/func/utils/addActionBtn.ts | 4 +- src/func/utils/ajaxFetch.ts | 8 +- src/func/utils/autoFetchJSON.ts | 2 +- src/func/utils/forStock.ts | 1 - src/func/utils/getDeviceType.ts | 9 -- src/func/utils/getPlayerInfo.ts | 12 -- src/func/utils/getRandomInt.ts | 11 -- src/func/utils/initMiniProf.ts | 2 +- src/func/utils/popupMsg.ts | 1 - src/func/utils/setWhSetting.ts | 4 +- src/interface/AjaxFetchOption.ts | 7 ++ src/interface/ISidebarData.ts | 2 +- src/main.ts | 16 +-- src/urlMatch.ts | 8 +- 42 files changed, 455 insertions(+), 185 deletions(-) create mode 100644 src/class/WuhuConfig.ts create mode 100644 src/class/action/WuhuBaseAction.ts create mode 100644 src/class/utils/Alert.ts rename src/class/{ => utils}/Utils.ts (73%) create mode 100644 src/func/utils/@deprecated/getDeviceType.ts create mode 100644 src/func/utils/@deprecated/getPlayerInfo.ts create mode 100644 src/func/utils/@deprecated/getRandomInt.ts delete mode 100644 src/func/utils/getDeviceType.ts delete mode 100644 src/func/utils/getPlayerInfo.ts delete mode 100644 src/func/utils/getRandomInt.ts create mode 100644 src/interface/AjaxFetchOption.ts diff --git a/.idea/dictionaries/Liwanyi.xml b/.idea/dictionaries/Liwanyi.xml index 1f1052e..b1b6579 100644 --- a/.idea/dictionaries/Liwanyi.xml +++ b/.idea/dictionaries/Liwanyi.xml @@ -2,6 +2,7 @@ wuhu + zhong \ No newline at end of file diff --git a/global.d.ts b/global.d.ts index 0ea3991..c9d69dd 100644 --- a/global.d.ts +++ b/global.d.ts @@ -27,7 +27,7 @@ declare interface Window { getAction(opt: TornGetActionParams): void; - initMiniProf(selector: string): void; + // initMiniProf(selector: string): void; initializeTooltip(selector: string, elemId: string): void; diff --git a/package-lock.json b/package-lock.json index a6c7f46..f956be6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4,6 +4,32 @@ "lockfileVersion": 1, "requires": true, "dependencies": { + "@babel/code-frame": { + "version": "7.18.6", + "resolved": "https://registry.npmmirror.com/@babel/code-frame/-/code-frame-7.18.6.tgz", + "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "dev": true, + "requires": { + "@babel/highlight": "^7.18.6" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.19.1", + "resolved": "https://registry.npmmirror.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", + "dev": true + }, + "@babel/highlight": { + "version": "7.18.6", + "resolved": "https://registry.npmmirror.com/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.18.6", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, "@rollup/plugin-typescript": { "version": "8.5.0", "resolved": "https://registry.npmjs.org/@rollup/plugin-typescript/-/plugin-typescript-8.5.0.tgz", @@ -52,6 +78,47 @@ "integrity": "sha512-JYM8x9EGF163bEyhdJBpR2QX1R5naCJHC8ucJylJ3w9/CVBaskdQ8WqBf8MmQrd1kRvp/a4TS8HJ+bxzR7ZJYQ==", "dev": true }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true + }, "estree-walker": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", @@ -80,6 +147,12 @@ "function-bind": "^1.1.1" } }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true + }, "is-core-module": { "version": "2.10.0", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz", @@ -89,6 +162,39 @@ "has": "^1.0.3" } }, + "jest-worker": { + "version": "24.9.0", + "resolved": "https://registry.npmmirror.com/jest-worker/-/jest-worker-24.9.0.tgz", + "integrity": "sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw==", + "dev": true, + "requires": { + "merge-stream": "^2.0.0", + "supports-color": "^6.1.0" + }, + "dependencies": { + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, "mime": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", @@ -143,6 +249,33 @@ "opener": "1" } }, + "rollup-plugin-uglify": { + "version": "6.0.4", + "resolved": "https://registry.npmmirror.com/rollup-plugin-uglify/-/rollup-plugin-uglify-6.0.4.tgz", + "integrity": "sha512-ddgqkH02klveu34TF0JqygPwZnsbhHVI6t8+hGTcYHngPkQb5MIHI0XiztXIN/d6V9j+efwHAqEL7LspSxQXGw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "jest-worker": "^24.0.0", + "serialize-javascript": "^2.1.2", + "uglify-js": "^3.4.9" + } + }, + "serialize-javascript": { + "version": "2.1.2", + "resolved": "https://registry.npmmirror.com/serialize-javascript/-/serialize-javascript-2.1.2.tgz", + "integrity": "sha512-rs9OggEUF0V4jUSecXazOYsLfu7OGK2qIn3c7IPBiffz32XniEp/TX9Xmc9LQfK2nQ2QKHvZ2oygKUGU0lG4jQ==", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, "supports-preserve-symlinks-flag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", diff --git a/package.json b/package.json index 8e5673c..7970f1c 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,6 @@ "name": "wuhu-torn-helper", "version": "0.5.1", "dependencies": { - "uglify-js": "^3.16.1" }, "scripts": { "release": "npm run minify && node build.js", @@ -18,6 +17,8 @@ "rollup": "^2.79.0", "rollup-plugin-serve": "^2.0.1", "tslib": "^2.4.0", - "typescript": "^4.8.3" + "typescript": "^4.8.3", + "rollup-plugin-uglify": "^6.0.4", + "uglify-js": "^3.16.1" } } diff --git a/rollup.config.js b/rollup.config.js index de9f51d..2540f89 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -1,4 +1,5 @@ import typescript from "@rollup/plugin-typescript"; +import { uglify } from "rollup-plugin-uglify"; export default { input: 'src/main.ts', @@ -7,5 +8,6 @@ export default { }, plugins: [ typescript(), + // uglify(), ], }; diff --git a/src/class/Global.ts b/src/class/Global.ts index 47e5c09..2c9827a 100644 --- a/src/class/Global.ts +++ b/src/class/Global.ts @@ -3,7 +3,8 @@ import Device from "../enum/Device"; import WindowActiveState from "../func/utils/WindowActiveState"; import WuhuBase from "./WuhuBase"; import IGlobal from "../interface/IGlobal"; -import Utils from "./Utils"; +import Utils from "./utils/Utils"; +import Log from "./Log"; export default class Global extends WuhuBase implements IGlobal { GM_xmlhttpRequest: Function = null; @@ -45,6 +46,7 @@ export default class Global extends WuhuBase implements IGlobal { isWindowActive = null; private constructor() { + Log.info('Global初始化'); super(); this.window = window; this.unsafeWindow = window.unsafeWindow || null; @@ -69,6 +71,8 @@ export default class Global extends WuhuBase implements IGlobal { this.GM_xmlhttpRequest = null; } } + let initializeTooltip = window; + Log.info({ initializeTooltip }) for (let i = 0; i < document.body.attributes.length; i++) { let item = document.body.attributes.item(i); @@ -86,6 +90,8 @@ export default class Global extends WuhuBase implements IGlobal { } } ); + + Log.info('Global初始化结束'); } static getInstance(this): Global { diff --git a/src/class/Log.ts b/src/class/Log.ts index f941e29..371bd60 100644 --- a/src/class/Log.ts +++ b/src/class/Log.ts @@ -1,18 +1,36 @@ -import WuhuBase from "./WuhuBase"; -import getWhSettingObj from "../func/utils/getWhSettingObj"; +export default class Log{ + static info(this, ...o) { + (this.debug()) && (console.log('[WH]', this.getTime(), ...o)) + } -export default class Log extends WuhuBase{ - static info(...o) { - return (this.debug()) && (console.log('[WH]', ...o)) - } static error(...o) { - return (this.debug()) && (console.error('[WH]', ...o)) + (this.debug()) && (console.error('[WH]', this.getTime(), ...o)) } + static debug() { + let ret: boolean; try { - return getWhSettingObj()['isDev'] || false; + let local = JSON.parse(localStorage.getItem('wh_trans_settings')); + if (local) ret = local['isDev']; + else ret = false; } catch { - return false; + ret = false; } + return ret; + } + + static getTime() { + let d = new Date(); + let year = d.getFullYear(); + let month = ('0' + (d.getMonth() + 1)).slice(-2); + let date = ('0' + d.getDate()).slice(-2); + let hours = ('0' + d.getHours()).slice(-2); + let minutes = ('0' + d.getMinutes()).slice(-2); + let seconds = ('0' + d.getSeconds()).slice(-2); + let ms = ('00' + d.getMilliseconds()).slice(-3); + return `[${ year }-${ month }-${ date } ${ hours }:${ minutes }:${ seconds }.${ ms }]`; + } + + private constructor() { } } \ No newline at end of file diff --git a/src/class/TravelItemFetchLoop.ts b/src/class/TravelItemFetchLoop.ts index b9fdf18..bf01a3f 100644 --- a/src/class/TravelItemFetchLoop.ts +++ b/src/class/TravelItemFetchLoop.ts @@ -1,18 +1,10 @@ -import Utils from "./Utils"; +import Utils from "./utils/Utils"; import WuhuBase from "./WuhuBase"; -export default class TravelItem extends WuhuBase{ +export default class TravelItem extends WuhuBase { obj: any = null; res: any = null; - async get() { - if (!this.obj) { - const str = await this.res - this.obj = JSON.parse(str); - } - return this.obj; - } - constructor(destination: string) { super(); setInterval(async () => { @@ -21,4 +13,12 @@ export default class TravelItem extends WuhuBase{ this.obj = JSON.parse(res); }, 30 * 1000); } + + async get() { + if (!this.obj) { + const str = await this.res + this.obj = JSON.parse(str); + } + return this.obj; + } } \ No newline at end of file diff --git a/src/class/WuhuBase.ts b/src/class/WuhuBase.ts index b24e6a1..d7f0809 100644 --- a/src/class/WuhuBase.ts +++ b/src/class/WuhuBase.ts @@ -1,5 +1,23 @@ import IGlobal from "../interface/IGlobal"; +import IWHSettings from "../interface/IWHSettings"; +import Log from "./Log"; export default class WuhuBase { static glob: IGlobal = null; + + static getLocal(): IWHSettings { + return JSON.parse(localStorage.getItem('wh_trans_settings')); + } + + static conditionInterrupt() { + if ( + document.title.toLowerCase().includes('just a moment') || + document.querySelector('#skip-to-content').innerText.toLowerCase().includes('please validate') + ) + throw '芜湖'; + } + + constructor() { + Log.info('创建对象:' + this.constructor.name) + } } \ No newline at end of file diff --git a/src/class/WuhuConfig.ts b/src/class/WuhuConfig.ts new file mode 100644 index 0000000..4786503 --- /dev/null +++ b/src/class/WuhuConfig.ts @@ -0,0 +1,18 @@ +import WuhuBase from "./WuhuBase"; + +export default class WuhuConfig extends WuhuBase { + static get(key: string) { + return WuhuBase.getLocal()[key]; + } + + static set(key: string, val: any, callback: Function = () => { + }) { + let config = WuhuBase.getLocal(); + config[key] = val; + localStorage.setItem('wh_trans_settings', JSON.stringify(config)); + + // if (isNotify) WHNotify('已保存设置') + new Promise(() => callback()).then(); + return val; + } +} \ No newline at end of file diff --git a/src/class/WuhuTornHelper.ts b/src/class/WuhuTornHelper.ts index 6d14d0c..e351d13 100644 --- a/src/class/WuhuTornHelper.ts +++ b/src/class/WuhuTornHelper.ts @@ -1,24 +1,26 @@ -import log from "../func/utils/log"; import getWhSettingObj from "../func/utils/getWhSettingObj"; import miniprofTrans from "../func/translate/miniprofTrans"; import addStyle from "../func/utils/addStyle"; -import Utils from "./Utils"; +import Utils from "./utils/Utils"; import WuhuBase from "./WuhuBase"; import TravelItem from "./TravelItemFetchLoop"; import Global from "./Global"; +import Log from "./Log"; -export default class WuHuTornHelper extends WuhuBase{ +export default class WuHuTornHelper extends WuhuBase { init() { + Log.info('WuHuTornHelper初始化'); WuhuBase.glob = Global.getInstance(); let glob = WuhuBase.glob; glob.fStock = new TravelItem('https://yata.yt/api/v1/travel/export/'); + Log.info(glob.fStock) // 请求通知权限 if (window.Notification && Notification.permission !== 'granted') { Notification.requestPermission().then(); } else { - log.info({ Notification }); + Log.info({ Notification }); } // 扩展正则方法 @@ -45,7 +47,7 @@ export default class WuHuTornHelper extends WuhuBase{ } let clone = res.clone(); let text = await res.text(); - log.info({ url, init, text }); + Log.info({ url, init, text }); return clone; }; @@ -209,6 +211,7 @@ cursor:pointer; } } + Log.info('WuHuTornHelper初始化结束'); return this; } } \ No newline at end of file diff --git a/src/class/ZhongIcon.ts b/src/class/ZhongIcon.ts index 1b4bef1..15d1b3d 100644 --- a/src/class/ZhongIcon.ts +++ b/src/class/ZhongIcon.ts @@ -1,27 +1,26 @@ -import getWhSettingObj from "../func/utils/getWhSettingObj"; -import setWhSetting from "../func/utils/setWhSetting"; -import log from "../func/utils/log"; import popupMsg from "../func/utils/popupMsg"; -import COFetch from "../func/utils/COFetch"; import WHNotify from "../func/utils/WHNotify"; import forStock from "../func/utils/forStock"; import addStyle from "../func/utils/addStyle"; import doQuickFly from "../func/module/doQuickFly"; -import getYaoCD from "../func/utils/getYaoCD"; import loadGS from "../func/module/loadGS"; -import getScriptEngine from "../func/utils/getScriptEngine"; import loading_gif_html from "../func/utils/loading_gif_html"; import elementReady from "../func/utils/elementReady"; import adHelper from "../func/module/adHelper"; import safeKeeper from "../func/module/safeKeeper"; import mdParse from "../func/utils/MarkdownParser"; -import getDeviceType from "../func/utils/getDeviceType"; import updateTransDict from "../func/translate/updateTransDict"; import landedRedirect from "../func/module/landedRedirect"; +import initMiniProf from "../func/utils/initMiniProf"; import WuhuBase from "./WuhuBase"; import Log from "./Log"; +import Utils from "./utils/Utils"; +import WuhuConfig from "./WuhuConfig"; +import Alert from "./utils/Alert"; export default class ZhongIcon extends WuhuBase { + static ZhongNode: MyHTMLElement = null; + static elemGenerator(setting: MenuItemConfig, root_node: Node) { let { tip, domType } = setting; let new_node = null; @@ -34,9 +33,9 @@ export default class ZhongIcon extends WuhuBase { let input = document.createElement('input'); input.type = 'checkbox'; input.id = domId; - input.checked = getWhSettingObj()[dictName]; + input.checked = WuhuConfig.get(dictName); input.onchange = e => { - setWhSetting(dictName, (e.target as HTMLInputElement).checked); + WuhuConfig.set(dictName, (e.target as HTMLInputElement).checked); if (setting.changeEv) setting.changeEv(e); }; label.innerHTML = domText; @@ -68,11 +67,11 @@ export default class ZhongIcon extends WuhuBase { let option = document.createElement('option'); option.value = domVal; option.innerHTML = domText; - option.selected = i === getWhSettingObj()[dictName]; + option.selected = i === WuhuConfig.get(dictName); option.innerHTML = domText; select.appendChild(option); }); - select.onchange = e => setWhSetting(dictName, (e.target).selectedIndex); + select.onchange = e => WuhuConfig.set(dictName, (e.target).selectedIndex); label.appendChild(text); label.appendChild(select); new_node.appendChild(label); @@ -91,8 +90,12 @@ export default class ZhongIcon extends WuhuBase { } static initialize() { + Log.info('ZhongIcon初始化'); ZhongIcon.setDefaultSettings(); - ZhongIcon.initIcon(ZhongIcon.getMenuItems()) + Log.info('设置图标开始'); + ZhongIcon.initIcon(ZhongIcon.getMenuItems()); + Log.info('设置图标结束'); + Log.info('ZhongIcon初始化结束'); } /** @@ -129,19 +132,19 @@ export default class ZhongIcon extends WuhuBase { zhong_node.classList.toggle('wh-icon-expanded'); const click_func = e => { // e.stopImmediatePropagation(); - log.info(e.target); + Log.info(e.target); if (e.target === zhong_node.querySelector('#wh-trans-icon-btn')) return; if (!zhong_node.contains(e.target)) { - log.info('移除事件监听器'); + Log.info('移除事件监听器'); document.body.removeEventListener('click', click_func); zhong_node.classList.remove('wh-icon-expanded'); } }; if (zhong_node.classList.contains('wh-icon-expanded')) { - log.info('添加事件监听器'); + Log.info('添加事件监听器'); document.body.addEventListener('click', click_func); } else { - log.info('移除事件监听器'); + Log.info('移除事件监听器'); document.body.removeEventListener('click', click_func); } }; @@ -164,7 +167,7 @@ export default class ZhongIcon extends WuhuBase { node.querySelector('button').onclick = async (e) => { let target = e.target as HTMLButtonElement; target.innerHTML = '加载中'; - const js_text = await COFetch(`https://jjins.github.io/fyfuzhi/release.min.user.js?${ performance.now() }`); + const js_text = await Utils.COFetch(`https://jjins.github.io/fyfuzhi/release.min.user.js?${ performance.now() }`); target.innerHTML = '点击复制到剪切板'; target.onclick = () => { const textarea_node = document.createElement('textarea'); @@ -201,11 +204,9 @@ export default class ZhongIcon extends WuhuBase { : el.addEventListener('click', null)); document.body.append(zhong_node); // 引入torn自带浮动提示 - // (window['initializeTooltip']) && (window['initializeTooltip']('.wh-container', 'white-tooltip')); - Log.info(WuhuBase.glob); - WuhuBase.glob.unsafeWindow.initializeTooltip('.wh-container', 'white-tooltip'); + (window.initializeTooltip) && (window.initializeTooltip('.wh-container', 'white-tooltip')); // 加载torn mini profile - WuhuBase.glob.unsafeWindow.initMiniProf('#wh-trans-icon'); + initMiniProf('#wh-trans-icon'); ZhongIcon.ZhongNode = zhong_node; return zhong_node; } @@ -484,7 +485,7 @@ info{display:block;} type_node.addEventListener('change', showTime); document.body.append(node); showTime(); - yaoCD.innerHTML = `药CD剩余:${ getYaoCD() }`; + yaoCD.innerHTML = `药CD剩余:${ Utils.getYaoCD() }`; }, }); // NPC LOOT @@ -699,7 +700,7 @@ background-size: 100% auto !important; domText: '🐏 飞贼小助手', clickFunc: function (e) { e.target.blur(); - loadGS(getScriptEngine()); + loadGS(Utils.getScriptEngine()); }, tip: '加载从PC端移植的伞佬的油猴版飞贼小助手', }); @@ -709,7 +710,7 @@ background-size: 100% auto !important; domId: 'wh-price-watcher-btn', domText: '💊 价格监视', clickFunc: function () { - const watcher_conf = getWhSettingObj()['priceWatcher']; + const watcher_conf = WuhuConfig.get('priceWatcher'); const pre_str = JSON.stringify(watcher_conf); const html = `