irssiのプラグインを作る

irssiで全然プラグインとか入れてなかったんだけど、使ってみようとおもってコマンド打ってみた。

Irssi: Unknown command: SCRIPT

って言われた。
なんでなんで?ヘルプにだって使えるって書いてあるのにー?と小一時間調べて、ようやく原因が分かった。


MacPortsでirssi本体しか入れていなかったからだった orz

sudo port install irssi-devel

これでようやく解決。あとは~/.irssi/scripts/にplファイルを置けばそれを読み取ってくれるらしい。


試しに~/.irssi/scripts/hoge.plを書いてみる。

use strict;
use warnings;

use Irssi 'command_bind';
use vars qw($VERSION %IRSSI);

$VERSION = '1.00';

%IRSSI = (
    authors     => 'sugyan',
    contact     => 'sugi1982@gmail.com',
    name        => 'Hoge',
    description => 'hoge fuga piyo',
    license     => 'Public Domain',
);

command_bind hello => sub {
    print 'Hello, world!!';
};

書き方については以下にチュートリアルがある。日本語の資料は見つからなかった。
Scripting Irssi 0.8.6+ - Juerd's site
ともかく、このscriptはirssiの中から呼び出されるものなので、普通にコマンド実行はできない。
Irssiというモジュールを読むように書いておけば、irssiからそれを読み取って実行してくれるらしい。
基本的にコマンドに対する処理か、イベントに反応する処理か、の2択かな。


上記のスクリプトは、irssiから

/script load hoge

とやれば

Irssi: Loaded script hoge

と読み取ってくれる。loadが成功していれば

/hello

というコマンドで

Hello, world!!

と出力してくれる。


ようやくここまで辿り着いた...orz