日付をタグとして入力する。

del.icio.usには日付ごとにポストを管理できない。さらには、日付が日本時間ではない。そこでポスト時にタグに今日の日付を自動入力するようなuserjavascriptを作ってみた。Opera用。

if(location.href.match(/http:\/\/del.icio.us\/\w*(\/\w*(%2B\w*)*)?\?(v=\d\&)?url=/))
	document.addEventListener('load',addDateTag,false);
	
function addDateTag() {
	var mary = new Array('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec');
	var c = new Date();
	
	y = c.getYear();
	ry =  (y < 2000) ? y + 1900 : y;
	m = c.getMonth();
	d = c.getDate();
	

	lm = mary[m];
	
	exit_tag = document.getElementById('tags').value;
	tod = ry + '-' + lm + '-' + d;

	if(!exit_tag.match(/\d{4}-[A-Za-z]{3}-\d\d/))
		swap(tod);
}

urlをマッチさせる正規表現があってるかどうかが心配。


これで,http://del.icio.us/higeorange/2006-Feb-26のリンクで2/26にポストしたものが見れるようになる。


これははてなhttp://www.hatena.ne.jp/1140864024の質問を見て考えてみた。

追記

問題発生、一度登録したものを編集しようとして、既に日付のタグが入ってる場合、それを消してしまう。また、初めて投稿したときと違う日に編集しようとすると、日付タグが付け足されて日付タグが2つになってしまう。

てことで修正。

日付タグを付けることの問題点

タグが増殖しつづける。解決策としては年、月、日を別のタグとして登録するのもひとつの手ではあるなと思う。そうすれば http://del.icio.us/higeorange/2006+Feb+26 って感じのURLでアクセスできる。

年、月、日を別のタグとして登録する場合
if(location.href.match(/http:\/\/del.icio.us\/\w*(\/\w*(%2B\w*)*)?\?(v=\d\&)?url=/))
	document.addEventListener('load',addDateTag,false);
	
function addDateTag() {
	var mary = new Array('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec');
	var c = new Date();
	
	y = c.getYear();
	ry =  (y < 2000) ? y + 1900 : y;
	m = c.getMonth();
	d = c.getDate();
	
	lm = mary[m];
	
	exit_tag = document.getElementById('tags').value;
	tod = ry + '-' + lm + '-' + d;

	if(!exit_tag.match(/\d{4}\s[A-Za-z]{3}\s\d\d/))
		swap(ry+' '+lm+' '+d);
}

swap()をタグごとにしてやったみたがエラーがでてしまったので上のようにしてみた。

修正 03/07 18:50

urlマッチで"v="の後の数字を2に限定していたが3も存在したようなので数字がくればマッチするように修正.
まぁ別に"(\v=\d\&)?"をとっても問題ないとは思う."?"つけてることだし.