写了个一键回复NL那些需要回帖查看的帖子的油猴脚本

[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]

我写这个纯属这个很烦,点赞的还好,回帖的回帖之后直接跳底部,还得翻上去

安装后你遇到这种帖子就会在旁边看见个按钮:
Image description![Image description](https://s.rmimg.com/2024-11-16/1731744508-932329-image.png)

然后接下来就很简单,点一下就好了,手机端这个按钮显示有点问题(不过是小问题就懒得改)
`一键查看` → `正在回复` → `完成` → (刷新))
Image description![Image description](https://s.rmimg.com/2024-11-16/1731744677-601104-image.png)

(自动刷新)

Image description![Image description](https://s.rmimg.com/2024-11-16/1731744701-255782-image.png)

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

好东西,赞一个

好东西 看看

于是James连夜新增回复recaptcha(bushi:ac01:

看看

@“叫我沈同学”#p155727 这种无害的管理组一般不管的:xhj06:

看看感谢

谢谢分享

同理:可以写个打开网页一键签到,获取到按钮,点击,并返回

@“houmusic”#p155754 这样子我干脆写个增强脚本得了,要不这样子吧,本主题点赞过10就写个试试

谢谢分享,正需要

@“[已注销]”#p155757 写一个增强版 功能齐活的 整

@“[已注销]”#p155757 4个赞了

来了

感谢分享 :xhj06:

厉害

抽奖自动回复,nodeloc 增强脚本 求!!!!

支持一下

厉害厉害

厉害