Subcribe via RSS

Ubuntu8.10でRuby on Railsとmysqlとtwitter4rの環境を整える

2009/1/13 | Posted in ruby, twitter, ubuntu

なかなか苦労しました.

一番参考になったのは,

Ubuntu 8.04.1 に Ruby on Rails 2.1.0 を入れる – neconnect.net

です.

やること

$ sudo apt-get install ruby rdoc irb ruby1.8-dev rubygems libopenssl-ruby
$ sudo gem update --system
$ sudo apt-get remove rubygems
$ sudo ln -s /usr/bin/gem1.8 /usr/bin/gem
$ sudo gem install rails
で,Ruby on railsの環境ができます.古いgemを入れてからアップデートして,古いgemを削除して新しいgemへのリンクを作るようです.

自分はMysqlを使いたいので,
$ sudo apt-get install mysql-server libmysql-ruby1.8 libmysqlclient15
$ sudo gem install mysql
をやって,起動時には
rails -d  mysql
をやるとデータベースをmysqlにしてrailsを実行できます.

これを毎回やるのは忘れそうなので,~/.zshrc(bashなら~/.bashrc)に
alias rails="rails -d mysql"
を追加しました.

で,twitter4rを使うには,
$ sudo gem install json
$ sudo gem install twitter4r
たしかこんな感じでいけると思います.

2010/07/09 追記
今rubyでtwitterアプリを作るなら、gemのtwitter4rではなくtwitterというのがいいです。

$sudo gem install twitter
でいけます.




Tags: , ,

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

2009/1/9 | Posted in ruby, twitter, ubuntu

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回ということでそんなにうざくないので,せっかくだからフォローしてやってください.

[ad]

これを作るためにやることは
  • 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]




Tags: ,
  • 書いてる人:

    Junichiro Takagi
    高木潤一郎

    http://tjun.jp
    t.junichiro@gmail.com

    技術的なメモを書いています。
    このブログは、会社とは関係なく個人の意見を書いています。

    RSS:


  • friendfeed: