更新
This commit is contained in:
parent
44d6c283c7
commit
7d494b8757
926
misc/Christmas_Town_Helper_2.3.3_mobile.js
Normal file
926
misc/Christmas_Town_Helper_2.3.3_mobile.js
Normal file
File diff suppressed because one or more lines are too long
135
package-lock.json
generated
135
package-lock.json
generated
@ -4,6 +4,33 @@
|
||||
"lockfileVersion": 1,
|
||||
"requires": true,
|
||||
"dependencies": {
|
||||
"@rollup/plugin-typescript": {
|
||||
"version": "8.5.0",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/plugin-typescript/-/plugin-typescript-8.5.0.tgz",
|
||||
"integrity": "sha512-wMv1/scv0m/rXx21wD2IsBbJFba8wGF3ErJIr6IKRfRj49S85Lszbxb4DCo8iILpluTjk2GAAu9CoZt4G3ppgQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@rollup/pluginutils": "^3.1.0",
|
||||
"resolve": "^1.17.0"
|
||||
}
|
||||
},
|
||||
"@rollup/pluginutils": {
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz",
|
||||
"integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@types/estree": "0.0.39",
|
||||
"estree-walker": "^1.0.1",
|
||||
"picomatch": "^2.2.2"
|
||||
}
|
||||
},
|
||||
"@types/estree": {
|
||||
"version": "0.0.39",
|
||||
"resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz",
|
||||
"integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==",
|
||||
"dev": true
|
||||
},
|
||||
"@types/jquery": {
|
||||
"version": "3.5.14",
|
||||
"resolved": "https://registry.npmmirror.com/@types/jquery/-/jquery-3.5.14.tgz",
|
||||
@ -25,10 +52,114 @@
|
||||
"integrity": "sha512-JYM8x9EGF163bEyhdJBpR2QX1R5naCJHC8ucJylJ3w9/CVBaskdQ8WqBf8MmQrd1kRvp/a4TS8HJ+bxzR7ZJYQ==",
|
||||
"dev": true
|
||||
},
|
||||
"estree-walker": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz",
|
||||
"integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==",
|
||||
"dev": true
|
||||
},
|
||||
"fsevents": {
|
||||
"version": "2.3.2",
|
||||
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
|
||||
"integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"function-bind": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
|
||||
"integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
|
||||
"dev": true
|
||||
},
|
||||
"has": {
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
|
||||
"integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"function-bind": "^1.1.1"
|
||||
}
|
||||
},
|
||||
"is-core-module": {
|
||||
"version": "2.10.0",
|
||||
"resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz",
|
||||
"integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"has": "^1.0.3"
|
||||
}
|
||||
},
|
||||
"mime": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz",
|
||||
"integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==",
|
||||
"dev": true
|
||||
},
|
||||
"opener": {
|
||||
"version": "1.5.2",
|
||||
"resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz",
|
||||
"integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==",
|
||||
"dev": true
|
||||
},
|
||||
"path-parse": {
|
||||
"version": "1.0.7",
|
||||
"resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
|
||||
"integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
|
||||
"dev": true
|
||||
},
|
||||
"picomatch": {
|
||||
"version": "2.3.1",
|
||||
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
|
||||
"integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
|
||||
"dev": true
|
||||
},
|
||||
"resolve": {
|
||||
"version": "1.22.1",
|
||||
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz",
|
||||
"integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"is-core-module": "^2.9.0",
|
||||
"path-parse": "^1.0.7",
|
||||
"supports-preserve-symlinks-flag": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"rollup": {
|
||||
"version": "2.79.0",
|
||||
"resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.0.tgz",
|
||||
"integrity": "sha512-x4KsrCgwQ7ZJPcFA/SUu6QVcYlO7uRLfLAy0DSA4NS2eG8japdbpM50ToH7z4iObodRYOJ0soneF0iaQRJ6zhA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"fsevents": "~2.3.2"
|
||||
}
|
||||
},
|
||||
"rollup-plugin-serve": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/rollup-plugin-serve/-/rollup-plugin-serve-2.0.1.tgz",
|
||||
"integrity": "sha512-/9lnzylTMwbXNQUwWAO0DIxW145wl+rmikwFXgujLJ5N9bRfWcjP+qd1XM5wxSiw8ZlBAlFy/n2zRvzcG21bBw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"mime": ">=2.4.6",
|
||||
"opener": "1"
|
||||
}
|
||||
},
|
||||
"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",
|
||||
"integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
|
||||
"dev": true
|
||||
},
|
||||
"tslib": {
|
||||
"version": "2.4.0",
|
||||
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
|
||||
"integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==",
|
||||
"dev": true
|
||||
},
|
||||
"typescript": {
|
||||
"version": "4.8.3",
|
||||
"resolved": "https://registry.npmmirror.com/typescript/-/typescript-4.8.3.tgz",
|
||||
"integrity": "sha512-goMHfm00nWPa8UvR/CPSvykqf6dVV8x/dp0c5mFTMTIu0u0FlGWRioyy7Nn0PGAdHxpJZnuO/ut+PpQ8UiHAig=="
|
||||
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.3.tgz",
|
||||
"integrity": "sha512-goMHfm00nWPa8UvR/CPSvykqf6dVV8x/dp0c5mFTMTIu0u0FlGWRioyy7Nn0PGAdHxpJZnuO/ut+PpQ8UiHAig==",
|
||||
"dev": true
|
||||
},
|
||||
"uglify-js": {
|
||||
"version": "3.16.1",
|
||||
|
||||
12
package.json
12
package.json
@ -2,17 +2,21 @@
|
||||
"name": "wuhu-torn-helper",
|
||||
"version": "0.5.1",
|
||||
"dependencies": {
|
||||
"uglify-js": "^3.16.1",
|
||||
"typescript": "*"
|
||||
"uglify-js": "^3.16.1"
|
||||
},
|
||||
"scripts": {
|
||||
"release": "npm run minify && node build.js",
|
||||
"minify": "uglifyjs wuhu-torn-helper.js -o release.min.user.js -m",
|
||||
"serve": "",
|
||||
"build": ""
|
||||
"build": "rollup -c"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@rollup/plugin-typescript": "^8.5.0",
|
||||
"@types/jquery": "^3.5.14",
|
||||
"@types/node": "^18.0.6"
|
||||
"@types/node": "^18.0.6",
|
||||
"rollup": "^2.79.0",
|
||||
"rollup-plugin-serve": "^2.0.1",
|
||||
"tslib": "^2.4.0",
|
||||
"typescript": "^4.8.3"
|
||||
}
|
||||
}
|
||||
|
||||
11
rollup.config.js
Normal file
11
rollup.config.js
Normal file
@ -0,0 +1,11 @@
|
||||
import typescript from "@rollup/plugin-typescript";
|
||||
|
||||
export default {
|
||||
input: 'src/main.ts',
|
||||
output: {
|
||||
file: 'bundle.js',
|
||||
},
|
||||
plugins: [
|
||||
typescript(),
|
||||
],
|
||||
};
|
||||
@ -67,14 +67,14 @@ z-index:100001;
|
||||
notify.close();
|
||||
notify = WHNotify('飞贼小助手已加载', { timeout: 1 });
|
||||
const gsp: HTMLElement = _docu.querySelector('#gsp');
|
||||
const init = () => {
|
||||
const thisRun = () => {
|
||||
ifr.style.height = `${ gsp.offsetHeight + 10 }px`;
|
||||
ifr.style.width = `${ gsp.offsetWidth + 20 }px`;
|
||||
gsp.style.top = '10px';
|
||||
gsp.style.left = '10px';
|
||||
};
|
||||
new MutationObserver(init).observe(gsp, { childList: true, subtree: true });
|
||||
init();
|
||||
new MutationObserver(thisRun).observe(gsp, { childList: true, subtree: true });
|
||||
thisRun();
|
||||
if (log.debug()) _window.GM_setValue("gsp_showContent", true)
|
||||
});
|
||||
});
|
||||
|
||||
@ -5,7 +5,7 @@ import log from "./log";
|
||||
// 跨域get请求 返回text
|
||||
export default function COFetch(url: URL | string, method: 'get' | 'post' = 'get', body: any = null): Promise<string> {
|
||||
return new Promise<string>((resolve, reject) => {
|
||||
const engine = getScriptEngine();
|
||||
const engine = getScriptEngine(window.WHPARAMS);
|
||||
switch (engine) {
|
||||
case UserScriptEngine.RAW: {
|
||||
console.error(`[wh] 跨域请求错误:${ UserScriptEngine.RAW }环境下无法进行跨域请求`);
|
||||
|
||||
@ -2,8 +2,7 @@
|
||||
import uuidv4 from "./uuidv4";
|
||||
|
||||
export default function WindowActiveState() {
|
||||
let glob = window.WHPARAMS;
|
||||
if (glob.isIframe) return null;
|
||||
if (self !== top) return null;
|
||||
const uuid = uuidv4();
|
||||
let isFocus = false;
|
||||
localStorage.setItem('whuuid', uuid);
|
||||
|
||||
@ -4,9 +4,8 @@ import popupMsg from "./popupMsg";
|
||||
import loading_gif_html from "./loading_gif_html";
|
||||
|
||||
// 海外库存
|
||||
export default async function forStock() {
|
||||
let glob = window.WHPARAMS;
|
||||
if (getScriptEngine() === UserScriptEngine.RAW) {
|
||||
export default async function forStock(glob) {
|
||||
if (getScriptEngine(glob) === UserScriptEngine.RAW) {
|
||||
const insert = `<img alt="stock.png" src="https://jjins.github.io/t2i/stock.png?${ performance.now() }" style="max-width:100%;display:block;margin:0 auto;" />`;
|
||||
popupMsg(insert, '飞花库存');
|
||||
} else {
|
||||
|
||||
@ -1,8 +1,8 @@
|
||||
import UserScriptEngine from "../../enum/UserScriptEngine";
|
||||
import Global from "../../interface/GlobalVars";
|
||||
|
||||
// 用户脚本平台类型
|
||||
export default function () {
|
||||
let glob = window.WHPARAMS;
|
||||
export default function getScriptEngine(glob:Global) {
|
||||
return glob.UWCopy ? UserScriptEngine.GM : glob.isPDA
|
||||
? UserScriptEngine.PDA : UserScriptEngine.RAW;
|
||||
}
|
||||
@ -1,13 +1,12 @@
|
||||
// 价格监视handle
|
||||
import getWhSettingObj from "./getWhSettingObj";
|
||||
import log from "./log";
|
||||
import toThousands from "./toThousands";
|
||||
import WHNotify from "./WHNotify";
|
||||
import Global from "../../interface/GlobalVars";
|
||||
|
||||
let glob = window.WHPARAMS;
|
||||
// 价格监视handle
|
||||
export default function priceWatcherHandle(glob: Global) {
|
||||
let { isPDA, PDA_APIKey, priceWatcher } = glob;
|
||||
|
||||
export default function priceWatcherHandle() {
|
||||
setInterval(() => {
|
||||
const price_conf = getWhSettingObj()['priceWatcher'];
|
||||
const apikey = isPDA ? PDA_APIKey : localStorage.getItem('APIKey');
|
||||
@ -15,14 +14,14 @@ export default function priceWatcherHandle() {
|
||||
log.info('无法获取APIKey')
|
||||
return;
|
||||
}
|
||||
if (price_conf['pt'] !== -1) priceWatcherPt(apikey, price_conf['pt']).then();
|
||||
if (price_conf['xan'] !== -1) priceWatcherXan(apikey, price_conf['xan']).then();
|
||||
if (price_conf['pt'] !== -1) priceWatcherPt(apikey, price_conf['pt'], priceWatcher).then();
|
||||
if (price_conf['xan'] !== -1) priceWatcherXan(apikey, price_conf['xan'], priceWatcher).then();
|
||||
}, 10000)
|
||||
return { status: true };
|
||||
}
|
||||
|
||||
// pt价格监视
|
||||
async function priceWatcherPt(apikey, lower_price) {
|
||||
async function priceWatcherPt(apikey, lower_price, priceWatcher: { status: boolean }) {
|
||||
if (!priceWatcher['watch-pt-lower-id']) priceWatcher['watch-pt-lower-id'] = [];
|
||||
const res = await fetch('https://api.torn.com/market/?selections=pointsmarket&key=' + apikey);
|
||||
const obj = await res.json();
|
||||
@ -53,7 +52,7 @@ async function priceWatcherPt(apikey, lower_price) {
|
||||
}
|
||||
|
||||
// xan价格监视
|
||||
async function priceWatcherXan(apikey, lower_price) {
|
||||
async function priceWatcherXan(apikey, lower_price, priceWatcher: { status: boolean }) {
|
||||
// 初始化记录上一个条目的id,避免重复发送通知
|
||||
if (!priceWatcher['watch-xan-lower-id']) priceWatcher['watch-xan-lower-id'] = '';
|
||||
const res = await fetch('https://api.torn.com/market/206?selections=bazaar&key=' + apikey);
|
||||
|
||||
11
src/init.ts
11
src/init.ts
@ -1,4 +1,3 @@
|
||||
import '../global'
|
||||
import log from "./func/utils/log";
|
||||
import getWhSettingObj from "./func/utils/getWhSettingObj";
|
||||
import miniprofTrans from "./func/translate/miniprofTrans";
|
||||
@ -15,16 +14,16 @@ import COFetch from "./func/utils/COFetch";
|
||||
// 初始化方法,获取必要全局参数
|
||||
export default function init(): Global {
|
||||
let glob: Global = {
|
||||
window,
|
||||
window: window,
|
||||
UWCopy: window.unsafeWindow,
|
||||
version: '$$WUHU_DEV_VERSION$$',
|
||||
isIframe: self !== top,
|
||||
PDA_APIKey: '###PDA-APIKEY###',
|
||||
isPDA: this.PDA_APIKey.slice(-1) !== '#',
|
||||
isPDA: false,
|
||||
device: window.innerWidth >= 1000 ? Device.PC : window.innerWidth <= 600 ? Device.MOBILE : Device.TABLET,
|
||||
player_info: getPlayerInfo(),
|
||||
fStock: autoFetchJSON('https://yata.yt/api/v1/travel/export/'),
|
||||
priceWatcher: this.isIframe ? null : priceWatcherHandle(),
|
||||
priceWatcher: null,
|
||||
beer: BuyBeer(),
|
||||
popup_node: null,
|
||||
notifies: { count: 0 },
|
||||
@ -32,7 +31,8 @@ export default function init(): Global {
|
||||
href: window.location.href,
|
||||
bodyAttrs: {},
|
||||
};
|
||||
window.WHPARAMS = glob;
|
||||
glob.isPDA = glob.PDA_APIKey.slice(-1) !== '#';
|
||||
glob.priceWatcher = self !== top ? null : priceWatcherHandle(glob);
|
||||
let UWCopy = null;
|
||||
if (window.hasOwnProperty('unsafeWindow')) {
|
||||
UWCopy = window.unsafeWindow;
|
||||
@ -41,6 +41,7 @@ export default function init(): Global {
|
||||
} catch {
|
||||
}
|
||||
}
|
||||
window.WHPARAMS = glob;
|
||||
|
||||
// 请求通知权限
|
||||
if (window.Notification && Notification.permission !== 'granted') {
|
||||
|
||||
@ -393,7 +393,7 @@ function getMenuItems(glob): MenuItemConfig[] {
|
||||
domText: '🌸 飞花库存',
|
||||
clickFunc: async function (e) {
|
||||
e.target.blur();
|
||||
forStock().then();
|
||||
forStock(glob).then();
|
||||
},
|
||||
});
|
||||
// 一键起飞
|
||||
@ -477,7 +477,7 @@ info{display:block;}
|
||||
});
|
||||
node.querySelector('a').addEventListener('click', (e) => {
|
||||
e.preventDefault();
|
||||
forStock();
|
||||
forStock(glob);
|
||||
});
|
||||
node.querySelector('input').addEventListener('click', (e) => {
|
||||
node.classList.toggle('wh-quick-fly-opt-hide');
|
||||
@ -724,7 +724,7 @@ background-size: 100% auto !important;
|
||||
domText: '🐏 飞贼小助手',
|
||||
clickFunc: function (e) {
|
||||
e.target.blur();
|
||||
loadGS(getScriptEngine());
|
||||
loadGS(getScriptEngine(glob));
|
||||
},
|
||||
tip: '加载从PC端移植的伞佬的油猴版飞贼小助手',
|
||||
});
|
||||
@ -960,7 +960,7 @@ background-size: 100% auto !important;
|
||||
<tr><td>URL</td><td>${ window.location.href }</td></tr>
|
||||
<tr><td>页面尺寸</td><td>${ window.innerWidth }x${ window.innerHeight }</td></tr>
|
||||
<tr><td>设备类型</td><td>${ getDeviceType().toUpperCase() }</td></tr>
|
||||
<tr><td>脚本运行方式</td><td>${ { 'gm': '油猴', 'raw': '直接运行', 'pda': 'TornPDA' }[getScriptEngine()] }</td></tr>
|
||||
<tr><td>脚本运行方式</td><td>${ { 'gm': '油猴', 'raw': '直接运行', 'pda': 'TornPDA' }[getScriptEngine(glob)] }</td></tr>
|
||||
<tr><td>时间</td><td>${ date.getFullYear() }/${ date.getMonth() + 1 }/${ date.getDate() } ${ date.getHours() }:${ date.getMinutes() }:${ date.getSeconds() }</td></tr>
|
||||
<tr><td>插件版本</td><td>${ glob.version }</td></tr>
|
||||
<tr><td>操作系统</td><td>${ os }</td></tr>
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
"es2015",
|
||||
"ES2021.String"
|
||||
],
|
||||
"target": "ES5",
|
||||
"target": "ES6",
|
||||
"removeComments": true,
|
||||
"sourceMap": false,
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user