bellum on ボットをつくろう!!
概要
「bellum 文字が流れるチャットアドオン」でも書いた bellum で動く定型文応答ボットを作ったので公開する。準備
必要なモジュールをインストールしてくださいnpm install socket.io-client
ソースコード
bot1.js/* * 祝!bellum 公開 * bellum 閑居ってる(´Д⊂ヽウェェェン * ぼっとつくろ。 * 2014 / 9 / 22 * jskny */ var io = require('socket.io-client'); var jsSHA = require("./sha512"); // サーバーのアドレス var SERVER_URL = "http://bellum-server.herokuapp.com/"; // このアドレスのルームとして接続する。 var ATTACK_URL = process.argv[2]; // 「node bot1.js www.risdy.net/」 で動く var g_sock = Connect(); setInterval(Kasikoi, 10000); console.log("Bot running."); //---------------------------------------------------------- function Connect() { var socket = io.connect(SERVER_URL); // サーバーへつながったよ socket.on("connect", function() { // 入室する部屋番号とか送信する // セキュリティーとか問題になっているからサーバーに送るアドレスはハッシュ化しておく。 var url = ATTACK_URL; url = (new jsSHA(url,'ASCII')).getHash('SHA-512','HEX'); // 初期化コマンド送信 socket.json.emit("init", { "room": url }); }); // サーバーから切断された socket.on("disconnect", function(client) { }); // メッセージ受信 socket.on("S_to_C_message", function(data) { // 定型文応対 var retStr = "[Bot1]"; if (data.value == "こんにちは") { retStr += "こんにちは~(=_=)"; } if (data.value == "おはよう") { retStr += "おはよう~(+_+)"; } if (data.value == "おやすみ") { retStr += "おやすみ~(@_@)"; } if (data.value == "しんちょく") { retStr += "(・_・)?"; } if (data.value == "進捗") { retStr += "(・△・)ア?"; } if (retStr.length > 6) { socket.json.emit("C_to_S_broadcast", {value:retStr}); } }); return (socket); } var g_counter = 0; function Kasikoi() { // デフォルトメッセージ var mesgs = [ "[BOT1号]ひまーーー", "[BOT1号]私は定型文反応しかできないよ", "[BOT1号]ぐるぐるぐるぐる", ]; g_sock.json.emit("C_to_S_broadcast", {value:mesgs[g_counter % mesgs.length], secure:false}); g_counter++; }
進捗聞かないでください。
自宅のサーバーから http://www.risdy.net/ を対象にボットを稼働させておりますので bellum をインストールなされたお方は動作のご確認にでもご使用ください。
自宅のサーバーから http://www.risdy.net/ を対象にボットを稼働させておりますので bellum をインストールなされたお方は動作のご確認にでもご使用ください。
おまけ
node.js をソースコードからビルドした時に出まくったカラフルなコンソール画面
以上