IRCbot

どうもこんにちは、E3とかWWDCとか見たせいですごく眠いりっくんですこんにちは。とりあえず11インチのAirが欲しいです、あとMac Proはダサいと思います。

さて未だにNode.jsを使ってるんですが、今でも動かしてるTwitterbotの他に、IRCbotがそこそこ完成したので、とりあえずログ残す的な意味でBlogにちょっとだけ書いておきます。

Nodejs_logo_light

Node.jsでIRCbotを作る方法的な

nvmとnpmはインストールしておいてください。

nvm use v0.8.3
npm install irc
npm install iconv

Nodeのバージョンはv0.8.3。v0.11.2だと何かのパッケージが動かなかった気がします。
パッケージの詳細についてはこちらより
https://github.com/martynsmith/node-irc
https://github.com/bnoordhuis/node-iconv

var irc = require('irc');
var iconv = require('iconv');

var conv = new iconv.Iconv("ISO-2022-JP", "UTF-8");
var conv2 = new iconv.Iconv("UTF-8", "ISO-2022-JP//TRANSLIT//IGNORE"); //TRANSLITとIGNOREを指定しておかないと落ちる
var client = new irc.Client('irc.hogehoge.net', 'YourNickname', {
    channels: ['#Channel']
});

client.addListener('message#Channel', function (from, message) {
  console.log(from,':',message);
  client.say('#Channel', conv2.convert('メッセージを受信しました!'));
});

単純にメッセージを返すだけならこれだけで動きます。IRCにつなぐだけなら1行目と5行目だけで接続できるねこれ・・・。うちの鯖がISO-2022-JPを使っていたので、その文字コード変換用にiconvも入れて変換してます。なんかやる時にアレした気がする・・・。

一応、今動かしてるのはmessageを見て、あるキーワード入ってたらWikipediaから情報拾ってくるbotになってます。それをやるにはRequestを使うんですけども。
https://github.com/mikeal/request
常用にするにはまだ少し不安定だけど、とりあえず結構簡単に作れますね。

前回も言ったかもしれないけど、foreverってのを使えばNodeのアプリケーションを簡単にデーモン化できるので、それで立ち上げっぱなしにするとか良いと思います。

ちょっと前に見たんだけど、Nodeって確かにこれだなってのを最後に貼って、このエントリは終わります。面白いです・・・。

SNSでもご購読できます。

Leave a Reply