rubyでtwitter
半年前くらいに書いたtwitterアクセス方法が若干変わっていたのでメモ
以前
twit = Twitter::Base.new(id,pass)
変更後
httpauth = Twitter::HTTPAuth.new(id, pass) twit = Twitter::Base.new(httpauth)
大した変化じゃないけど念のため
というか、rubyでtwitterアクセスするには、gemのtwitterかtwitter4rがあるようだけど、私はtwitterのほうを使ってます。APIの使い方が本家のそのまま使えばいい感じっぽいので楽なんだよね。
例えば、タイムラインを取得するとして、Twitter本家のAPIドキュメントを見ると、使えるパラメーターが
- since_id
- max_id
- count
- page
があるのが分かる。これを
twit.friends_timeline({:count => 200})
のように引数にハッシュでパラメータのシンボルに対して値を与えてやればできるので悩まなくてすむ。楽。
twitterBOT1
Twitter上で3題噺のネタをPost提供してくれるようなBOTはないかという話が出たので適当に製作。
3題噺は小説の短編とかを書くときのお題でということで、名詞を3つPOSTするようなものを考えた。
名詞リストとして、Mecabの名詞リストってのがPCの中ですぐ見つかったので流用。
58,000件強の名詞リストをそのまま流用。
で、あとはランダムにここから3つ選んでPostさせるだけ。
twit = Twitter::Base.new(id, pass) str = "3題噺テーマ:".toutf8 nouns = open(名詞リスト).readlines 3.times do i = rand(nouns.size) str << nouns[i-1].chomp.toutf8 + " " nouns.delete(i-1) end twit.update(str.toutf8)
あとは、定期的に動作するように設定。適当に6時間ごとに起動設定にすることにした。
cronを利用することにする。
crontab -e 0 */6 * * * ruby 〜.rb
以上。
問題は、Postするリストの中に意味が良くわからないやつが多いこと。
選別するべきなんだろうけど、数が多すぎるので当面放置。
アカウントは今はとりあえず @y881 にて
railsアプリケーション作成過程 その2
DBいじり
http://centos.oss.sc/ruby/sqlite/ を参考にSQlite と、SQliteのRubyコネクタの導入
特に問題なく動作。
yum install sqlite-devel gem install sqlite3-ruby
DBをいじるのはrailsのmodel部分の担当。モデルの作成
ruby script/generate model
何かいろいろ作成される。そこから db/migrate/~~_create_
self.upのなかにDBに必要なカラムの設定
def self.up create_table :do |t| t.column :hoge, :string t.column :huge, :string t.column :<カラム名>, :型 end end
登録できる型は[:string :text :integer :float :datetime :timestamp :time :date :binary :boolean]のはず
記述したら以下実行によって、簡単にDBアクセス用のページが作成されるはず。
ruby script/generate scaffold
のはずなんだけど、ここで、エラーが出た。
調べた結果、http://renard.air-nifty.com/blog/2008/02/ruby_on_railsra_d5e6.html を参考にすると
ruby script/generate scaffold--skip-migration
にすると、良いとのことで実行。エラーなしで通過。OK
が、ここで生成されたページみても何も登録できない。さっきと同じエントリ参考にして
ruby script/generate scaffold<カラム名>:型 --skip-migration
らしい。やってみたらうまく登録画面ができていたので成功。
railsアプリケーション作成過程 その1
railsプロジェクト生成
適当なディレクトリでコマンド入力
rails <プロジェクト名>
gemのVerが1.3.1でないといったエラーが出たのでVerアップ作業
gem update --system
実行したらエラーが出たので、以下コマンドで実行
gem install rubygems-update update_rubygems
無事アップデート完了
再度プロジェクト作成して成功
確認のためにテスト起動
cd <プロジェクト先> ruby script/server
で、ブラウザで http://localhost:3000/ 確認 OK
簡単な機能確認
参考サイト : http://www.rubylife.jp/rails/
最初にcontrollerの自動生成機能を使う
ruby script/generate controller
生成されたapp/controller/
classCon1Controller < ApplicationController def page1 @i = 0 end def page2 @str = ' ' end end
次に、app/views/
以下のように適当にコードを読み込むような感じで記述
page1.rhtmlpage1 <%= @i %>
サーバー再度起動して確認
ruby script/server
http://localhost:3000/
viewsで書いたコード上の変数の中身が表示されていたので、OK