☆Twitterのタイムラインを逆順に表示する(2)

昨日の続きです。
TwitterのAPIを参照するとURLの後ろにパラメータが使えるようです。
http://apiwiki.twitter.com/Twitter-REST-API-Method%3A-GET-list-statuses
http://apiwiki.twitter.com/Twitter-REST-API-Method%3A-statuses-user_timeline
昨日のスクリプトのに与える引数に取得したい数する場合は "?per_page=50"
(50は取得したい数、1~200が指定可能)を追加します。シェルが?を展開しようとするのでクオートします。
per_pageはリストのAPIにのっていて、指定ユーザのタイムラインを取得すところにはなかったのですが、
両方動作します。

実行例
tw_rev_browse.sh 'ubuntubot?per_page=50'
tw_rev_browse.sh 'MidSpecLowLoad/ubuntu-ittoke-doujou?per_page=50'

これだけでは何なので、シェルをちょっといじって同一ファイルに一定間隔で取得内容を
書き出して、ブラウザはF5キーを押してリロードする仕組みにしてみます。
(HTMLのヘッダにJavascriptでリロードを仕込もうとしたのですが、うまくやれませんでした。)
終了されるときはCTRL+Cで止めます。
下のスクリプトでは3分にしています。変更したい場合は "GET_INTERVAL"の値をいじってください。

実行例
tw_rev_browse_cont.sh 'MidSpecLowLoad/ubuntu-ittoke-doujou?per_page=50'
2010/03/07 引数チェック追加
tw_rev_browse_cont.sh
#!/bin/bash

GET_INTERVAL=3m

if [ -z $1 ] ;then
  echo "$0 requires a parameter"
  exit 1
fi

HTML=TwitRev-`date '+%F-%H%M%S'`-$$.html

wget -O - http://twitter.com/$1 |sed -e 's#</li>#\n#;'| tw_rev.pl > $HTML
x-www-browser $HTML &

while true;do
  sleep $GET_INTERVAL
  echo "--- Start update $HTML:" `date '+%F %T'` " ---"
  wget -O - http://twitter.com/$1 |sed -e 's#</li>#\n#;'| tw_rev.pl > $HTML
  echo "--- End   update $HTML:" `date '+%F %T'` " ---"
done

APIによれば取得し始めのIDなんかを指定できるようです。
サーバーにかける負荷や自分のマシンリソースを無駄遣いしないように、
新規のつぶやきだけとってくるようにするのが望ましいのですが、
今日はとりあえずここまで。

0 件のコメント:

コメントを投稿