Hatena::Groupgeneration1991

gigi-net@G91

2009-05-07

[]Googleにサイト更新日をタグクラウドっぽく表示するGreasemonkeyスクリプトをジェバンニしてみた 20:34

http://gyazo.com/d358c529de5cd1f4ea55fdcc3b93a235.png

試しにエゴサーチするとこうなる。

ただ表示させるだけじゃおもしろくないので経過日数に応じて文字の大きさが変わります。

昨日辺りからはてブ界隈で話題になっていたので作ってみた。

Google検索の「&as_qdr=y15」オプションが便利だぞ - IDEA*IDEA 〜 百式管理人のライフハックブログ 〜

Google検索「&as_qdr=y15」をやってくれるアドオン&まとめ作ったよ!Firefoxアドオン「Google Date」 - かたにちからバット

ジェバンニが一晩で(ry



どうせ、多くの人が同じようなスクリプトを作ると思うので、適当に作った。

たぶん構想からコーディングまで30分ぐらいで終わった。

経過日数を算出するのにDateオブジェクトを始めて使ってみた。

それ以外は特に目新しいことはしていません。多分。


こんな手抜き作品でも良ければどうぞ。

ダウンロードはuserscript.orgから!

エラーが出て上げられないみたいなので自鯖に上げました。

Google Date



そういえば、Greasemonkeyカテゴリを新設してみた。

最近いろいろ作っているのに、専用のカテが無かったからなー。

だいぶ慣れてきたので、すらすら書けるようになってきました。

ソースコード

// ==UserScript==
// @name           Google Date
// @namespace      http://gigi-net.net
// @include        http://www.google.co.jp/search*
// ==/UserScript==
var url =location.href;

if(url.indexOf("&as_qdr=y15")==-1){
	location.href=url+"&as_qdr=y15";
}else{
//日付の部分を抽出
var dates =document.getElementsByTagName("span");
for(var i=0;i<dates.length;i++){
	if(dates[i].getAttribute("class")=="f std"){
		//正規表現で年月日を算出
		var date = dates[i].textContent.match(/\d+/g);
		var dateobj =new Date();
		dateobj.setYear(eval(date[0]));
		dateobj.setMonth(eval(date[1])-1);
		dateobj.setDate(eval(date[2]));
		//更新日の現在からの経過ミリ秒算出
		var ms = (new Date).getTime()-dateobj.getTime();
		var past =Math.floor(ms/1000/(60*60*24));
		var size =13+((365*1.5-past)/100)+"px";
		var bold =300+365*2-past;
		if(bold >600){
			bold =600;
		}else if (bold<100){
			bold =100;
		}
		dates[i].style.fontSize =size;
		//dates[i].style.fontWeight=bold;
	}
}
}// ==UserScript==
// @name           Google Date
// @namespace      http://gigi-net.net
// @include        http://www.google.co.jp/search*
// ==/UserScript==
var url =location.href;

if(url.indexOf("&as_qdr=y15")==-1){
	location.href=url+"&as_qdr=y15";
}else{
//日付の部分を抽出
var dates =document.getElementsByTagName("span");
for(var i=0;i<dates.length;i++){
	if(dates[i].getAttribute("class")=="f std"){
		//正規表現で年月日を算出
		var date = dates[i].textContent.match(/\d+/g);
		var dateobj =new Date();
		dateobj.setYear(eval(date[0]));
		dateobj.setMonth(eval(date[1])-1);
		dateobj.setDate(eval(date[2]));
		//更新日の現在からの経過ミリ秒算出
		var ms = (new Date).getTime()-dateobj.getTime();
		var past =Math.floor(ms/1000/(60*60*24));
		var size =13+((365*1.5-past)/100)+"px";
		var bold =300+365*2-past;
		if(bold >600){
			bold =600;
		}else if (bold<100){
			bold =100;
		}
		dates[i].style.fontSize =size;
		//dates[i].style.fontWeight=bold;
	}
}
}