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 をソースコードからビルドした時に出まくったカラフルなコンソール画面
以上
