読者です 読者をやめる 読者になる 読者になる

chikuchikugonzalezの雑記帳

趣味とか日記とかメモとか(∩゚д゚)

遅ればせながらシェリス様Twitter Botを作り直してました

去年辺りからちょいちょいTwitter Botを新API対応を兼ねて作りなおしてまして、そして3月3日頃*1に置き換えてました。
違いは

  • Google App EngineからAppFogに移動
  • 結果Python製だったのがRuby製に
  • ついでにツイート間隔が8時間毎から6時間毎になりました
  • シェリス様の英語表記が判明したのでアカウント名変更

というくらい。まだまだ試験運用ですが気が向いたら見てやってください
新しいアカウントはこちら→@

以下余談というかAppFogの仕様とかについてのメモ



とりあえず前提として、AppFogだと以下の様な構成にしてます。

  • sherrice-bot (Ruby 1.8.7)
    • ボット本体。ツイートするために常時稼動
  • sherrice-web (Ruby 1.9.3)
    • ボットのツイート設定用Webアプリ。通常は停止
  • sherrice-pma
    • DB管理用phpMyAdmin。通常は停止。
    • AppFogだとphpMyAdmin用のテンプレートがあるからそれ使うだけ。ユーザ名とパスワードを設定すれば直ぐ使えて便利すぎる
  • sherrice-db
    • MySQL DBサービス。複数のアプリに接続できるので共有とか楽でした

ここで見ていただきたいのは、Bot側とWeb側で使ってるRubyのバージョンが違うということ。なんでこんなことになったのかっていうのは単にAppFog側の仕様のせいなんですが。

というのも、本当は全部Ruby 1.9.3で作ってるんですよ *2
ただWebからアプリを作るとRuby 1.9.2に固定されるので、afコマンドラインツールで作らないといけないですが。
ただどうもStandalone Applicationを選択するとこのRubyエンジン選択が無視されるようです。ナンデダ。
いや、ディレクトリを調べればなんかRuby 1.9.3がいる場所わかるんですが、PATHに含まれるRubyは1.8系のようなんですよね。
なのでStandalone Applicationとして

ruby bot.rb
とかやると1.8系で動かされるという。

これまじで(´・ω・`) ってなるんで、皆も気をつけるといいよ(´・ω・`)

*1:たぶん3/3に置き換えてる。覚えてない

*2:Sinatra使ってる