论坛的能量在哪里查看呀? 好久没上来了,发现论坛完全改版了
2 个赞
我之前也找了好久
点开个人主页,右上角,展开
就能看到了
1 个赞
你可以在帖子里面点击自己的头像
也可以右上角点击自己头像==》右侧边栏最下面的个人资料
==》总结的信息里查看
最后也可以添加个油猴脚本来显示在论坛右上角
油猴脚本
// ==UserScript==
// @name NodeLoc 导航栏能量显示
// @namespace http://tampermonkey.net/
// @icon data:image/png;base64,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
// @version 0.5
// @description 在导航栏显示能量数值(图标前置+黑色透明样式)
// @author You & Hiram
// @match https://nodeloc.cc/*
// @match https://nodeloc.com/*
// @run-at document-end
// @grant GM_addStyle
// @connect nodeloc.cc
// @connect nodeloc.com
// ==/UserScript==
(function () {
"use strict";
// 创建导航栏元素
function createEnergyDisplayItem() {
const li = document.createElement("li");
li.className = "header-dropdown-toggle energy-display";
li.innerHTML = `
<div class="energy-display-container">
<div class="left">
<svg width="24" height="24" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg" class="fa d-icon d-icon-calendar-check svg-icon svg-string">
<path d="M31 4H16L10 27H18L14 44L40 16H28L31 4Z" fill="none" stroke="#9b9b9b" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M21 11L19 19" stroke="#9b9b9b" stroke-width="4" stroke-linecap="round"/>
</svg>
</div>
<div class="right">
<div class="title">能量值</div>
<div class="value">加载中...</div>
</div>
</div>
`;
// 插入到导航栏第一个位置
const navBar = document.querySelector("ul.d-header-icons");
if (navBar) {
navBar.insertBefore(li, navBar.firstChild);
return li.querySelector(".value");
}
return null;
}
// 创建样式
function createEnergyDisplayStyle() {
GM_addStyle(`
.energy-display {
}
.energy-display .energy-display-container {
box-sizing: content-box;
-webkit-appearance: none;
appearance: none;
position: relative;
display: flex;
align-items: center;
justify-content: center;
height: 2.2857em;
padding: .2143em;
text-decoration: none;
cursor: pointer;
border: 1px solid rgba(0, 0, 0, 0);
outline: none;
gap: 0.2143em;
color: var(--header_primary-low-mid);
}
.energy-display .energy-display-container .left svg path {
stroke: var(--header_primary-low-mid);
}
.energy-display .energy-display-container .right {
font-size: 18px;
line-height: 1.2;
display: flex;
flex-direction: column;
align-items: flex-end;
}
.energy-display .energy-display-container .right .title {
font-size: 12px;
}
.energy-display .energy-display-container .right .value {
font-size: 16px;
font-weight: bold;
opacity: 1;
}
`);
}
function xhrRequest(options) {
const {
url,
method = "GET",
headers = {},
body = null,
withCredentials = false,
responseType = "text",
} = options;
const xhr = new XMLHttpRequest();
xhr.open(method, url);
xhr.withCredentials = withCredentials;
xhr.responseType = responseType;
if (Object.keys(headers).length) {
for (const [key, value] of Object.entries(headers)) {
xhr.setRequestHeader(key, value);
}
}
return new Promise((resolve, reject) => {
xhr.onload = () => {
const code = xhr.status;
if (code >= 200 && code <= 299) {
resolve(xhr.response);
} else {
reject(new Error(`Network Error: ${code}`));
}
};
xhr.onerror = () => {
reject(new Error("Network Error"));
};
xhr.ontimeout = () => {
reject(new Error("Request timed out"));
};
if (!["get"].includes(method.toLowerCase())) {
xhr.send(body);
} else {
xhr.send();
}
});
}
// 获取并更新能量值
async function updateEnergyValue(displayElement) {
xhrRequest({
url: "https://nodeloc.cc/leaderboard/1.json",
method: "GET",
headers: {
"Content-Type": "application/json",
},
withCredentials: true,
responseType: "json",
}).then((res) => {
if (displayElement) {
displayElement.textContent = res.personal.user.total_score.toString();
}
}).catch((err) => {
console.error('TampermonKey-NodeLoc-xhrRequest', err.message);
handleError(displayElement);
});
// GM_xmlhttpRequest({
// method: "GET",
// url: "https://nodeloc.cc/leaderboard/1.json",
// withCredentials: true,
// onload: function (response) {
// try {
// const data = JSON.parse(response.responseText);
// if (displayElement) {
// displayElement.textContent =
// data.personal.user.total_score.toLocaleString();
// }
// } catch (err) {
// console.error('TampermonKey-NodeLoc-RespParse',err.message);
// handleError(displayElement);
// }
// },
// onerror: function (err) {
// console.error('TampermonKey-NodeLoc-xhrRequest',err.message);
// handleError(displayElement);
// },
// });
}
// 错误处理
function handleError(displayElement) {
if (displayElement) {
displayElement.textContent = "--";
}
}
// 等待导航栏加载
const observer = new MutationObserver(() => {
const navBar = document.querySelector("ul.d-header-icons");
if (navBar) {
observer.disconnect();
createEnergyDisplayStyle();
const displayElement = createEnergyDisplayItem();
if (displayElement) {
// 初始加载
updateEnergyValue(displayElement);
// 每30秒刷新
setInterval(() => updateEnergyValue(displayElement), 30000);
}
}
});
observer.observe(document, {
childList: true,
subtree: true,
});
})();
4 个赞
好的 感谢佬
好的 感谢佬
大佬,这个脚本问你下是你写的吗?如果是的话我能否拿去整合成一个NL增强脚本?
提供下开源协议谢谢
不是我写的,也是网上搜到的~
1 个赞