Subcribe via RSS

twitterのダイレクトメッセージを受信するプログラムをrubyで

2009/1/15 | category: ruby, twitter | tags: ,
このエントリーをはてなブックマークに追加

この記事は古いので、プログラムが使えない可能性が高いです。
今なら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

関連する記事:

この記事をシェアする:


Leave a Reply

コメントリンクを nofollow free に設定することも出来ます。

  • 書いてる人:

    Junichiro Takagi
    高木潤一郎

    http://tjun.jp
    mail@tjun.jp

    未踏でクリエータやってました。メーカーでエンジニアやってます。
    このブログは、会社とは関係なく個人の意見を書いています。

    RSS:


  • friendfeed: