Subcribe via RSS

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

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

Image representing Twitter as depicted in Crun...
Image via CrunchBase
— 2010/07/09 追記—

以前かいたプログラムを修正したので、それを乗せておきます。
古いプログラムで使っていたライブラリがいまいちなので、少し違います。


あと、今後のことを考えると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つで漫才を行うことを考えている.
Reblog this post [with Zemanta]

関連する記事:

この記事をシェアする:


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

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

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


Leave a Reply

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

  • 書いてる人:

    Junichiro Takagi
    高木潤一郎

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

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

    RSS:


  • friendfeed: