nDiki

2014年4月17日 (木)

Perl モジュール AnyEvent::IRC::Client で IRC bot

IRC チャネルに常駐してメッセージの内容を受けて何かをする IRC bot を Perl の AnyEvent::IRC::Client を使って作ってみた。大枠は以下の感じで意外とサクッと書けた。

 #!/bin/env perl

 use warnings;
 use strict;
 use utf8;
 use Encode;
 use AnyEvent;
 use AnyEvent::IRC::Client;

 my $irc_server   = 'irc.example.com';
 my $irc_port     = 6667;
 my $irc_password = 'password';
 my @irc_channels = ("#sandbox");
 my $irc_nick     = 'ae-bot';

 my $c   = AnyEvent->condvar;
 my $irc = AnyEvent::IRC::Client->new;

 $irc->reg_cb(
     publicmsg => sub {
         my ($irc, $channel, $message) = @_;
         my $message_text = decode_utf8($message->{params}->[1]);
         my ($mode, $nick) = $irc->split_nick_mode($message->{prefix});

         # 他の webhook たたいたりもろもろする。
     }
 );

 $irc->connect($irc_server, $irc_port,
     {nick => $irc_nick, password => $irc_password});
 $irc->send_srv("JOIN", $_) foreach @irc_channels;
 $c->recv;
[ 4月17日全て ]

About Me

Naney Naney (なにい)です。株式会社ミクシィで SNS 事業の部長をしています。

nDiki1999年1月に始めたコンピュータ日誌を前身とする NaneyWeb 日記(兼パーソナルナレッジベース)です。ちょっとしたノートは nNote にあります。

※内容は個人的見解であり所属組織とは関係ありません。

月別インデックス
Process Time: 0.144803s / load averages: 0.81, 0.66, 0.55
nDiki by WATANABE Yoshimasa (Naney)
Powered by DiKicker