シャルロッテbotの開発環境構築

この記事は開発者向けに書かれたものです。

シャルロッテbotの開発環境構築

「シャルbotをローカルで動かしたい!」という人向け

環境

シャルbotは開発機がMac OSで運用はUbuntu14.04ですが、他のOSでも正しく設定さえすれば動くと思います。

  • ruby 2.3.1
    • ruby 2.xなら大丈夫(未検証
    • 要Bundler(gem install bunderでインストールできます)
  • MySQL 5.x
    • 運用では互換DBであるMariaDBを使用しています
    • SQLite不可
  • Mecab
    • UTF-8のみ
    • 運用では精度を高めるためmecab-ipadic-neologdの辞書を使っていますがデフォルト辞書でも可

手順

ダウンロード

git clone https://github.com/thr3a/syarubot.git
cd ./syarubot
bundle install

データベースの設定

syarubot/config/database.ymlを作成し、以下を記述します。

default: &default
  adapter: mysql2
  encoding: utf8
  host: MySQLサーバーのホスト名
  username: ユーザー名
  password: パスワード
  pool: 5

development:
  <<: *default
  database: syaru

production:
  <<: *default
  database: syaru

station:
  <<: *default
  database: station

test:
  <<: *default

歴史的な経緯により通常のRailsのやり方ではデータベースの構築ができません。sayrubotディレクトリ上で以下のコマンドを実行します。

bundle exec rails db < db/syaru_structure.sql
bundle exec rails db -e station < db/station_structure.sql

syaru,stationデータベースが作成されれば成功です。

おそらくここで bundle exec rails cをエラーなく実行できるはずです。

Twitter APIキーの設定

syarubot/config/secrets.ymlを作成し、以下を記述します。

development:
  secret_key_base: 7e583311bb7ace5a59a0162f2bc9b87dc93d0004011004e05ea00e44dd24cd8407823c9816dd4e34f0fff35df63ad8c2b717647e105bc285175177a3ec9715e7
  consumer_key: "以下4つはTwitterAPIの認証に必要な4つのキー"
  consumer_secret: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
  access_token: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
  access_token_secret: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
  own_name: "bot自身のアカウント名 @は含めません"

test:
  secret_key_base: 3c9edea0d21568e91f7ff51145da51702175a89b6986065d475263f8016ca6a8cc3cee834a1a3829df259ffb57db072bf0ea5739fee7a9cd16175703d4d300fd

# Do not keep production secrets in the repository,
# instead read values from the environment.
production:
  secret_key_base: *****************************************************************
  consumer_key: "基本的にはこっちは空で可"
  consumer_secret: ""
  access_token: ""
  access_token_secret: ""
  own_name: "Charlotte__bot"

設定後に bundle exec rake bot:startをしたあとに「シャルロッテ」に反応すればOKです。

Mecabの設定

すでにターミナル上からmecabコマンドが実行できることを確認してください。

デフォルトの辞書パスは「usr/local/lib/mecab/dic/mecab-ipadic-neologd」です。変更する場合は config/environments/development.rb 内の config.mecab_dic_path の値を変更してください。

その他

当然ですがDBの中身が空っぽだとしりとりすらできません。データは各自でご用意ください。