[reply]
```
// ==UserScript==
// @name 快速可见
// @namespace [reply][/reply] 最开始到底怎么发明出来的,防爬虫吗?
// @version 2024-11-16
// @description 提供一个按钮一键回复NodeLoc的“需要回复后可见”帖子
// @author xXcmd1152Xx
// @match https://www.nodeloc.com/d/*
// @grant none
// ==/UserScript==
// 这个数组存的是回复时用的文字,随机抽,可以按个人喜好修改
// 我直接翻了十几个帖子,把常用的都写进去了
const reply_data = [
“看看”,
“让我看看”,
“kk”,
“kankan”,
“瞅瞅”,
“cc”,
“chouchou”,
“我也看看”,
“1111111111”,
“666”
];
function getRandomItemFromArray(arr) {
var randomIndex = Math.floor(Math.random() * arr.length);
return arr[randomIndex];
}
const callback = (mutationsList) => {
for (const mutation of mutationsList) {
if (mutation.type === ‘childList’) {
const elements = document.querySelectorAll(‘.xx2see>.xx2see_alert’);
if (elements.length > 0) {
elements.forEach(element => {
if (element.classList.contains(“inj”)) return;
element.classList.add(“inj”);
const fast_reply = document.createElement(“button”);
fast_reply.innerText = “一键查看”
fast_reply.classList.add(“Button”);
fast_reply.classList.add(“Button–primary”);
fast_reply.style.marginInlineStart = “1em”;
fast_reply.onclick = async () => {
fast_reply.disabled = true;
fast_reply.innerText = “正在回复”;
try {
if (!/\d+/.test(location.href)) throw new Error(“无法获取帖子 ID”);
let pid = location.href.match(/\d+/)[0];
let csrf = JSON.parse(document.getElementById(“flarum-json-payload”).innerText).session.csrfToken;
let req = await fetch(“https://www.nodeloc.com/api/posts”, {
“headers”: {
“content-type”: “application/json; charset=UTF-8”,
“x-csrf-token”: csrf,
},
“body”: JSON.stringify({
“data”: {
“type”: “posts”,
“attributes”: {
“content”: getRandomItemFromArray(reply_data)
},
“relationships”: {
“discussion”: {
“data”: {
“type”: “discussions”,
“id”: pid
}
}
}
}
}),
“method”: “POST”,
});
let data = await req.json();
if (data.errors) throw new Error(data.errors.map((error) => error.detail).join(", "))
fast_reply.innerText = “完成”;
location.reload();
} catch (error) {
fast_reply.disabled = true;
fast_reply.innerText = 出错了:${error.message || error || "未知错误"};
}
};
element.appendChild(fast_reply);
});
}
}
}
};
const observer = new MutationObserver(callback);
observer.observe(document.body, { childList: true, subtree: true });
```
[/reply]
我写这个纯属这个很烦,点赞的还好,回帖的回帖之后直接跳底部,还得翻上去
安装后你遇到这种帖子就会在旁边看见个按钮:


然后接下来就很简单,点一下就好了,手机端这个按钮显示有点问题(不过是小问题就懒得改)
(`一键查看` → `正在回复` → `完成` → (刷新))


(自动刷新)


这个脚本没写抽奖自动回复,要写的话…… 什么 nodeloc 增强脚本:ac01:~~lnux.do~~