作業日記@HatenaBlog

各種の作業メモ

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 Pivim 編集では文字化けするため tiarra.conf を開いた時は以下のコマンドを実行する。

:edit ++encoding=sjis
または
:e ++enc=sjis

Shift-jis でファイルを保存

:set fileencoding=sjis
または
:se fenc=sjis

現在のエンコードを確認する。
Vimエンコード

:set enc?

ファイルのエンコード

:se fenc?

自動起動

systemd に自動起動ファイルを記述する。
参考サイト

$ 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)) {

設定ファイルを再読込

IRC クライアントソフトから tiarra に向けて /load コマンドを送る。