您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Greasy Fork is available in English.
Discuz/phpwind论坛 基于ID/标题关键词 屏蔽帖子
// ==UserScript== // @name ✱ Discuz/phpwind论坛 基于ID/标题关键词 屏蔽帖子 // @namespace lisanye // @description Discuz/phpwind论坛 基于ID/标题关键词 屏蔽帖子 // @include */viewthread.php* // @include */thread* // @include */redirect.php* // @include */forum-redirect-tid* // @include */forum-viewthread-tid* // @include */forum.php?mod=viewthread* // @include */forum.php?mod=forumdisplay* // @include */forum-*.html // @include https://www.firefox.net.cn/* // @version 20180213 // @grant GM_addStyle // ==/UserScript== // 该脚本最好配合Discuz论坛自带的“黑名单”“提醒筛选”和“消息屏蔽”,一起使用。 // 这样黑名单中的人,你既看不到他们的帖子,他们回复你时你也收不到通知(提醒筛选),他们给你发私信你也收不到(消息屏蔽)。完全彻底的眼不见为净。 // “黑名单”通常在这个地址:/home.php?mod=space&do=friend // “提醒筛选”通常在这个地址:/home.php?mod=spacecp&ac=privacy&op=filter “消息屏蔽”在这个地址:/home.php?mod=space&do=pm&subop=setting // 注:有些Discuz版本,系统消息和成员互动,即使选了针对单个人,也会变成全局,这种情况可以在F12的console中改请求字段,来实现“定向屏蔽” // 用户名(模仿下面的格式,只添加要屏蔽其帖子的用户名,两边用英文双引号括住,用英文逗号分隔) var dogs = new Array("wxcwhk", "goldsun0", "hh2"); // 主题帖标题 var dogtitles = new Array("签到", "水果乐园", "请进"); // 分类 var dogsubgroup = new Array("闲情帖", "菠菜帖"); blockAll(); var mo = new MutationObserver(function(allmutations) { blockAll(); }); mo.observe(document.querySelector('body'), {'childList': true,'characterData':false,'subtree': true}); function blockAll() { //discuz论坛 // 主题列表页 针对ID for (x in dogs) { dog = document.evaluate('//table/tbody[tr[1]//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('//*[starts-with(@id, "post")]/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++) { 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 dogsubgroup) { dog = document.evaluate('//table/tbody[tr[1]/th[1]/em/a[contains(text(),"' + dogsubgroup[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 = ""; } } } //phpwind // 主题列表页 针对ID for (x in dogs) { dog = document.evaluate('//div[@class="thread_posts_list"]//tr//p[@class="info"][contains(., "楼主:' + 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('//td[@class="subject"]/p[@class="info"][contains(., "楼主:' + 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 = ""; } } } } GM_addStyle(`#hiddenpoststip { display: none !important; }`);