【沙场蔷薇】快速查看自己有没回过帖子(手机也适用)
本帖最后由 深暗幽狼 于 2024-2-19 16:33 编辑原帖:【沙场蔷薇】檢查自己是否回過貼的小工具-由ChatGPT編寫
此方式需要点击书签,想起我在另一个论坛看到有人写好了篡改猴脚本,可以很直观地在帖内栏查看。
本以为不适用本论坛,需要重新编写,经测试只需要再加上gm论坛的域名就能直接用了(同一个开源底层框架--Discuz)。
效果预览:
行内显示已回复「关」
行内显示已回复「开」
显示样式的开关在此切换
其原理就是常用到的「只看该作者」。
隐藏技巧:
在活动帖里若查找不到自己的楼层,可以直接点击已回复的提示,秒查找到:
https://pic.imgdb.cn/item/65d30ccd9f345e8d0361c217/Am_I_Replied.gif
末尾的UID替换成已有回复的任意UID,即可帮ta快速查找到/查找到ta的回复:
https://pic.imgdb.cn/item/65d30e809f345e8d03673c3f/Am_I_Replied2.gif
Tampermonkey官网:https://www.tampermonkey.net
微软Edge外接程序直达:https://microsoftedge.microsoft. ... bahmlepeloendndfphd
谷歌Chrome应用商店直达(可能需要魔法):https://chrome.google.com/websto ... ldmpobfkfo?hl=zh-CN
脚本:https://greasyfork.org/zh-CN/scripts/453325-am-i-replied(感谢其乐论坛@chr_编写)
警告:请勿随意安装来路不明的脚本,可能造成安全隐私泄露风险。如担心我在此贴出的代码可能被夹带私货,可自行去前往脚本原链处安装并手动添加论坛域名。
帖子列表一眼查询回帖:脚本——页面回帖检测(推荐配合使用)
@Name
1.安装Tampermonkey浏览器扩展插件
2.安装完后会自动跳转官网页面表示安装成功,不用管。
此处需留意浏览器的右上角扩展程序,若什么都没有,需固定出来,或直接点击油猴的图标/名字也可。
3.点击「添加新脚本…」。
4.把代码复制并粘贴(可全选删除它已预放的Metadata块,再粘贴),最后点选左上角「文件」→「保存」(快捷键为Ctrl+S)。
5.保存后会自动识别脚本的Metadata块,默认是启用的,不再需要其他额外步骤。
代码非本人原创和编写,已贴出来源,如遭遇bug,个人并不专业,可能无法修复,望谅解(
其他浏览器安装插件请自行尝试,步骤是一致的。
论坛自动识别第三行的艾特Name导致自动添加了该用户url(还真有人的ID取这个啊),请各位村民保存提示出错误时,查看2楼的解释。
以下代码应该已经可以直接复制粘贴不会再出错了……
// ==UserScript==
// @name:zh-CN 我回过贴了吗
// @name Am_I_Replied
// @namespace https://blog.chrxw.com
// @supportURL https://blog.chrxw.com/scripts.html
// @contributionURL https://afdian.net/@chr233
// @version 1.7
// @description 判断是否已经回过贴
// @description:zh-CN判断是否已经回过贴
// @author Chr_
// @include https://www.gamemale.com/forum.php?*
// @include https://www.gamemale.com/thread*
// @license AGPL-3.0
// @icon https://blog.chrxw.com/favicon.ico
// @grant GM_registerMenuCommand
// ==/UserScript==
(async () => {
"use strict";
const inlineMode = window.localStorage.getItem("air_inline") ?? "关";
GM_registerMenuCommand(`行内显示已回复: 【${inlineMode}】`, () => {
window.localStorage.setItem(
"air_inline",
inlineMode === "开" ? "关" : "开"
);
window.location.reload();
});
if ((location.pathname === "/forum.php" && !location.search.includes("tid")) || location.search.includes("authorid")) {
return;
}
const isDiscuz = typeof discuz_uid != "undefined";
const userId = isDiscuz ? discuz_uid : __CURRENT_UID;
const testUrl = location.href.split("#") + (location.search ? `&authorid=${userId}` : `?authorid=${userId}`);
fetch(testUrl)
.then((res) => res.text())
.then((html) => {
const replied = !(html.includes("未定义操作") || html.includes("ERROR:"));
const text = replied ? "✅已经回过贴了" : "❌还没回过贴子";
const tips = document.createElement("a");
tips.textContent = text;
if (replied) {
tips.href = testUrl;
} else {
tips.addEventListener("click", () => {
if (isDiscuz) {
showError("❌还没回过贴子");
}
else {
alert("❌还没回过贴子");
}
});
}
if (isDiscuz) {
const btnArea = inlineMode !== "开" ?
document.querySelector("#pgt") :
document.querySelector("#postlist td.plc div.authi>span.none") ??
document.querySelector("#postlist td.plc div.authi>span.pipe");
if (btnArea === null) {
return;
}
if (btnArea.tagName === "SPAN") {
const span = document.createElement("span");
span.textContent = "|";
span.className = "pipe";
const bar = btnArea.parentNode;
bar.insertBefore(span, btnArea);
bar.insertBefore(tips, btnArea);
} else {
btnArea.appendChild(tips);
}
} else {
const btnArea = document.querySelector("#m_nav>.nav");
const anchor = btnArea.querySelector("div.clear");
if (btnArea === null || anchor === null) {
return;
}
tips.className = "nav_link";
btnArea.insertBefore(tips, anchor);
}
});
})();
经个人测试,安卓手机需要借助Via或其他带脚本功能的浏览器也可直接使用。
IOS请自行寻找能带脚本功能的浏览器。
步骤是一致的,复制粘贴一气呵成。
1.去设置里找到脚本选项
2.右上角“+”添加脚本
3.把代码复制粘贴(依旧是可先删除全部的Metadata块再粘贴)并右上角保存即可成功。
效果预览
[ 本帖最后由 user_login 于 2023-3-8 12:31 编辑 ]\n\n
额 你竟然发帖了
破戒了
复制后在第三行,
修改 @Name 为 @name,就能使用了。
即第三行替换为:
// @name Am_I_Replied
不影响使用的小bug:
在编辑回帖之后会错误显示没有回过帖子,
下一次进来仍能正确显示。
一个月水了3000贴,慢慢水不动以后准备30贴领低保养老了 感谢教程,已经添加成功了,第三行代码有一点小问题,修改一下就成功了 感谢教程,妈妈再也不用担心重复回帖了 我按照教训试验失败;P发现好几行BUG(不过我没学过编程也没办法解决……
比如说59行的showError函数直接未被定义…… 额,自己把第三行uid改了后,还是提示脚本无效来着{:6_166:} 居然舍得发帖了,终于破处了吧{:6_185:} 之前很怕重复回帖,每次都要一楼一楼查,现在不用了{:6_167:} 测试一下能不能用惹
可以诶 不用多点一下真的很方便惹
楼主竟然发帖了{:6_194:}等会看看能不能用 :'(感觉自己好蠢 2个方括号的内容 看不懂 尝试了好多次 失败:'( 好方便
話說我複製代碼顯示無效.....
發現跟那個腳本網站安裝的代碼差一行...
我就把樓主的16.17行貼在安裝的16那就可以了 目前是只回最新帖子,所以也比较少担心回帖重复的问题,
不过相信日后一定能派上用场的。
谢谢分享! 居然可以这么方便,各种论坛辅助插件还会远么;P 时灵时不灵,到底是不是零啊?{:4_89:}感谢大佬的教程。
手机党点的太多太快好像就是时灵时不灵{:4_95:}
只用gamemale论坛可以把11~15行删了。(都是些没看过的网站)
41行可以把“__CURRENT_UID”改成自己的ID(只玩gm且只玩一个账号的话)
已经被你的专业技能和敬业态度多折服,佩服的不要不要。话说有比这个底层架构功能更强大的吗 {:6_188:} 天呐,这是什么科技,赶紧码起来 妈呀,优老师这么好,太棒了,这简直就是雪中送炭啊 哈哈之前老是不记得有没有回过这个好方便呀!感谢干货满满