okTwitterでの発言をsqlite3に溜めるようにした
今はただのproxyだけど、とりあえず溜めるようにしてみた。
さっそくActiveRecordを使って、発言内容と日時を保存してる。DBのファイルのパーミッションがterminalで実行してる時のユーザとapache経由でcgiとして起動してる時のユーザ両方で読めるようにするのに気づくまでが長かった。何事もプラクティスだな。
#!/usr/bin/ruby require 'cgi' require 'rubygems' require 'twitter' require 'active_record' print "Content-Type: text/xml\n\n" c = CGI.new message = Kconv.kconv(c['message'],Kconv::UTF8) if message == "" puts '<twit><status>error</status><message>message is empty</message></twit>' exit(true) end twit = Twitter::Base.new("dnp","password") twit.update(message) puts '<twit><status>success</status><message>' << message << '</message></twit>' ActiveRecord::Base.establish_connection( :adapter => 'sqlite3', :dbfile => '/var/sqlite3/oktwitter' ) class UpdatesInit < ActiveRecord::Migration def self.up create_table(:updates){|t| t.column :text, :string, :limit => 200, :null => false t.column :time, :int, :null => false } end def self.down drop_table :updates end end # model class Update < ActiveRecord::Base def to_s return "#{id}@#{time}: #{text}" end end Update.create( :text => message, :time => Time.now.to_i )