去评论
dz插件网

利用油猴插件的脚本版列表页屏蔽某飞版

逝水年华
2022/08/10 08:42:21
继上一贴某飞CEO拉黑屏蔽活在自己世界是如何操作的,网友说是屏蔽动态私信类的,不是屏蔽帖子

睡前抽空谷歌了一下discuz论坛如何屏蔽指定用户的帖子,搜索到了一篇依托油猴插件的脚本版,原帖子

https://www.locmjj.com/80.html

所以需要浏览器安装好油猴插件再添加脚本

有兴趣朋友可以去看一下,以下是我经过优化版的
  1. // ==UserScript== // @name           4414Discuz论坛 基于ID/标题关键词 屏蔽帖子 // @namespace      4414屏蔽某飞 // @description    根据用户名、关键词,屏蔽帖子 // @include        */viewthread.php* // @include        */thread* // @include        */thread-*.html // @include        */redirect.php* // @include        */forum-redirect-tid* // @include        */forum-viewthread-tid* // @include        */forum.php?mod=viewthread* // @include        */forum.php?mod=forumdisplay* // @include        */forum-*.html // @version       2022/8/9 // ==/UserScript== blockAll(); var mo = new MutationObserver(function(allmutations) {     blockAll(); }); mo.observe(document.querySelector('body'), {'childList': true}); function blockAll() {                 var dogs = new Array("飞飞CEO");    //要屏蔽的ID,写在这行,注意英文引号                 var dogtitles = new Array("火车头", "SEO"); //要屏蔽的标题关键字,写在这行,注意英文引号                 // 主题列表页 针对ID                 for (x in dogs) {                         dog = document.evaluate('//table/tbody[tr[1]/td[2]//cite/a[text()="' + dogs[x] + '"]]', document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);                         if (dog.snapshotLength) {                                 for (var i = 0, c = ""; i < dog.snapshotLength; i++) {                                         dog.snapshotItem(i).innerHTML = "";                                 }                         }                 }                 // 内容页 针对ID                 for (x in dogs) {                         dog = document.evaluate('//table/tbody[tr[1]/td[1]//a[text()="' + dogs[x] + '"]]', document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);                         if (dog.snapshotLength) {                                 for (var i = 0, c = ""; i < dog.snapshotLength; i++) {                                         //c = dog.snapshotItem(i).firstChild.childNodes[3].textContent.replace(/\s*/g, "").slice(0, 2);                                         //c = (Number(c) > 9) ? c + "楼" : c;                                         //dog.snapshotItem(i).innerHTML = "<font color='#999'><center>" + c + " " + dogs[x] + "</center></font>";                                         dog.snapshotItem(i).innerHTML = "";                                 }                         }                 }                 // 主题列表页 针对标题                 for (x in dogtitles) {                         dog = document.evaluate('//table/tbody[tr[1]/th[1]/a[contains(text(),"' + dogtitles[x] + '")]]', document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);                         if (dog.snapshotLength) {                                 for (var i = 0, c = ""; i < dog.snapshotLength; i++) {                                         dog.snapshotItem(i).innerHTML = "";                                 }                         }                 }                 // 不明                 for (x in dogs) {                         dog = document.evaluate('//table/tbody[tr[1]/td[1]/div[1]//font[text()="' + dogs[x] + '"]]', document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);                         if (dog.snapshotLength) {                                 for (var i = 0, c = ""; i < dog.snapshotLength; i++) {                                         c = String(dog.snapshotItem(i).firstChild.childNodes[3].textContent.match(/\d+#/)).replace(/#/, "楼");                                         dog.snapshotItem(i).innerHTML = "<b><center>c被屏蔽帖子 " + c + " <font color=red>" + dogs[x] + "</font></center></b>";                                         //dog.snapshotItem(i).innerHTML = "";                                 }                         }                 } }
列表页可以成功屏蔽指定id帖子、或指定关键字的帖子

但是内容页,我测试后回帖没有成功屏蔽,大概率是id所在标签没有正确,大家可以查看源代码修改

夜了,老婆催睡觉,没有时间慢慢排查,有兴趣朋友的自行复制研究