他人のβ内

あるいは、体育館の裏。


<< 2005/05 >>
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31

 | 

2005年5月15日星期0

はてなダイアリーキーワードのステータスをRSSから切り出してCSVにするスクリプト 21:07 はてなダイアリーキーワードのステータスをRSSから切り出してCSVにするスクリプト - 他人のβ内 を含むブックマーク

Perl 5.8以上。XML木構造として解釈していないのは、はてな自身と同罪なのでツッコまないこと。

utf-8セーブのこと。ただしshift_jisに変換するあたりは各自のお好みで。

サーバに負荷をかけないように、濫用は慎みましょう。

#!/bin/perl
use IO::Socket;
use UTF8;
use Encode "from_to";
$|=0;
# usage: getcategory.pl <from to>
$from = $ARGV[0] || 0;
$to = $ARGV[1] || 20;

%catg = ("一般" => "NO", "読書" => "bo", "音楽" => "mu", "映画" => "mo", 
	"ウェブ" => "we", "コンピュータ" => "el", "動植物" => "al",
	"アニメ" => "ae", "食" => "fo", "スポーツ" => "sp", 
	"ゲーム" => "ga", "マンガ" => "co", "アイドル" => "id",
	"地理" => "ge", "アート" => "ar", "サイエンス" => "sc", 
	"はてな" => "ha", "はてなダイアリークラブ" => "cl",
	"削除予定キーワード" => "de");

for ($i=$from; $i<$to; $i+=20) {
    $socket = IO::Socket::INET->new (PeerAddr => "d.hatena.ne.jp:80", TimeOut=>5);
    $url = "keywordlist?of=$i&mode=rss";
    print $socket "GET /$url HTTP1.1\r\n";
    print $socket "User-Agent: hand-made robot in perl by another@hatena.ne.jp\r\n";
    print $socket "Connection: Keep-Alive\r\n\r\n";
    while (<$socket>) {
	if (m|\?kid=(\d+)</link>$|) {
    	    $kid=$1; if ($done[$kid]) { next; } else { $done[$kid] = 1; }
	    $_=<$socket>; 
	    $word=$1 if(m|<description>(.+)</description>|); 
	    $word='"'.$word.'"' if $word =~ /,/;
	    $_=<$socket>; 
	    if (m|<dc:date>(.+)</dc:date>|) {
		$odate = $1;
		$odate =~ /(\d{4})-(\d\d)-(\d\d)T(\d\d):(\d\d):(\d\d)\+09:00/;
		$date = "$1$2$3T$4$5$6";
	    }
	    $_=<$socket>; 
	    $category=$1 if (m|<dc:subject>(.+)</dc:subject>|);
	    $_=<$socket>;
	    $lscore=$1 if (m|<hatena:score>(.+)</hatena:score>|);
	    $_=<$socket>;
	    $cscore=$1 if (m|<hatena:contentscore>(.+)</hatena:contentscore>|);
	    $_=<$socket>; 
	    $ruby=$1 if (m|<hatena:furigana>(.+)</hatena:furigana>|);
	    # 凡例:
	    #更新時刻,kid,リンクスコア,内容スコア,カテゴリ(の勝手につけた略称),キーワード名,読み仮名
	    $o = sprintf("%s,%6d,%3d,%3d,%s,%s,%s\n",
		   $date, $kid, $lscore, $cscore, $catg{$category}, $word, $ruby);
	    from_to($o, 'utf-8', 'shift_jis');
	    print $o;
	}
    }
    sleep(1); # to prevent overloading
}

2005年5月9日星期1

障害報告 22:05 障害報告 - 他人のβ内 を含むブックマーク

2005年5月3日から7日までのキーワードを含む日記が表示されていない状態になっています(例: http://d.hatena.ne.jp/keyword/%b8%e1%c1%b0%cd%cd?kid=107936など)。対処をお願い申し上げます >d: id: hatenadiary様。

(22:13追記: 今改めて見たところ、直っていましたので取り下げます。)

トラックバック - http://beta.g.hatena.ne.jp/another/20050509

2005年5月5日星期4

障害報告(に現行のはてなアイデアを使う気にはちょっとなれないのでこちらで) 10:16 障害報告(に現行のはてなアイデアを使う気にはちょっとなれないのでこちらで) - 他人のβ内 を含むブックマーク

キーワードの新規登録時にappend情報が記録されない異常が多発しております(具体的には、d:keyword:風水害d:keyword: 橋本敬史d:keyword:紙屋研究所など。左記のキーワードにはいずれも私が手を加えていますが登録者ではありません)。調査と対応をお願い申し上げます。>d:id:hatenadiary

トラックバック - http://beta.g.hatena.ne.jp/another/20050505

2005年5月1日星期0

登録者不明 16:16 登録者不明 - 他人のβ内 を含むブックマーク

確かにこのところ、キーワードを登録したときにappendが記載されないことが増えているかも。

トラックバック - http://beta.g.hatena.ne.jp/another/20050501
 |