TwitterのタイムラインをとってきてDBに入れるやつ

最近、Twitterがぶっ壊れていて1ページ目の発言以外は見れなくなっている。
すぐに過去の発言が見えなくなってしまう。
なので以下のようなスクリプトをcronで実行してsqlite3データベースに保存することにした。

#!/usr/local/bin/ruby
require 'rss'
require 'rubygems'
require_gem 'activerecord'

ActiveRecord::Base.establish_connection(
   :adapter  => "sqlite3",
   :dbfile   => "#{File.dirname(__FILE__)}/twitter_rom.db"
)
class Item < ActiveRecord::Base
end

def get_rss_items(uri)
  rss = RSS::Parser.parse(uri)
  items = []
  rss.items.each do |i|
    items.push(i)
  end
  items
end

def store_items(items)
  items.each do |i|
    next if Item.find(:first,:conditions => ["pubdate=? and link=?",i.pubDate,i.link])
    item_rec = Item.new
    item_rec.title       = i.title
    item_rec.pubdate     = i.pubDate
    item_rec.description = i.description
    item_rec.link        = i.link
    item_rec.save
  end
end

uri = 'http://twitter.com/statuses/friends_timeline/9084942.rss'#ここは自分の好きなのに変更する。
items = get_rss_items(uri)
exit if items.length == 0
store_items(items)

マイグレーションスクリプトとか用意していないので自前でテーブルの作成が必要です。
スクリプトをおいたのと同じディレクトリで以下のようにやればOK。

$  sqlite3 twitter_rom.db "CREATE TABLE items(id INTEGER PRIMARY KEY,title,pubdate,description,link);"

読むほうは後で気が向いたら考える。