-
基本的な起動
$ ./citrus
-
config ファイルを指定して起動
$ ./citrus -c ./config.yaml $ ./citrus --config ./config.yaml
gernal: # 基本設定
host: 0.0.0.0 # tiarra等 接続先IRCサーバ
port: 0000 # 接続先 サーバ port
user: hoge # ユーザ名
nick: fuga # ニックネーム
real: hogefuga # 実名
pass: password # パスワード
error: #hoge@fuga # エラー時にpostするチャンネル
plugin_dir: /path/to/plugins # プラグインディレクトリ
data_dir: /path/to/data # データファイルディレクトリ
log: /path/to/logfile # ログファイル.省略した場合は標準出力へ
log_level: debug # FATAL / ERROR / WARN / INFO / DEBUG 省略時はDEBUG
charset:
default: utf-8 # 文字コード
-
プラグインは plugin_dir で指定したディレクトリに置く
-
ファイル名は特にクラス名と一緒にする必要はない. ( ※ただし既存プラグインの多くはクラス名と同じにしている )
-
プラグインは Cotrus::Plugin を継承しよう
class TestPlguin < Citrus::Plugin end
-
プラグインは Citrus 起動時にインスタンスが生成される
-
initialize に渡される引数は以下の 2 つ
・Citrusクラスオブジェクト ・config 内容の配列
-
Citrus::Plugin を継承して initialize を定義する場合はかならず super を呼び出してください. もしくは @core に引数の Citrus クラスオブジェクトを @config に 引数の config 内容の配列を代入してください.
class TestPlugin < Citrus::Plugin def initialize(core, config) super end end
-
Citrus のメソッドが呼び出されるタイミングは 13 回あります
・on_uped # ? ・on_downed # ? ・on_privmsg # 通常のメッセージが POST された ・on_talk # TALKにてメッセージが POST された ・on_notice # Notice にてメッセージが POST された ・on_join # チャンネルに JOIN した ・on_part # チャンネルから PART した ・on_kick # チャンネルから KICK された ・on_invite # チャンネルへ招待された ・on_ctcp # IRC SERVER から PING がきた ・on_mode # モードを変更した ・on_nick # ニックネームを変更した ・on_message # ?
-
他にもIRC コマンドで on_hogehoge とメソッドを定義すればそのコマンドが実行されたタイミングで呼び出しが可能です.
- hpricot => Nokogiri