twitlogger.rb 更新 (rev.13)

Posted by yoosee on Web at 2008-04-22 20:00 JST

*1  twitlogger.rb 更新

Twitter のタイムラインログ記録スクリプト twitlogger.rb の更新。ダウンロードは前回記事、ないし twitlogger.rb より。

変更内容としては、since=... の時刻を「前回取得したタイムライン中の最新更新時刻」にしてもまだ取りこぼしが出るケースがあるようなので、since の時刻に since_margin と言うパラメータでマージンを与えた上で取得したタイムラインがログ上で重複しないような処理を入れた。狭間の取りこぼしが気になる人はこの値を適当な秒数、例えば 30 くらいにしてみると少しマシになるかもしれない。

正直なところ個人的には「取りこぼし無く取得しよう」と言うモチベーションは高くないし、Twitter API 自体がよくエラーを吐いたりおかしなタイムラインを返したりするので、あくまで出来る限りの努力をするというスタンスで。

twitlogger.rb 更新

Posted by yoosee on Web at 2008-04-09 18:00 JST

*1  twitlogger.rb 更新

少し前に書いた twitter のログ取りツール twitlogger.rb を走らせているが、どうも timeline の取得に抜けがよく発生していた。見てみたら 304 Not Modified エラーが頻発していたようだ。恐らくこれは API に since=... の形で送信している前回取得時刻がよろしくないのだろうと思い、現状の「前回取得時刻」から「前回取得した timeline の created から最新時刻のもの」を送るようにように修正。修正後に数時間走らせてみた感じでは取りこぼしは無くなった。

どうも API で取得できるタイムラインは「現在時刻の数分前」程度な事があるようで(DBレプリケーションの都合?)、単純に前回取得した時刻を since で投げてしまうと 304 Not modified エラーが結構な頻度で発生してしまうみたい。修正したものは前記事、ないし twitlogger.rb からどうぞ。これも近いうちに CodeRepos に置く予定。

*1  twitlogger.rb - friends_timeline を logging

そういうもの。基本的には Basic 認証をかませつつ決まった URI を叩いて戻り値の XML を REXML に食わせているだけ。ログファイルは日毎に YYYYMMDD.log として分けるようにしている。
まぁ GTalk に全部吐き出させて置けば Gmail に全部溜まるし表示はBitlbee+IRCクライアントで出来るよという話もあるけど。

*2  twittail.rb - twitlogger のログを装飾表示

output of twittail更にそのログをコンソール上で tail -f の代わりに表示するスクリプト。すごくニッチなツールだけど個人的には割と便利。特徴としては
  • 実行するとログ最後尾に移動して更新があったもののみ表示
  • VT100用コンソール文字修飾(太字・下線・色付け)
  • URLのタイトルを展開して付与表示
  • @reply があった場合、先頭の reply ユーザの過去ログを展開して表示
ちなみに reply 展開は Auth付きAPIの制約条件(60分内に70アクセスまで)を避けるため、認証無しで取得しているので Protected の Timeline は表示できない。

入力欄とか Notify を固定表示する部分も作りたいような気はするんだけど、 ncurses に手を出すのはちょっと憂鬱のような。

*3  4月9日追記: twitlogger.rb 更新

API に since=... の形で送信する前回取得時刻を、timeline の created 時刻の最新のものにするように修正。どうも API で取得できるタイムラインは「現在時刻の数分前」程度な事があるようで(DBレプリケーションの都合?)、単純に前回取得した時刻を since で投げてしまうと 304 Not modified エラーが結構な頻度で発生してしまうみたい。修正後に数時間走らせてみた感じでは殆ど取りこぼしは無いようだ。

*4  4月22日追記: twitlogger.rb 更新

since=... で渡す最終取得日時に、since_margin と言うパラメータでマージンを持たせることが出来るように変更。初期値は 0 (since は前回取得したタイムラインの最新時刻)で単位は秒数。

About W.W.Walker

World Wide Walker は yoosee による blog です。PDA, Web・サーバ技術, 美味しい食べ物などの話題を取り上げています... read more

Monthly Archives

Select Month to read
  

Ads

Recent Entries

Related Sites