阅读:6957回复:29
如何屏蔽卡饭论坛某个ID的帖子「主贴+跟贴」
如何屏蔽卡饭论坛某个ID的帖子「主贴+跟贴」求方法
|
|
1楼#
发布于:2015-07-03 20:52
難道是因為在卡飯推“如何屏蔽卡飯論壇”的帖子被刪了?
|
|
|
2楼#
发布于:2015-07-03 20:54
kafan其实没什么必要去 我感觉
|
|
3楼#
发布于:2015-07-03 21:17
用 xpath 选择
rip yarip 或者用 privoxy 等处理页面然后 css 隐藏 |
|
|
4楼#
发布于:2015-07-03 21:32
写个 user script?
把跟 ID 有关的贴子全部移除掉。 |
|
|
5楼#
发布于:2015-07-03 21:34
是的 全部移除掉 @kalxd
|
|
6楼#
发布于:2015-07-03 23:46
已删
|
|
7楼#
发布于:2015-07-03 23:51
已删
|
|
8楼#
发布于:2015-07-04 04:38
这。。。怎么讨论这么严肃的问题了
|
|
9楼#
发布于:2015-07-04 09:15
|
|
|
10楼#
发布于:2015-07-04 10:51
|
|
|
11楼#
发布于:2015-07-04 11:03
|
|
|
12楼#
发布于:2015-07-04 11:42
鉴于某些 id 的发言
还是有必要给本论坛撸个油猴脚本的 代码中以版主 fang5566 和我为例 请自行修改需要屏蔽的 uid // ==UserScript== // @name yan er dao ling@firefox.net.cn // @namespace firefox.net.cn // @match https://www.firefox.net.cn/* // @version 1 // @license GPLv3+ // @grant none // ==/UserScript== (function(){ let blocklist = [ 3719, // fang5566 23968, // aaaa007cn ]; // https://developer.mozilla.org/docs/Using_XPath function docEvaluateArray (expr, doc, context, resolver) { var i, result, a = []; doc = doc || (context ? context.ownerDocument : document); resolver = resolver || null; context = context || doc; result = doc.evaluate(expr, context, resolver, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null); for(i = 0; i < result.snapshotLength; i++) { a[i] = result.snapshotItem(i); } return a; } let removeNode = node => { if (node) node.parentNode.removeChild(node); } let removeNodes = nodes => { for (let n of nodes) removeNode(n); } let hideThreadByUID = uid => { let threads = docEvaluateArray(`//div[@class="thread_posts_list"]/table[@id="J_posts_list"]//td[@class="author"]/a[@data-uid="${uid}"]/../..`); removeNodes(threads); } let hidePostByUID = uid => { let posts = docEvaluateArray(`//div[@id="J_posts_list"]//table[@class="floor_table"][tbody/tr/td[@class="floor_left"]//div[@class="name"]/a[@data-uid="${uid}"]]`); for (let p of posts) { removeNode(p.querySelector('div.face')); removeNode(p.querySelector('div.signature')); let content = p.querySelector('div.editor_content'); content.parentNode.appendChild(document.createTextNode('*** \u4F5C\u8005\u7684\u4E00\u5207\u4E0D\u5B58\u5728\u4E8E\u4F60\u7684\u548C\u8C10\u4E16\u754C ***')); removeNode(content); } } let blockbyuid = () => { document.removeEventListener("DOMContentLoaded", blockbyuid); for (let uid of blocklist) { hideThreadByUID(uid); hidePostByUID(uid); } }; document.addEventListener("DOMContentLoaded", blockbyuid); }()) |
|
|
13楼#
发布于:2015-07-04 12:19
12楼#的脚本很好啊 ,能弄个卡饭的不
|
|
14楼#
发布于:2015-07-04 12:22
再改改就是卡饭了
代码中以 @pcxfirefox 为例 ![]() http://bbs.kafan.cn/forum-248-1.html 请自行修改 id 列表 // ==UserScript== // @name yan er dao ling@bbs.kafan.cn // @namespace bbs.kafan.cn // @match http://bbs.kafan.cn/* // @version 1 // @license GPLv3+ // @grant none // ==/UserScript== (function(){ let blocklist = [ 'pcxfirefox', ]; // https://developer.mozilla.org/docs/Using_XPath function docEvaluateArray (expr, doc, context, resolver) { var i, result, a = []; doc = doc || (context ? context.ownerDocument : document); resolver = resolver || null; context = context || doc; result = doc.evaluate(expr, context, resolver, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null); for(i = 0; i < result.snapshotLength; i++) { a<span style="font-style: italic;"> = result.snapshotItem(i); } return a; } let removeNode = node => { if (node) node.parentNode.removeChild(node); } let removeNodes = nodes => { for (let n of nodes) removeNode(n); } let hideThreadByID = id => { let threads = docEvaluateArray(`//table[@id="threadlisttableid"]/tbody[tr/td[@class="by"][1][cite[text()="\n${id}"]|cite[text()="${id}"]]]`); removeNodes(threads); } let hidePostByID = id => { let posts = docEvaluateArray(`//div[@id="postlist"]//table[starts-with(@id, "pid")][tbody/tr/td/div[starts-with(@id, "favatar")]//div[@class="authi"][text()="${id}\n"]]`); for (let p of posts) { removeNode(p.querySelector('div.avatar')); let content = p.querySelector('td[id^="postmessage_"]'); let newtd = document.createElement('td'); newtd.className = 't_f'; newtd.appendChild(document.createTextNode('*** \u4F5C\u8005\u7684\u4E00\u5207\u4E0D\u5B58\u5728\u4E8E\u4F60\u7684\u548C\u8C10\u4E16\u754C ***')) content.parentNode.appendChild(newtd); removeNode(content); } } let blockbyid = () => { document.removeEventListener("DOMContentLoaded", blockbyid); for (let id of blocklist) { hideThreadByID(id); hidePostByID(id); } }; document.addEventListener("DOMContentLoaded", blockbyid); }()) 卡饭的页面结构也是醉了 大概是 discuz 的原因? 不去卡饭,也没有卡饭 id 不知道有没有遗漏的 这还只是个雏形 由于 xpath 的限制 在极端场合下,比如 id 包含单引号、双引号、同时包含单双引号 需要进一步 hack 另外还有必要把 id 列表移出脚本本身 再加上设置 id 列表的 UI 改进余地还很大 不过先这样吧 |
|
|
上一页
下一页