<commit_before>汎用 IRC ボット RGRB
====================

[![Build Status](https://travis-ci.org/cre-ne-jp/rgrb.svg?branch=master)](https://travis-ci.org/cre-ne-jp/rgrb)
[![Coverage Status](https://coveralls.io/repos/cre-ne-jp/rgrb/badge.svg?branch=master&service=github)](https://coveralls.io/github/cre-ne-jp/rgrb?branch=master)

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

動作環境
--------

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

インストール
------------

[Ruby](http://www.ruby-lang.org/) をインストールしていない場合はインストールしてください。

[Bundler](http://bundler.io/) をインストールしていない場合は以下を実行してください。

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

```bash
gem install bundler
```

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

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

* make
* gcc
* gcc-c++
* libicu-devel
* zlib-devel
* which
* sqlite-devel

```bash
cd /path/to/rgrb
bundle install --deployment
```

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

```bash
git submodule init
```

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

開発時は、メール送信テストを行えるようにするため、[mailcatcher](https://github.com/sj26/mailcatcher) をインストールしてください。

```bash
gem install mailcatcher
```

設定
----

[config/rgrb.yaml](config/rgrb.yaml) を編集して設定します。複数の設定を使う場合は、このファイルをコピーして config/ に設置します。

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

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

### プラグイン一覧

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

| プラグイン名 | 内容 |
| ------------ | ---- |
| [DiceRoll](doc/plugins/dice_roll.md) | ダイスロール |
| [RandomGenerator](doc/plugins/random_generator.md) | ランダムジェネレータ |
| [Trpg::Detatoko](doc/plugins/trpg/detatoko.md) | 「でたとこサーガ」専用のダイス・表引きコマンド |
| [BCDice](doc/plugins/bcdice.md) | [ボーンズ＆カーズ](https://github.com/torgtaitai/BCDice) のダイスコマンドを利用する |

#### 情報検索・引用

| プラグイン名 | 内容 |
| ------------ | ---- |
| [Keyword](doc/plugins/keyword.md) | キーワード検索 |
| [OnlineSessionSearch](doc/plugins/online_session_search.md) | [TRPG.NET セッションマッチングシステム](http://session.trpg.net/)から予定されているオンラインセッションの情報を検索する |
| [CreTwitterCitation](doc/plugins/cre_twitter_citation.md) | Twitter @cre_ne_jp の引用 |
| [UrlFetchTitle](doc/plugins/url_fetch_title.md) | 発言された URL のページタイトルを取得する |

#### IRC 関連

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

IRC ボットの起動
----------------

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

```bash
cd /path/to/rgrb<commit_msg>discord: README に IRC/Discord それぞれの実装状況を追記<commit_after>汎用 IRC ボット RGRB
====================

[![Build Status](https://travis-ci.org/cre-ne-jp/rgrb.svg?branch=master)](https://travis-ci.org/cre-ne-jp/rgrb)
[![Coverage Status](https://coveralls.io/repos/cre-ne-jp/rgrb/badge.svg?branch=master&service=github)](https://coveralls.io/github/cre-ne-jp/rgrb?branch=master)

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

動作環境
--------

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

インストール
------------

[Ruby](http://www.ruby-lang.org/) をインストールしていない場合はインストールしてください。

[Bundler](http://bundler.io/) をインストールしていない場合は以下を実行してください。

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

```bash
gem install bundler
```

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

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

* make
* gcc
* gcc-c++
* libicu-devel
* zlib-devel
* which
* sqlite-devel

```bash
cd /path/to/rgrb
bundle install --deployment
```

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

```bash
git submodule init
```

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

開発時は、メール送信テストを行えるようにするため、[mailcatcher](https://github.com/sj26/mailcatcher) をインストールしてください。

```bash
gem install mailcatcher
```

設定
----

[config/rgrb.yaml](config/rgrb.yaml) を編集して設定します。複数の設定を使う場合は、このファイルをコピーして config/ に設置します。

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

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

### プラグイン一覧

IRC / Discord 欄の凡例

* o : 実装済み
* x : 未実装
* - : 実装予定なし(チャット環境固有の物)

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

| プラグイン名 | 内容 | IRC | Discord |
| ------------ | ---- | --- | ------- |
| [DiceRoll](doc/plugins/dice_roll.md) | ダイスロール | o | o |
| [RandomGenerator](doc/plugins/random_generator.md) | ランダムジェネレータ | o | x |
| [Trpg::Detatoko](doc/plugins/trpg/detatoko.md) | 「でたとこサーガ」専用のダイス・表引きコマンド | o | x |
| [BCDice](doc/plugins/bcdice.md) | [ボーンズ＆カーズ](https://github.com/torgtaitai/BCDice) のダイスコマンドを利用する | o | x |

#### 情報検索・引用

| プラグイン名 | 内容 | IRC | Discord |
| ------------ | ---- | --- | ------- |
| [Keyword](doc/plugins/keyword.md) | キーワード検索 | o | o |
| [OnlineSessionSearch](doc/plugins/online_session_search.md) | [TRPG.NET セッションマッチングシステム](http://session.trpg.net/)から予定されているオンラインセッションの情報を検索する | o | x |
| [CreTwitterCitation](doc/plugins/cre_twitter_citation.md) | Twitter @cre_ne_jp の引用 | o | x |
| [UrlFetchTitle](doc/plugins/url_fetch_title.md) | 発言された URL のページタイトルを取得する | o | - |

#### ユーティリティ

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

IRC ボットの起動
----------------

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

```bash
cd /path/to/rgrb
{'fraction_non_alphanumeric': 0.18031088082901556, 'fraction_numerical': 0.0014803849000740192, 'mean_word_length': 4.6253122398001665, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 14, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1476886', 'n_tokens_mistral': 4330, 'n_tokens_neox': 4015, 'n_words': 382}