はてなダイアリーの更新時刻
Posted by yoosee on Web at 2004-01-21 23:42 JST1 はてなの last-modified
五月雨作者のakr さんの日記 によれば、五月雨は基本的に他のアンテナを信用せず、lirs 等の更新情報を元にもう一度自分でチェックに行くらしい。且つコンテンツを GET で fetch するため、HEAD にのみ last-modified フィールドを返すはてなダイアリー 等の場合、更新時刻を正しく取ることが出来ていないようで、ステータスが [NoLM] になる。はてなダイアリーの 2003-03-24 の記述 を見ると、HEAD だけではなく GET リクエストの場合にも last-modified フィールドを返すようにした、と言っている。だが実際に d.hatena.ne.jp にアクセスしてみてみると、HEAD の場合 の http header は
HTTP/1.1 200 OK Date: Wed, 21 Jan 2004 04:37:16 GMT Server: Apache/1.3.27 (Unix) (Vine/Linux) mod_perl/1.26 last-modified: Mon, 19 Jan 2004 16:44:20 GMT Content-Type: text/html; charset=euc-jpとなり last-modified フィールドを含むが、GET の場合の http header は
HTTP/1.1 200 OK Date: Wed, 21 Jan 2004 04:36:30 GMT Server: Apache/1.3.26 (Unix) (Vine/Linux) mod_perl/1.26 Connection: close Transfer-Encoding: chunked Content-Type: text/html; charset=euc-jpのように、last-modified を含まないように見える。
はてなダイアリー日記にコメントを書いてみたけど、こう言う質問をするのはここでいいのかな...
1 Exception
昨日の update の際、間違って各サイトの更新情報が格納されている status.rm ファイルを破損してしまう。仕方なく、 samidare --force でサイト情報の強制取得を開始したのだが、対象サイトが 404 で情報が取れなかったりすると、各エントリーを展開した際の子要素が Null になってしまい Exception を吐いて止まってしまうようだ。これは config.yml から問題のあるエントリを外して対処。また、更新時刻が正しくとれていないとチェック間隔の計算で Exception が飛ぶ。+ begin r = s2t + (s2t - s1t) + reqcue Exception + r = Time.now + endとして対処。ついでなので csv の最新版にしておく。
問題解決のために何度も samidare を起動してしまい、何度も GET に行ってしまった。申し訳ない。