garoonbot
会社のグループウェア、いままでずっと自社開発のものを使っていたのだが、国産大手のものにリプレイスしてみた。世のみんながどんなものを使っているのかな、というのを知る意味もある。
いままで使っていたグループウェアは、irc botとも連携するようになっていて、内線番号の設定や参照、現在位置の登録や予定の参照もircからぐいぐい行えてなかなか便利だった。ここは自社開発のメリットだ。
会社はフリーアドレスなので、TPOに応じて好き勝手なところに座って仕事するから、座ったらircで「内線 123」とかつぶやけばグループウェアに反映される、これは快適だ。
市販品のグループウェアに乗り換えたらここはどうするかな、と思っていたが、マニュアルを読むと、データベースのバックアップ手順の解説にmysqldumpとかいうコマンドがでてきたりして、つまりそういうことだ。ふむふむと見てみるとなかなかきれいだ。というような話はどこまで書いていいのかわからないが。takesakoさんに聞いてみようか (わら
いままでのグループウェアと、新しいグループウェアと、それぞれデータ構造をいじるperl moduleを書いてコンバータを作ったあと、さらにちょっと軽めのpmも書いて、botも書いて、まあ同等にいけるようになった。
use POE;
use POE::Component::IRC;
use GaroonBoy;
use utf8;とか
POE::Session->;create(
package_states => [
main => [ qw(_default _start irc_001 irc_public irc_invite) ],
],
heap => { irc => $irc });
our $garoon = new GaroonBoy;
$poe_kernel->run();
exit 0;とか
if($msg =~ m/^(?:よてい|予定|yotei)(?:おしえて|教えて|oshiete|osiete)(.*)$/) {
$res = $garoon->get_user_schedule($nick, $1);
}
if($msg =~ m/^(?:よやく|予約|yoyaku)(?:おしえて|教えて|oshiete|osiete)(.*)$/) {
$res = $garoon->get_facility_schedule($nick, $1);
}
if($msg =~ m/^([a-zA-Z0-9-]+)\?$/) {
$res = $garoon->get_current_user_schedule($nick, $1);
}
if($res) {
for my $line (split("\n", $res)){
$poe_kernel->post($sender => privmsg => $channel => Encode::encode('iso-2022-jp', $line));
}
}こんな感じ。