汎用チャットボット RGRB

Build Status Coverage Status

RGRB は Ruby で実装されている汎用 IRC/Discord ボットです。プラグイン方式により柔軟な拡張が可能です。

動作環境

  • Linux または OSX
    • 現在のところ Windows には未対応。
  • Ruby 2.5 以降

インストール

Ruby をインストールしていない場合はインストールしてください。

Bundler をインストールしていない場合は以下を実行してください。

BCDice プラグインを使用する場合は、BCDice 本体をインストールするために git コマンドが必要です(リポジトリから手動でインストールすることも出来ますが、面倒です)。git をインストールすることをお勧めします。

gem install bundler

上記が完了したら、適当なディレクトリにファイルを設置し、以下を実行して必要な gem(ライブラリ)をインストールしてください。

なお、gem をインストールするためには、システムにいくつかのライブラリと開発環境がインストールされている必要があります。CentOS 7 を最小限構成でセットアップしている場合、以下の追加パッケージが必要です。

  • make
  • gcc
  • gcc-c++
  • libicu-devel
  • zlib-devel
  • which
  • sqlite-devel
  • gdbm-devel
cd /path/to/rgrb
bundle install --deployment

BCDice プラグインを利用する場合は、続けて BCDice 本体をダウンロードするため、以下のコマンドを実行してください。

git submodule init

開発時のみ必要なライブラリのインストール

開発時は、メール送信テストを行えるようにするため、mailcatcher をインストールしてください。

gem install mailcatcher

設定

IRC ボット用および Discord ボット用の設定ファイルのテンプレートがそれぞれ同梱されています。 IRC ボット用のテンプレートは config/irc.yaml です。 Discord ボット用のテンプレートファイルは config/discord.yaml です。 複数の設定を使う場合は、このファイルをコピーして config/ に設置します。

各設定は設定 ID によって識別します。設定 ID とは、config/ 以下に設置した YAML ファイルの、config/ を基準とした相対パスから拡張子を除いたものです。例えば config/irc.yaml の場合は irc となり、config/trpg/detatoko.yaml の場合は trpg/detatoko になります。

プラグインの設定を別のファイルに書くことも可能です。その場合、親となる設定ファイルの Include 節で設定 ID を指定し、子となる設定ファイルを取り込みます。ただし、取り込まれたファイルからさらに他の設定ファイルを取り込むことはできません。具体例は上記の設定ファイルのテンプレートでご確認ください。

プラグイン一覧

IRC / Discord 欄の凡例

記号 意味
o 実装済み
! すべての機能が実装されているわけではない
x 未実装
- 実装予定なし(チャット環境固有の物)

オンラインセッション支援

プラグイン名 内容 IRC Discord
DiceRoll ダイスロール o o
RandomGenerator ランダムジェネレータ o o
Trpg::Detatoko 「でたとこサーガ」専用のダイス・表引きコマンド o o
BCDice ボーンズ&カーズ のダイスコマンドを利用する o o

情報検索・引用

プラグイン名 内容 IRC Discord
Keyword キーワード検索 o o
OnlineSessionSearch TRPG.NET セッションマッチングシステムから予定されているオンラインセッションの情報を検索する o x
CreTwitterCitation Twitter @cre_ne_jp の引用 o -
UrlFetchTitle 発言された URL のページタイトルを取得する o -

ユーティリティ

プラグイン名 内容 IRC Discord
CreBotHelp クリエイターズネットワークの IRC ボットとしてのヘルプを表示する o o
ServerConnectionReport IRC サーバの接続状態の変化を報告する o -
Part チャンネルからの退出 o -
KickBack RGRB が KICK されたとき、そのチャンネルに再度 JOIN する o -
Invite RGRB が INVITE されたとき、そのチャンネルに JOIN する o -
Jihou 毎日決まった時刻になった時、チャンネルに通知する o x
Ctcp CTCP メッセージを受信した時、適切な応答を返す o -

IRC ボットの起動

IRC ボットを起動するには、以下を実行してください。Ctrl + C を押すと終了します。

cd /path/to/rgrb
bin/rgrb-ircbot

-c--config)オプションで、使用する設定を指定することができます。その場合、-c に続けて設定 ID を書きます。

cd /path/to/rgrb
bin/rgrb-ircbot -c test # /path/to/rgrb/config/test.yaml を使用する場合

systemd による制御を行なう場合は systemd を参照してください。

Discord ボットの招待

招待リンク

上のリンクをクリックすることで、Discord ボットを、ご自身が管理者になっている Discord サーバに招待することが出来ます。 この場合、ご自身のコンピュータ上で RGRB をインストールしたり、RGRB を起動したりする必要はありません。

Discord ボットの起動

(ToDo: 増補)

開発者向けドキュメントの生成

YARD を利用してライブラリのドキュメントを doc/ 以下に生成することができます。以下を実行してください。

cd /path/to/rgrb
rake yard

仕様

  • IRC ボットに対して短い時間に大量のメッセージを送ると、応答が遅れます。これは IRC サーバの負荷調整に依るものです。

ToDo

連絡先

ご意見・ご要望・バグ報告等は、irc.cre.jp 系 IRC サーバ群の IRC チャンネル「#cre」や、GitHub リポジトリ上の「Issues」・「Pull Requests」にて承っております。お気軽にお寄せください。

ライセンス

MIT License日本語

制作

© 2014- クリエイターズネットワーク技術部