深暗幽狼 发表于 2023-3-8 03:14:37

【沙场蔷薇】快速查看自己有没回过帖子(手机也适用)

本帖最后由 深暗幽狼 于 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 03:19:59

[ 本帖最后由 user_login 于 2023-3-8 12:31 编辑 ]\n\n

额 你竟然发帖了
破戒了

复制后在第三行,
修改 @Name 为 @name,就能使用了。
即第三行替换为:
// @name                Am_I_Replied

不影响使用的小bug:
在编辑回帖之后会错误显示没有回过帖子,
下一次进来仍能正确显示。


PUCK 发表于 2023-3-8 03:27:36

一个月水了3000贴,慢慢水不动以后准备30贴领低保养老了

娱乐法师火布偶 发表于 2023-3-8 03:28:23

感谢教程,已经添加成功了,第三行代码有一点小问题,修改一下就成功了

sakura2002 发表于 2023-3-8 03:30:24

感谢教程,妈妈再也不用担心重复回帖了

164895785 发表于 2023-3-8 03:32:25

我按照教训试验失败;P发现好几行BUG(不过我没学过编程也没办法解决……

比如说59行的showError函数直接未被定义……

轮回2L 发表于 2023-3-8 03:34:34

额,自己把第三行uid改了后,还是提示脚本无效来着{:6_166:}

Zeperion 发表于 2023-3-8 03:44:11

居然舍得发帖了,终于破处了吧{:6_185:}

awooooo 发表于 2023-3-8 03:44:33

之前很怕重复回帖,每次都要一楼一楼查,现在不用了{:6_167:}

芥末沙拉 发表于 2023-3-8 03:48:40

测试一下能不能用惹


可以诶 不用多点一下真的很方便惹

上树 发表于 2023-3-8 03:50:28

楼主竟然发帖了{:6_194:}等会看看能不能用

季夏的呆橘 发表于 2023-3-8 05:06:22

:'(感觉自己好蠢 2个方括号的内容 看不懂 尝试了好多次 失败:'(

ga2006024244 发表于 2023-3-8 05:25:45

好方便
話說我複製代碼顯示無效.....

發現跟那個腳本網站安裝的代碼差一行...
我就把樓主的16.17行貼在安裝的16那就可以了

黑达克 发表于 2023-3-8 05:32:11

目前是只回最新帖子,所以也比较少担心回帖重复的问题,
不过相信日后一定能派上用场的。
谢谢分享!

silencedonkey 发表于 2023-3-8 05:32:33

居然可以这么方便,各种论坛辅助插件还会远么;P

zmmmm_ 发表于 2023-3-8 06:24:47

时灵时不灵,到底是不是零啊?{:4_89:}感谢大佬的教程。
手机党点的太多太快好像就是时灵时不灵{:4_95:}
只用gamemale论坛可以把11~15行删了。(都是些没看过的网站)
41行可以把“__CURRENT_UID”改成自己的ID(只玩gm且只玩一个账号的话)

南洋水镜 发表于 2023-3-8 06:30:17

已经被你的专业技能和敬业态度多折服,佩服的不要不要。话说有比这个底层架构功能更强大的吗

Morphyus 发表于 2023-3-8 06:42:50

{:6_188:} 天呐,这是什么科技,赶紧码起来

land动了 发表于 2023-3-8 06:49:30

妈呀,优老师这么好,太棒了,这简直就是雪中送炭啊

大脑夫 发表于 2023-3-8 07:33:52

哈哈之前老是不记得有没有回过这个好方便呀!感谢干货满满
页: [1] 2 3 4 5 6 7 8 9
查看完整版本: 【沙场蔷薇】快速查看自己有没回过帖子(手机也适用)