Raspberry pi に tiarra を導入する
tiarra の導入
Raspberry pi サーバに irc proxy の tiarra を導入する。
tiarra をダウンロード・展開
$ wget http://www.clovery.jp/tiarra/archive/2010/02/tiarra-20100212.tar.gz $ tar xvzf tiarra-20100212.tar.gz $ mv tiarra-20100212 tiarra.d $ cd tiarra.d
設定ファイルをコピー
$ cp -pv sample.conf tiarra.conf
tiarra.conf を編集
$ vi tiarra.conf
general ブロック
言及の無いものはデフォルト値のまま。
general { conf-encoding: jis nick: sillywalk7 user: sillywalk7 name: sillywalk7 tiarra-port: 6667 tiarra-password: XXXXXXXXXXXXX server-in-encoding: jis server-out-encoding: jis client-in-encoding: jis client-out-encoding: jis stdout-encoding: jis
networks ブロック
言及の無いものはデフォルト値のまま。
networks { name: ircnet #name: 2ch #name: freenode #name: ustream }
各ネットワークの設定
上記 networks ブロックで定義した ricnet のみを定義する。
server はひとつだけ定義し、残りは全てコメントアウトする。
freenode など他のネットワーク設定がある場合は ircnet に準じて定義すること。
日本国内の irc サーバ情報は 情報提供サイト を参照のこと。
ircnet { server: 125.6.255.10 6660 6661 6662 6663 6664 6665 6666 6668 6669 in-encoding: jis out-encoding: jis }
tiarra パスワード生成
tiarra ログイン用のパスワードを生成する。
$ ./tiarra --make-password ... Please enter raw password: ******** ←任意のパスワード XXXXXXXXXXXXX is your encoded password. Use this for the general/tiarra-password entry.
生成された XXXXXXXXXXXXX を general ブロックの tiarra-password: に貼り付ける。
チャンネル自動 join
IRC クライアントから tiarra サーバ接続時に自動 join したいチャンネルを指定する。
カンマ区切りで複数指定可。
+ Channel::Join::Connect { channel: #hoge,#fuga,#foo,#bar }
チャンネル名が日本語の場合
まず nkf を導入する。
$ sudo apt-get install nkf
tiarra.conf を Shift-jis 形式に変換する。
(念の為 tiarra.conf を tiarra.conf.orig にバックアップしておく。)
$ cp -pv tiarra.conf tiarra.conf.orig $ nkf -s --overwrite tiarra.conf
vim で文字コードを指定して編集する
参考サイト
Shift-jisで保存すると Raspberry Pi の vim 編集では文字化けするため tiarra.conf を開いた時は以下のコマンドを実行する。
:edit ++encoding=sjis または :e ++enc=sjis
Shift-jis でファイルを保存
:set fileencoding=sjis または :se fenc=sjis
:set enc?
ファイルのエンコード
:se fenc?
自動起動
$ cd /etc/systemd/system/ $ sudo touch tiarra.service $ sudo vi tiarra.service [Unit] Description=do something [Service] ExecStart=/usr/bin/perl /home/pi/tiarra.d/tiarra --config=/home/pi/tiarra.d/tiarra.conf [Install] WantedBy=multi-user.target $ sudo systemctl enable tiarra.service Created symlink /etc/systemd/system/multi-user.target.wants/tiarra.service → /etc/systemd/system/tiarra.service.
起動テスト
tiarra.service は再起動した際に有効となる。
再起動しないでテストしたい場合は以下のコマンドを使用する。
$ sudo systemctl start tiarra.service
自動応答 BOT を設定する
特定ワードに反応してランダム応答する設定をする。
自動応答テキストを用意する
例えば「おみくじ」を作るのであれば以下のようなテキストを用意する。
文字コードは utf-8 とする。
$ cd /home/pi/tiarra.d/ $ touch hogehoge.txt $ vi hogehoge.txt 大吉 中吉 小吉 吉 末吉 凶 大凶
Auto::Random モジュール
tiarra.conf を編集する時は文字コードは utf-8 にする。
各種モジュールの設定は 公式サイト を参照のこと。
$ nkf -w --overwrite tiarra.conf $ vi tiarra.conf
tiarra.conf に Auto::Random モジュールを追加する。
+ Auto::Random { blocks: hogehoge hogehoge { file: /home/pi/tiarra.d/hogehoge.txt file-encoding: utf-8 request: ほげほげ count-query: ほげほげいくつ count-format: ほげほげは#(count)件登録されています。 format: #(message) mask: * *!*@* added-format: #(name|nick.now)さんは ほげほげ に #(message) を追加しました。 removed-format: #(name|nick.now)さんは ほげほげ から #(message) を削除しまし た。 rate: 100 add: ほげほげ追加 remove: ほげほげ削除 modifier: * *@* plum: modifier: * *@* } }
文字コードを shift-jis に戻す
$ nkf -s --overwrite tiarra.conf $ vi tiarra.conf
Auto::Random モジュールを修正
初期状態では Auto::Random にエラーが生じるので LinedDB.pm の 18 行目を次のとおり修正する。
$ cd /home/pi/tiarra.d/module/Tools/ $ vi LinedDB.pm foreach my $key qw(Parse Build Compare Update Hash) { ↓ foreach my $key (qw(Parse Build Compare Update Hash)) {