Thinkpad X31にUbuntu8.10インストールメモ Ubuntu8.10でRuby on Railsとmysqlとtwitter4rの環境を整える
1 月 09
Image representing Twitter as depicted in Crun...
Image via CrunchBase

Rubyの勉強をちょっと昨日から始めたので,練習にtwitterにギャグをPostするプログラムを書いてみました.

subetter

1日1回ということでそんなにうざくないので,せっかくだからフォローしてやってください.

これを作るためにやることは

  • 1行に1つギャグを書いたテキストファイルを作る
  • テキストファイルをランダムで1行読む
  • それをtwitterにポストする
  • それをcronで1日1度実行する

っていう簡単なお仕事.

まず,ギャグを書いたテキストを作ります.
これは,いい方法が思いつかなかったのでとりあえずネットで適当に集めてきて自分でテキストファイルを作りました.まだギャグが30くらいしかない.さびしい.

で,それをランダムで1行読むっていうのは勉強したから簡単だったんだけど,twitterにpostするにはどうすればいいのかなって思って調べてみると,

twitterでbotを作りたい.(2) - reverleveeの日記
という,ほとんど同じことをやっている方を見つけたので,それを参考にさせてもらった.というか,最初からこれを拝借すれば早かったな.

ということで,自分の汚いコードは捨てて,その人のプログラムをコピペしたプログラムがこちら.
subetter.rb

require('time')
require('rubygems')
gem('twitter4r','0.3.0')
require('twitter')

lines = 0

msg = nil

open("jokes.txt"){|file|
while tmp = file.gets
lines += 1
end
}

open("home/user/....../jokes.txt"){|file|
#ファイルのパスは絶対パスで書かないとcronで読み込むときに失敗します
msg = file.readlines[rand(lines)]
# print msg
}

client =Twitter::Client.new(:login => 'subetter',:password => 'password')
client.status(:post, msg)
exit

jokes.txtにギャグを書きこみます.

文字化けは文字コードが原因なので,UTF-8で統一するように.

で、定期的にポストするには,Linuxの場合

crontab -e

でcronを設定することができます.

# m h dom mon dow command
00 15 * * * ruby /home/user/......../ruby/subetter.rb

これで毎日15時にギャグをつぶやきます.

次は,他の人がギャグを登録できるようにすることと,つっこみ側も作って2つで漫才を行うことを考えている.

Reblog this post [with Zemanta]

関連する投稿:

One Response to “15時にtwitterにギャグを投げるプログラムをRubyで”

  1. twitterのダイレクトメッセージを受信するプログラムをrubyで | ふじゅんブログ Says:

    [...] 15時にtwitterにギャグを投げるプログラムをRubyで [...]

Leave a Reply