fliter for @tsuda's RT

By rikuo Last update Nov 13, 2009 — Installed 171 times.

There are 1 previous version of this script.

// ==UserScript==
// @author         rikuo
// @name           fliter for @tsuda's RT
// @namespace      http://d.hatena.ne.jp/rikuo/
// @include        http://twitter.com/*
// @exclude        http://twitter.com/account/*
// @exclude        http://twitter.com/following*
// @exclude        http://twitter.com/followers*
// @exclude        http://twitter.com/*/following*
// @exclude        http://twitter.com/*/followers*
// ==/UserScript==

var _doc = document;
var query = 'descendant-or-self::li[contains(concat(" ",@class," ")," u-tsuda ") and descendant::span[contains(concat(" ",@class," ")," entry-content ") and starts-with(text(), "RT @" )]]';

var filter = function (doc){
	var node = xpath(doc, query);
	if(node.snapshotLength){
		for(var i=0,nl = node.snapshotLength; i < nl; ++i){
			var tweet = node.snapshotItem(i);
			var parent = tweet.parentNode;
			parent.removeChild(tweet);
		}
	}
}

var section = e('timeline').parentNode;

section.addEventListener('DOMNodeInserted',function(evt){
	var li = evt.target;
	if(li.className && li.className.match(/(mine|hentry)/i)){
		filter(li);
	}
}, false);

section.addEventListener('DOMNodeRemoved',function(evt){
	if(evt.target.parentNode.id.match(/heading/i)){
		filter(e('timeline'));
	}
}, false);

filter(e('timeline'));

function e(id){
	return _doc.getElementById(id);
}
function xpath(context, query){
	return _doc.evaluate(query, context, null,
		XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null
	)
}