Twitter Sidebar Repliesが動かないので勝手に直した&日本語化(2009/05/12版)

TwitterのReplies(返信)がサイドバーに表示されていると、超便利!なんだけど、TwitterのWebページが変わりまくりんぐというかURLが変わりまくりんぐなので「*Twitter Sidebar Replies for Greasemonkey」が全然動かないので勝手に直した。
ついでに英語表記を日本語表記に直した。

以下直したもの。あ、最初のUserScriptは直していません。

// ==UserScript==
// @name           Twitter Sidebar Replies
// @namespace      http://sournote.org/scripts
// @description    Shows replies to a user on that user's Twitter page
// @include        http*://twitter.com/*
// @date           2009-02-26
// @version        1.2
// @GM_version     0.8.20080609.0
// ==/UserScript==


GM_TUR = {
	un : "",
	init : function()
	{
		GM_addStyle("p.GM_TUR_p { border-bottom: 1px dashed #aaa; padding: 5px 0px; }");
		GM_addStyle("p.GM_TUR_p em { color: #555; }");

		var loc = (window.location+"").split("/");
		if( loc[3] == "" || loc[3].match(/^#/) )
			{
			GM_TUR.un = document.getElementById("me_name").innerHTML.replace(/^\s+|\s+$/g,"");
			}
		else
			{
			GM_TUR.un = loc[3];
			}

		if( GM_TUR.un != "" )
		{
			GM_xmlhttpRequest({
				method:"GET",
				url:"http://search.twitter.com/search.json?q=%40"+GM_TUR.un,
				//Uncomment the following (and comment out the previous) if you _only_ want messages that would show on the @Replies page
				//url:"http://search.twitter.com/search.json?to="+GM_TUR.un,
				headers:{
					"User-Agent":"Mozilla/5.0",
					"Accept":"text/json"
				},
				onload:GM_TUR.handle
			});
		}
	},

	handle : function(response)
	{
		var r = eval("("+response.responseText+")");

		if( r.results && r.results.length > 0 )
		{
			var il, rx, h, ds = document.getElementById("side").appendChild(document.createElement("div"));
			ds.className = "section last";
			h = ds.appendChild(document.createElement("div"));
			h.className = "section-header";
			h.appendChild(document.createElement("h1")).appendChild(document.createTextNode("@"+ GM_TUR.un));
			
			for( var i=0; i < r.results.length; i++ )
			{
				rx = new RegExp("^[@]"+GM_TUR.un);
				il = "<p class='GM_TUR_p'><a href='http://twitter.com/"+r.results[i].from_user+"'>"+
					r.results[i].from_user+"</a>: "+
					r.results[i].text+" <em>"+GM_TUR.tt(new Date(r.results[i].created_at))+"</em></p>";
				ds.innerHTML += il;
			}
		}
	},

	tt : function(dt)
	{
		var nw = new Date(), df = nw - dt, dm = Math.floor(df/60000), dh = Math.floor(dm/60), at = new Date(dt);
		if( dm <= 0 )	{ return "ほんのさっき"; }
		if( dm < 60 )	{ return dm +" 分前"; }
		if( dh < 24 )	{ return "約 " + dh + " 時間前"; }
		if( (nw.getDate() - dt.getDate()) == 1 )	{ return "1 日前"; }
		at.setDate(at.getDate() + 1);
		nw.setDate(nw.getDate() + 1);
		if( (nw.getDate() - at.getDate()) == 1 )	{ return "1 日前"; }
		if( dt.getHours() == 0 ) nw = "午前 " + "12:"+dt.getMinutes();
		else if( dt.getHours() < 12 ) nw = "午前 " + dt.getHours()+":"+dt.getMinutes();
		else nw = "午後 " + (dt.getHours()-12)+":"+dt.getMinutes();
		return nw + ["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"][dt.getMonth()] + " " + dt.getDate();
	}

};

GM_TUR.init();


ダウンロードは↓こちらからどうぞー
http://dtp.jdash.info/documents/twitter_sidebar_replies_japanese.user.js