
どうもこんにちは、E3とかWWDCとか見たせいですごく眠いりっくんですこんにちは。とりあえず11インチのAirが欲しいです、あとMac Proはダサいと思います。
さて未だにNode.jsを使ってるんですが、今でも動かしてるTwitterbotの他に、IRCbotがそこそこ完成したので、とりあえずログ残す的な意味でBlogにちょっとだけ書いておきます。
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って確かにこれだなってのを最後に貼って、このエントリは終わります。面白いです・・・。
node.jsを書いていると穴の空いたバケツに水をいれるような感覚になるし、穴をふさぐような仕組みを作ったらそれはもうnode.jsではなくなる
— Tajima Itsuroさん (@niryuu) 2013年5月29日