TwitterのタイムラインをユーザでフィルタするGreaseMonkeyスクリプト

多分誰かが作ってるだろうけど

機能

指定したユーザの発言のみを表示します。この人達の発言だけはどうしても読みたいって場合に使えます。

ライセンス

id:send氏のこちらスクリプトをほとんど流用しています。


コードとかのライセンスは、基本的にどうでもいいんだけど、どうしても気になる人は、MITとGPL/LGPL v2のうちお好きな方をどうぞ。

注意

古いAutoPagerizeを使っている場合は258行目と259行目を入れ替えてください。
version: 0.0.19 2007-12-19T18:26:22+09:00

    this.addPage(htmlDoc, page)
    AutoPager.apply_filters(page)

        ↓

    AutoPager.apply_filters(page)
    this.addPage(htmlDoc, page)

addPageしてからapply_filtersするのはおかしいよね。逆だよね。

ソース

// ==UserScript==
// @name           TwitterUserFilter
// @namespace      http://twitter.com/
// @include        http://twitter.com/*
// ==/UserScript==
// 使わせていただきました。
// http://d.hatena.ne.jp/send/20071115/p1


(function (){

var allow_users = [
	 "Yuyarin", "etc...",
]

var filter = function(nodes)
{
	var f =
	{
		anouncement : function (context)
		{
			var path = '//td[@class="content"]/strong/a';
			var elems = document.evaluate(path, context, null, 7, null);
			
			for(var e = 0 ; e < elems.snapshotLength; e++)
			{
				var elem = elems.snapshotItem(e);
				var user = elem.firstChild.data;
				var doesDisplay = false;
				for each (var allow_user in allow_users)
					if(user != null && user.indexOf(allow_user)>=0)
						doesDisplay = true;
				if(!doesDisplay)
					elem.parentNode.parentNode.parentNode.style['display'] = 'none';
			}
		},
	};
	for each (var node in nodes) 
		for each (var func in f) func(node);
}

filter([document]);

if(window.AutoPagerize!=undefined){
	window.AutoPagerize.addFilter(filter);
}

})();

これから

  • AutoPagerizeみたいにTwitterの画面上でフィルタのON/OFFができるようにする。
  • フィルタを何種類か作れるようにして切り替えもできるようにする。