この記事は古いので、プログラムが使えない可能性が高いです。
今ならrubygemのtwitterライブラリを使うのがよいと思います。Oauthも必要です。

こないだ,twitterにくだらないギャグをpostするプログラムを書いたので,今度は他の人からの投稿を受け付けて,ギャグリストに追加するプログラムを書きました.

これで誰でも思いついたくだらないギャグをsubetterに言わせることができます.

進化したsubetter

ついでに,ギャグをテキストファイルに保存するのはなんかかっこ悪いので,MySQLにも入れることにしました.いずれMySQLに完全に移行したいですが,まだ両方やってます.

まだいくつか問題があって,MySQLにそのままじゃ入れられない文字の処理とか,全然よく分かってないのでその辺から修正しなきゃと思っています.

プログラムはこんな感じ.

require('rubygems')  
gem('twitter4r','0.3.0')  
require('twitter')  
require "mysql"

flag = 0  
msg = nil

my = Mysql::new("localhost", "user", "passwd", "db_name")

client =Twitter::Client.new(:login => 'subetter',:password => 'passwd')

client.messages(:received).each do |msg|  
#メッセージのテキストを取得,改行文字を省く
joke = msg.text  
joke = joke.strip

#メッセージの送り主を取得
user_name = msg.sender.screen_name

que = "SELECT * FROM jokes WHERE joke='" + joke + "'"  
res = my.query(que)  
res.each do |row|  
flag = 1  
end  
#p flag

if flag == 0  
sql = "INSERT INTO jokes VALUES ('','" + user_name + "','" + joke + "')"  
#mysqlにギャグを登録
my.query(sql)  
#テキストファイルにもギャグを登録
file = open("/home/jun/Dropbox/cyg/work/ruby/twitter/jokes.txt", 'a')  
file.puts joke  
file.close  
else  
flag = 0  
end  
end

exit