dalin 发表于 2006-6-26 22:16:18

一个BT的插件

这两天发现FF有一个插件,greasemonkey,很牛X,可以利用它自己再弄出FF插件来,今晚闲着没事,俺就弄了一个,功能是:可以过滤公社某些人在水园发的帖子。当然,过滤某人在公社其它所有版发的帖子也是可以的(不过滤回复)。

// Ignore
// version 0.1 BETA!
// 2006-06-26
// Copyright (c) 2006, dalin
// Released under the GPL license
// http://www.gnu.org/copyleft/gpl.html
//
// --------------------------------------------------------------------
//
// This is a Greasemonkey user script.
//
// To install, you need Greasemonkey: http://greasemonkey.mozdev.org/
// Then restart Firefox and revisit this script.
// Under Tools, there will be a new menu item to "Install User Script".
// Accept the default configuration and install.
//
// To uninstall, go to Tools/Manage User Scripts,
// select "Ignore", and click Uninstall.
//
// --------------------------------------------------------------------
// ==UserScript==
// @name          Ignore
// @namespace   http://dalin.linuxsky.net
// @description   to ignore someone's post in Shuiyuan
// @include       http://linuxfans.org/nuke/modules.php?name=Forums&file=viewforum&f=1
// @include       http://linuxfans.org/nuke/modules.php?name=Forums&file=viewforum&f=1&*
// @include       http://www.linuxfans.org/nuke/modules.php?name=Forums&file=viewforum&f=1
// @include       http://www.linuxfans.org/nuke/modules.php?name=Forums&file=viewforum&f=1&*
// ==/UserScript==

var allTables,theTable,thisLink,allSpans,thisSpan;
var toBeIgnored;
toBeIgnored="";//这里填入你想忽略的那个人的ID就行了,比如dalin。
allTables = document.getElementsByTagName('table');

allTables = document.evaluate(
   '//table[@class]',
   document,
   null,
   XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,
   null);
   
for(i=0;allTables.snapshotLength; i++){
        theTable =allTables.snapshotItem(i);
       
        allSpans=document.evaluate(
                        "//span[@class='name']",
                        theTable,
                        null,
                   XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,
                   null);
                  
        for(j=0;j<allSpans.snapshotLength; j++){
        thisSpan=allSpans.snapshotItem(j);
           thisLink = thisSpan.getElementsByTagName('a');
           if(thisLink[0].innerHTML == toBeIgnored){
                   thisSpan.parentNode.parentNode.innerHTML='';
           }
        }
}       
怎样装greasemonkey和用户脚本俺就不多说了,你可以试试效果。
实际上,这个的实际意义不大。
对我来说,实际意义更大的是把“单反”过滤掉,不过这太容易实现了,达不到学习写greasemonkey脚本的目的。
进一步目标是把回复也给过滤了,依然是没有啥实用意义……

npcomet 发表于 2006-6-26 22:31:01

这么强

小青^-^ 发表于 2006-6-27 01:06:53

终于可以把单反过滤掉了 :lol:

dalin 发表于 2006-6-27 11:05:52

要过滤单反的脚本?
来了~~

// ==UserScript==
// @name          anti-DSLR
// @namespace   http://dalin.linuxsky.net
// @description   filter DSLR in the page
// @include       *
// ==/UserScript==

var re = /单反|dslr/gi; //要添加其它要过滤的,直接加进去就行了中间用|(或符号)隔开就行了
var newString = "大H疯了";//将被替换成什么
var allPosts,post;
allPosts = document.evaluate(
   "//span[@class='postbody']|//span[@class='postdetails']|//span[@class='topictitle']|//td[@class='quote']",
   document,
   null,
   XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,
   null);

for(i=0;i<allPosts.snapshotLength;i++){
        post = allPosts.snapshotItem(i);
        post.innerHTML = post.innerHTML.replace(re,newString);
}


因为用了中文,所以注意保存为utf-8格式。

狂客 发表于 2006-6-27 11:18:06

哈哈~~~强!
应该授精 :mrgreen:

fox_eagle2003 发表于 2006-6-27 11:33:12

想起troll的id:seamonkey

fox_eagle2003 发表于 2006-6-27 11:33:50

哈哈~~~强!
应该授精 :mrgreen:
受精? 8O8O

狂客 发表于 2006-6-27 11:50:31

dalin 加油, 写个完整的屏蔽插件, 好让我眼不见心不烦.

npcomet 发表于 2006-6-27 11:56:39

哈哈~~~强!
应该授精 :mrgreen:
受精? 8O8O
页: [1]
查看完整版本: 一个BT的插件