« また痔瘻が腫れたので・・・(つД`) | トップページ | 痔瘻の手術の入院予約してきました。 »

2009年6月20日 (土曜日)

[Ruby][Windows]twitterのRSSからテキストファイルを作るバッチファイル(要Ruby)を書いてみたり。

Twitterの今日のログからコメントした時間の分かるテキストが欲しくなったのと、 ワンライナーっぽい事をしてみたくなったので、こんなのを書いてみました。
ワンライナーとか言いつつ、まだ削れる冗長な部分があるし、かなり適当に書いたコードですが・・・。(^^;

ダウンロード twitter_rss2txt.rb.bat (0.3K)


type %1 | ruby -w -ne "a=$_.chomp; a.index(/(<atom:|<rss|<\?xml|<language>|<ttl>|<\/?title>|<\/?item>|<guid|<\/?channel>|rss>)/)?(print ''):(print( a, \"\n\" ))" | ruby -w -Ku -rnkf -ne "a=$_.chomp!;a.gsub!(/.*<.*>(.*)<\/.*>/){$1};a.gsub!(/.*<[^\/].*>(.*)/){$1};a.gsub!(/(.*)<\/.*>/){$1};print \"#{NKF::nkf('--numchar-input -s',a)}\n\";" >%1.sjis.txt

使い方は、Webブラウザ等でTwitterのRSSファイルをダウンロードして、それを twitter_rss2txt.rb.bat に与えればOK。

実際の使い方は、こんな感じ。

D:\>twitter_rss2txt.rb.bat twitter_20090620_1.rss

これで、twitter_20090620_1.rss というファイルから、twitter_20090620_1.rss.sjis.txt というファイルが出来ます。

たったこれだけの事をするのでも、ハマりましたよ・・・。>私
_| ̄|○

TwitterのRSSファイルのUTF-8文字列をShift-JISの日本語文字列に変換するのに、かなり苦労してしまいましたよ・・・。

UTFが絡むとメンドイのぉ~。(つД`)

途中で、Shift-JISへの変換は投げ出そうかと思いましたが、nkf--numchar-inputというオプションがあるのに 気づいてどうにか対応出来ましたです。
タイムゾーンの変更の仕方も分かったので、日時をJSTで出力してくれるバージョンも作ってみました。

ダウンロード twitter_rss2txt_JST.rb.bat (0.5K)


type %1 | ruby -w -rdate -ne "a=$_.chomp;a.gsub!(/.*<pubDate>(.*)<\/pubDate>/){now=DateTime.now;DateTime::parse($1).new_offset(now.offset).asctime+' '+now.zone.to_s};a.index(/(<atom:|<rss|<\?xml|<language>|<ttl>|<\/?title>|<\/?item>|<guid|<\/?channel>|rss>)/)?(print ''):(puts a)" | ruby -w -Ku -rnkf -ne "a=$_.chomp;a.gsub!(/.*<.*>(.*)<\/.*>/){$1};a.gsub!(/.*<[^\/].*>(.*)/){$1};a.gsub!(/(.*)<\/.*>/){$1};print \"#{NKF::nkf('--numchar-input -s',a)}\n\";">%1.sjis.txt

|

« また痔瘻が腫れたので・・・(つД`) | トップページ | 痔瘻の手術の入院予約してきました。 »

Programming」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/16952/45400475

この記事へのトラックバック一覧です: [Ruby][Windows]twitterのRSSからテキストファイルを作るバッチファイル(要Ruby)を書いてみたり。:

« また痔瘻が腫れたので・・・(つД`) | トップページ | 痔瘻の手術の入院予約してきました。 »