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

- Image via CrunchBase
以前かいたプログラムを修正したので、それを乗せておきます。
古いプログラムで使っていたライブラリがいまいちなので、少し違います。
あと、今後のことを考えるとOauth認証にしないとです。
require('time')
require 'rubygems'
require 'twitter'
#twitter conf
username = 'username'
password = 'password'
httpauth = Twitter::HTTPAuth.new(username, password)
client = Twitter::Base.new(httpauth)
lines = 0
msg = nil
open("/user/tjun/work/twitter/subetter/jokes.txt"){|file|
while tmp = file.gets
lines += 1
end
}
open("/user/tjun/work/twitter/subetter/jokes.txt"){|file|
msg = file.readlines[rand(lines)].chomp
#print msg
}
client.update(msg)
—–ここまで追記—–
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つで漫才を行うことを考えている.
関連する記事:
- twitterのダイレクトメッセージを受信するプログラムをrubyで
- rubyからtwitter APIを利用してbotを作る
- Ubuntu8.10でRuby on Railsとmysqlとtwitter4rの環境を整える
- Rubyでtwitter, facebook, instagramなどの認証
- rubyで短縮URLの展開
![Reblog this post [with Zemanta]](http://img.zemanta.com/reblog_e.png?x-id=1da95bdf-9596-4f8b-892d-9ae9efbf177c)
Twitter:
facebook:
flickr: 
1月 15th, 2009 at 03:13
[...] 15時にtwitterにギャグを投げるプログラムをRubyで [...]