私的アンテナTYPE-F(赤は48時間以内に更新されたコンテンツ)
<|日々の戯言アニメコミックゲーム美少女系ゲームフィギュアドール全般しーぽんちっちゃなもこちゃんえっくす☆きゅーとアキバ系りとらばU-10BLOGネットネタこのサイトについて|>

2005年03月06日 (日曜日)

2ちゃんスレをRSS化してみる

IE with RssBar
現在2ちゃんの一部はRSS配信サービスで読めるが、スレそのものをRSSで配信してるサイトは見当たらない。そこで試験的に指定されたスレをRSS配信する仕組みを作ってみた。
画像はRssBarでの表示サンプル

ここでやっていることは、取得したスレのdatテキストをRSS2.0の書式に従いxmlへ変換、出力しているだけ。特別複雑なことはやっていない。
但し現状の形になるまで、かなりの試行錯誤が必要だった。

まず最初の問題は文字コード。
一般的なRSSはUTF8だが、相手の文字コードはSHIFT_JIS。
普通ならJcode.pm等でUTF8に変換して終わりの話だが、そうはいかなかった。
かなりの確率でUTF8に変換すると不正文字が発生し、エラーとなってしまう。
恐らく元データが機種依存文字など、何でもありの状態になっているのが原因だろう。
これはこちらではどうしょうもないので、RSS配信の文字コードをSHIFT_JISにすることで回避することにした。
RSSにUTF8以外の文字コードを設定すると嫌われるんだけどね。

で、次はタイトルと概要の問題。
スレの各書き込み内容から生成する必要があるが、そのままだと長すぎるので、例えば先頭から
30文字とかでカットし、オーバーしたものには”...”などを追加して表示したい。
ところがperl5.6ではUTF8以外はマルチバイト文字列に対応していない為、普通にsubstrで切ると
漢字の上位下位バイトの泣き別れ(文字化けに繋がる)が発生する可能性がある。
そこで一旦EUCにコード変換、更に全角化することで泣き別れ現象を回避することにした。
が、これも最初の問題と同様にEUC変換で文字化けが発生する為、使えず。
一応一文字ずつSHIFT_JISのまま対応する方法もあるが、あまりに非効率な為、それは止め。
そんなわけで結局タイトルは全文配信、概要はなしで逃げました。
これでもRSSの構文的には問題はないので(^^;

そんなこんなで、上記以外にも細かい問題がありましたが、とりあえずRssBar、Sage、SharpReader、
画像はないけどThunderbirdでも使えているので、良しとします。

Firefox with Sage
SharpReader

色々ダメダメな仕組みで、且つRSS配信の意義から外れてますが、スレの定期チェックには十分使えそう。
ホントは本家が対応してくれれば最良なのですが、現状では定期的な負荷が増えるだけなので無理でしょうね。

【関連するトピックス】
某巨大掲示板のスレッドをRSSで提供開始しました
某巨大掲示板の日付がエイプリルフールモード?

トラックバック
このエントリーのトラックバックURL:

スパム対策の為、トラックバック元URLに本Blogへのリンクを含まない場合、トラックバックを受け付けない仕様になっています。また、Blogやそれに順ずるシステム以外からのトラックバックも受け付けません。予めご了承ください。
なお、お手数ですがトラックバックURLより「☆★」を取り除いてください(オートディスカバリ非対応です)
コメント
コメントする






情報を保存しますか?


画像の数字を入力