Update
This commit is contained in:
@@ -1,17 +1,44 @@
|
|||||||
// ==UserScript==
|
// ==UserScript==
|
||||||
// @name 计算 UCoin 获取量
|
// @name 计算 UCoin 获取量
|
||||||
// @namespace https://github.com/lifegpc/userscript
|
// @namespace https://github.com/lifegpc/userscript
|
||||||
// @version 0.0.2
|
// @version 0.0.3
|
||||||
// @description 仅支持计算 体积(B)、数量(D)
|
// @description 仅支持计算 体积(B)、数量(D)
|
||||||
// @author lifegpc
|
// @author lifegpc
|
||||||
// @match https://u2.dmhy.org/userdetails.php?*
|
// @match https://u2.dmhy.org/userdetails.php?*
|
||||||
|
// @match https://u2.dmhy.org/mpseed.php?*
|
||||||
|
// @icon https://u2.dmhy.org/favicon.ico
|
||||||
// ==/UserScript==
|
// ==/UserScript==
|
||||||
|
const u = new URL(document.location.href);
|
||||||
|
const S0_KEY = "__lifegpc_u2_cal_ucoin_S0";
|
||||||
|
const LAST_UPDATED_KEY = "__lifegpc_u2_cal_ucoin_last_updated";
|
||||||
|
if (u.pathname == "/userdetails.php") {(async function(){
|
||||||
const ONE_CAT = [15, 16, 30];
|
const ONE_CAT = [15, 16, 30];
|
||||||
const b = 14.5;
|
const b = 14.5;
|
||||||
const S0 = 35.082;
|
const S0 = 35.041;
|
||||||
const d = 0.3;
|
const d = 0.3;
|
||||||
|
const MAX_CACHE_TIME = 1000 * 60 * 60 * 24;
|
||||||
let parse_size = (await import("https://esm.sh/[email protected]?pin=v135")).default;
|
let parse_size = (await import("https://esm.sh/[email protected]?pin=v135")).default;
|
||||||
let handled = false;
|
let handled = false;
|
||||||
|
let default_is_used = false;
|
||||||
|
function get_S0() {
|
||||||
|
default_is_used = false;
|
||||||
|
const cache = localStorage.getItem(S0_KEY);
|
||||||
|
if (!cache) {
|
||||||
|
default_is_used = true;
|
||||||
|
return S0;
|
||||||
|
}
|
||||||
|
const re = parseFloat(cache);
|
||||||
|
if (isNaN(re)) {
|
||||||
|
default_is_used = true;
|
||||||
|
return S0;
|
||||||
|
}
|
||||||
|
return re;
|
||||||
|
}
|
||||||
|
function get_last_updated() {
|
||||||
|
const cache = localStorage.getItem(LAST_UPDATED_KEY);
|
||||||
|
if (!cache) return 0;
|
||||||
|
return parseInt(cache);
|
||||||
|
}
|
||||||
let observer = new MutationObserver((records) => {
|
let observer = new MutationObserver((records) => {
|
||||||
if (handled) return;
|
if (handled) return;
|
||||||
for (let i of records) {
|
for (let i of records) {
|
||||||
@@ -19,6 +46,7 @@ let observer = new MutationObserver((records) => {
|
|||||||
console.log(e);
|
console.log(e);
|
||||||
if (e.id == 'ka1') {
|
if (e.id == 'ka1') {
|
||||||
handled = true;
|
handled = true;
|
||||||
|
const S0n = get_S0();
|
||||||
let bsum = 0;
|
let bsum = 0;
|
||||||
let warn = 0;
|
let warn = 0;
|
||||||
let br = e.querySelector("br");
|
let br = e.querySelector("br");
|
||||||
@@ -26,7 +54,7 @@ let observer = new MutationObserver((records) => {
|
|||||||
for (let row of rows) {
|
for (let row of rows) {
|
||||||
let cells = row.children;
|
let cells = row.children;
|
||||||
let size = parse_size(cells[2].innerText);
|
let size = parse_size(cells[2].innerText);
|
||||||
const B = b * size / 1_000_000_000 / S0;
|
const B = b * size / 1_000_000_000 / S0n;
|
||||||
const cat = parseInt(new URL(cells[0].querySelector('a').href).searchParams.get("cat"));
|
const cat = parseInt(new URL(cells[0].querySelector('a').href).searchParams.get("cat"));
|
||||||
let Pmin = ONE_CAT.includes(cat) ? 1 : 0.5;
|
let Pmin = ONE_CAT.includes(cat) ? 1 : 0.5;
|
||||||
const ov = cells[1].querySelector("td.overflow-control");
|
const ov = cells[1].querySelector("td.overflow-control");
|
||||||
@@ -71,7 +99,7 @@ let observer = new MutationObserver((records) => {
|
|||||||
}
|
}
|
||||||
let dsum = rows.length * d;
|
let dsum = rows.length * d;
|
||||||
let sum = bsum + dsum;
|
let sum = bsum + dsum;
|
||||||
let result = `共计 ${sum.toFixed(3)}/h:体积 ${bsum.toFixed(3)}/h,数量 ${dsum.toFixed(1)}/h`;
|
let result = `共计 ${sum.toFixed(3)}/h (${(sum * 24).toFixed(3)}/d):体积 ${bsum.toFixed(3)}/h (${(bsum * 24).toFixed(3)}/d),数量 ${dsum.toFixed(1)}/h (${(dsum * 24).toFixed(3)}/d)`;
|
||||||
if (warn > 0) {
|
if (warn > 0) {
|
||||||
result += `(警告:${warn} 个种子计算可能不准确)`;
|
result += `(警告:${warn} 个种子计算可能不准确)`;
|
||||||
}
|
}
|
||||||
@@ -80,7 +108,27 @@ let observer = new MutationObserver((records) => {
|
|||||||
let nbr = document.createElement('br');
|
let nbr = document.createElement('br');
|
||||||
e.insertBefore(nbr, br);
|
e.insertBefore(nbr, br);
|
||||||
e.insertBefore(span, br);
|
e.insertBefore(span, br);
|
||||||
|
const id = u.searchParams.get("id");
|
||||||
|
const all_warn = `,做种计算可能不准确,访问<a href="/mpseed.php?id=${id}">这里</a>获取新的S<sub>0</sub>值`;
|
||||||
|
const last_updated = get_last_updated();
|
||||||
|
if (default_is_used) {
|
||||||
|
let span2 = document.createElement("span");
|
||||||
|
span2.innerHTML = "默认的S<sub>0</sub>被使用了" + all_warn;
|
||||||
|
e.insertBefore(document.createElement('br'), br);
|
||||||
|
e.insertBefore(span2, br);
|
||||||
|
} else if (Date.now() - last_updated > MAX_CACHE_TIME) {
|
||||||
|
let span2 = document.createElement("span");
|
||||||
|
span2.innerHTML = `S<sub>0</sub>值已经过期${all_warn}`;
|
||||||
|
e.insertBefore(document.createElement('br'), br);
|
||||||
|
e.insertBefore(span2, br);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
observer.observe(document.body, { childList: true, subtree: true });
|
observer.observe(document.body, { childList: true, subtree: true });
|
||||||
|
})();}
|
||||||
|
else if (u.pathname == "/mpseed.php") {
|
||||||
|
const S0 = parseFloat(document.querySelector(".mainouter tr:nth-child(2) ul > li:nth-child(2)").innerText.match(/(?<=S0\=)[0-9.]+/)[0]);
|
||||||
|
localStorage.setItem(S0_KEY, S0);
|
||||||
|
localStorage.setItem(LAST_UPDATED_KEY, Date.now());
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user