こんにちは! ゆきぽんずです
今日はやっと発言回数をカウントするBOTを作成できたので、コードの紹介をしていこうと思います
*今回はコードの紹介のみとなります
なるべく初心者の方にもわかりやすいようにプログラムを書きました
ただ、今回の実行結果については、個人情報的な関係で載せれていません
大変申し訳ありませんm(__)m
プログラムは載せておきますので、こちらで勘弁してください
各自で実行してみてください
発言回数をカウントするBOTのプログラム
ファイル名 : mysql_hubot.js
'use strict';
var mysql = require('mysql');
var db_connection = mysql.createConnection({
host: "localhost",
user: "root",
password: "自分が決めたパスワード",
database: "hubot_numberofutterances"
});
(function() {
module.exports = function(robot) {
return robot.hear(/(.*)/i, function(msg) {
var name = msg.message.user.name;
var userComment = msg.match[0];
var flag = 0;
var get_hubot_table = 'SELECT * FROM hubot';
db_connection.query(get_hubot_table, function (err, result) {
if (err) throw err;
for(var i=0; i<result.length; i++){
if(result[i].user_name === name){
flag = 1;
msg.send("already exist");
break;
}
}
if(flag !== 1){
msg.send("not exits");
var insert_person = "INSERT INTO hubot(user_name, numberofutterances) VALUES("+ mysql.escape(name) +", 0)";
db_connection.query(insert_person, function (err, result) {
if (err) throw err;
msg.send("insert new person");
});
}
});
if (userComment === "発言回数") {
var count_plus_one = "UPDATE hubot SET numberofutterances = numberofutterances+1 where user_name = "+ mysql.escape(name) +"";
db_connection.query(count_plus_one, function (err, result) {
if (err) throw err;
});
db_connection.query(get_hubot_table, function (err, results) {
if (err) throw err;
for(var i=0; i<results.length; i++){
msg.send(results[i].user_name + ':' + results[i].numberofutterances + '回');
}
});
}
else if(userComment === "発言回数リセット"){
var count_reset = "UPDATE hubot SET numberofutterances = 0";
db_connection.query(count_reset, function (err, result) {
if (err) throw err;
msg.send("発言回数をリセットしました。");
});
db_connection.query(get_hubot_table, function (err, results) {
if (err) throw err;
for(var i=0; i<results.length; i++){
msg.send(results[i].user_name + ':' + results[i].numberofutterances + '回');
}
});
}
else{
var words_count = "UPDATE hubot SET numberofutterances = numberofutterances+1 where user_name = "+ mysql.escape(name) +"";
db_connection.query(words_count, function (err, result) {
if (err) throw err;
});
db_connection.query(get_hubot_table, function (err, results) {
if (err) throw err;
});
}
});
};
}).call(this);
結構長いコードになってしまいました
もっと短く出来ると思いますが、今回は初心者でもわかりやすいというコンセプトで作っているので少し冗長的です
作るのに3日間もかかってしまいました
これからこの発言回数をカウントするBOTにもっといろいろな機能を付けていきたいと思います
AI機能を付けると面白そうですね
これからも進捗をブログに書いていきます
今日も読んでくださりありがとうございます
あなたのそばにゆきぽんず