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);"
読むほうは後で気が向いたら考える。