From aaafbeea9847b0654b35fcf3967087c4ab298e2b Mon Sep 17 00:00:00 2001 From: konekoneko Date: Fri, 16 Nov 2012 20:39:02 +0900 Subject: [PATCH] =?utf8?q?=E8=A8=AD=E5=AE=9A=E3=81=A8=E3=83=A1=E3=83=83?= =?utf8?q?=E3=82=BB=E3=83=BC=E3=82=B8=E9=96=A2=E9=80=A3=E3=82=92=E5=88=A5?= =?utf8?q?=E3=83=95=E3=82=A1=E3=82=A4=E3=83=AB=E3=81=AB=E5=88=86=E9=9B=A2?= =?utf8?q?=E3=81=97=E3=81=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- chat.js | 33 +++++++++++++-------------------- configure.js | 14 ++++++++++++++ main.js | 20 +++++++++----------- profile.js | 53 ++++++++++++++++++++++------------------------------- readme.html | 7 ++++--- resources.js | 13 +++++++++++++ 6 files changed, 75 insertions(+), 65 deletions(-) create mode 100644 configure.js create mode 100644 resources.js diff --git a/chat.js b/chat.js index a2fd994..5b68ad5 100644 --- a/chat.js +++ b/chat.js @@ -1,23 +1,16 @@ -$max_room_number = 3; //最大ルーム数 -$spilt_size = 1024 * 512; //分割するサイズ +$spilt_size = 1024 * 512; //分割するサイズ $reset_password_diff = 1000 * 60 * 60; //ルームパスワードをリセットする間隔 $gc_time_interval = 1000 * 60 * 60; //ゴミ掃除を行う間隔 -$invaild_token_message = "トークンが一致しませんでした"; -$block_message = "メッセージの送信に失敗しました"; //ブロック時のメッセージ -$not_match_password = "パスワードが一致しませんでした"; //パスワードが一致しない場合に表示されるメッセージ -$password_setted_message = "パスワードを設定しました"; //パスワードが設定されたときに表示されるメッセージ -$password_resetted_message = "パスワードをリセットしました"; //パスワードが再設定されたときに表示されるメッセージ -$failed_set_password_message = "パスワードの設定に失敗しました"; //パスワードが再設定されたときに表示されるメッセージ $ip_ban_list_file_name = "ipbanlist.txt"; //アクセスを禁止するIPが記録されているファイル $room_configure_file_name = "roomlist.txt"; //ルームの設定が記録されているファイル -$username = "admin"; //管理者用のページにアクセスできるユーザ名 -$password = "admin"; //管理者用のページにアクセスするのに必要なパスワード $system_name = "system"; //システム発言を表す名前 $log_directory = "log"; //ログファイルを置くフォルダー $log_file_name = "logfile%d.txt"; //ログファイル名(%dはそのままにしておくこと) $splited_log_file_name = "logfile%d_%s.txt" //分割後のファイル名(%dと%sはそのままにしておくこと) $pastlogfile_pattern = "logfile%d(_+.*)?\.txt"; //過去ログと判定する正規表現 +var resource = require("./resources.js"); +var config = require("./configure.js"); var lazy = require("./lazy.js"); var security = require("./security.js"); var fs = require("fs"); @@ -49,7 +42,7 @@ module.exports = function(app,server,express,session){ io.set("log level", 1); // ログレベルを設定(デフォルトより下げている) }); - for(var i = 0; i < $max_room_number; i++) + for(var i = 0; i < config.max_room_number; i++) { clients[i] =io .of(GetNameFromRoomNumber(i)) @@ -69,7 +62,7 @@ function chat_proc(req, res){ } function auth_proc(user, pass) { - return user === $username && pass === $password; + return user === config.username && pass === config.password; } function log_proc(req, res) { @@ -89,7 +82,7 @@ function adminchat_proc(req, res){ function admin_postproc(req,res){ if(req.session.items.token != req.body.token) { - res.send($invaild_token_message); + res.send(resource.invaild_token_message); return; } if(typeof(req.body.erase) != "undefined") @@ -244,7 +237,7 @@ function RoomInfomationCollection() } function Clear(){ collection = {}; - for(var i = 0; i < $max_room_number; i++) + for(var i = 0; i < config.max_room_number; i++) Add(i,null,null); }; function Add(rno,pass,hiddenlogflag){ @@ -539,9 +532,9 @@ function ParseSetPassword(socket,msg) message:null, }; if($rooms.Get(rno).IsVolatile() == false && $rooms.Get(rno).SetPassword(msg.owner,msg.password)) - newMeg.message = $password_setted_message; + newMeg.message = resource.password_setted_message; else - newMeg.message = $failed_set_password_message; + newMeg.message = resource.failed_set_password_message; ParseSendMsg(socket,newMeg); } @@ -551,7 +544,7 @@ function ParseJoin(socket,msg) if(ipbanlist.IsBlockedToWrite(ip)) { - socket.emit("error",$block_message); + socket.emit("error",resource.block_message); return; } @@ -595,7 +588,7 @@ function ParseQuit(socket,msg) if(ipbanlist.IsBlockedToWrite(ip)) { - socket.emit("error",$block_message); + socket.emit("error",resource.block_message); return; } @@ -603,7 +596,7 @@ function ParseQuit(socket,msg) var newMeg = { name:$system_name, - message:$password_resetted_message, + message:resource.password_resetted_message, }; $rooms.Get(rno).AddRom(ip); @@ -638,7 +631,7 @@ function ParseSendMsg(socket,msg) if(ip in ipbanlist) { - socket.emit("error",$block_message); + socket.emit("error",resource.block_message); return; } diff --git a/configure.js b/configure.js new file mode 100644 index 0000000..f02ca1b --- /dev/null +++ b/configure.js @@ -0,0 +1,14 @@ +module.exports = { + enable_profile : true, //プロファイル機能を使用するなら真。そうでないなら、偽 + port : process.env.port || 3000, //ポート + redisHost : "localhost", //redisサーバのアドレス + redisPort : 6379, //redisサーバのポート + redisPassword : "", //redisサーバのパスワード + db_user : "user", //MySQLサーバーのユーザー名 + db_password : "user", //MySQLサーバーのパスワード + db_host : "localhost", //MySQLサーバーのアドレス + db_limit : 50, //一度に表示する件数 + username : "admin", //管理者用のページにアクセスできるユーザ名 + password : "admin", //管理者用のページにアクセスするのに必要なパスワード + max_room_number : 3, //最大ルーム数 +}; diff --git a/main.js b/main.js index 04e9a91..cd72b94 100644 --- a/main.js +++ b/main.js @@ -2,13 +2,7 @@ // //設定 // -$enable_profile = true; //プロファイル機能を使用するなら真。そうでないなら、偽 - -$port = process.env.port || 3000; //ポート -$redisHost = "localhost"; //redisサーバのアドレス -$redisPort = 6379; //redisサーバのポート -$redisPassword = ""; //redisサーバのパスワード - +var config = require("./configure.js"); // // // @@ -20,7 +14,11 @@ var express = require("express"); var app = express(); var http = require("http"); var RedisStore = require("connect-redis")(express); -var sessionStore = new RedisStore({host:$redisHost,port:$redisPort,pass:$redisPassword}); +var sessionStore = new RedisStore({ + host:config.redisHost, + port:config.redisPort, + pass:config.redisPassword +}); // Configuration @@ -48,10 +46,10 @@ app.configure("production", function(){ app.use(express.errorHandler()); }); -if($enable_profile) +if(config.enable_profile) require("./profile")(app); -var server = http.createServer(app).listen($port); -console.log("Express server listening on port %d in %s mode", $port, app.settings.env); +var server = http.createServer(app).listen(config.port); +console.log("Express server listening on port %d in %s mode", config.port, app.settings.env); require("./chat")(app,server,express,sessionStore); diff --git a/profile.js b/profile.js index 2960b83..06bc5d2 100644 --- a/profile.js +++ b/profile.js @@ -1,14 +1,5 @@ -$db_user = "user"; -$db_password = "user"; -$db_limit = 50; - -$unmatch_password = "パスワードが一致しません"; -$invaild_parameter = "パラメーターが正しくありません"; -$success_registor = "登録に成功しました"; -$success_remove = "削除に成功しました"; -$success_edit = "編集に成功しました"; -$notfound_name = "該当名が存在しません"; - +var config = require("./configure.js"); +var resource = require("./resources.js"); var util = require("util"); var async = require("async"); var security = require("./security.js"); @@ -49,7 +40,7 @@ function admin_proc(req, res) function admin_postproc(req,res) { if(req.session.items.token != req.body.token){ - RenderMessage(res,$invaild_parameter,req.session.items); + RenderMessage(res,resource.invaild_parameter,req.session.items); return; } async.waterfall([ @@ -63,7 +54,7 @@ function admin_postproc(req,res) if(err != null) RenderMessage(res,err,req.session.items); else - RenderMessage(res,$success_remove,req.session.items); + RenderMessage(res,resource.success_remove,req.session.items); }); } @@ -85,7 +76,7 @@ function list_proc(req, res) function PrepaerListAsync(req,callback) { - var limit = $db_limit; + var limit = config.db_limit; var start = 0; var parttern = ""; if(typeof(req.query.start) != "undefined") @@ -122,7 +113,7 @@ function detail_proc(req, res) { if(typeof(req.query.name) == "undefined") { - RenderMessage(res,$invaild_parameter,req.session.items); + RenderMessage(res,resource.invaild_parameter,req.session.items); return; } @@ -137,7 +128,7 @@ function detail_proc(req, res) if(err != null) RenderMessage(res,err,req.session.items); else if(result.length == 0) - RenderMessage(res,$notfound_name,req.session.items); + RenderMessage(res,resource.notfound_name,req.session.items); else{ res.render("profile\\detail",{list:result,token:req.session.items.token,admin:req.session.items.admin}); } @@ -147,7 +138,7 @@ function detail_proc(req, res) function detail_postproc(req, res) { if(req.session.items.token != req.body.token){ - RenderMessage(res,$invaild_parameter,req.session.items); + RenderMessage(res,resource.invaild_parameter,req.session.items); return; } if(typeof(req.body.remove) != "undefined"){ @@ -168,9 +159,9 @@ function detail_postproc(req, res) if(err != null) RenderMessage(res,err,req.session.items); else if(result == null) - RenderMessage(res,$unmatch_password,req.session.items); + RenderMessage(res,resource.unmatch_password,req.session.items); else - RenderMessage(res,$success_remove,req.session.items); + RenderMessage(res,resource.success_remove,req.session.items); }); }else if(typeof(req.body.edit) != "undefined"){ async.waterfall([ @@ -192,23 +183,23 @@ function detail_postproc(req, res) }else if(result != null){ res.render("profile\\edit",{list:result,token:req.body.token}); }else{ - RenderMessage(res,$unmatch_password,req.session.items); + RenderMessage(res,resource.unmatch_password,req.session.items); } }); }else{ - RenderMessage(res,$invaild_parameter,req.session.items); + RenderMessage(res,resource.invaild_parameter,req.session.items); } } function edit_postproc(req, res) { if(req.session.items.token != req.body.token){ - RenderMessage(res,$invaild_parameter,req.session.items); + RenderMessage(res,resource.invaild_parameter,req.session.items); return; } if(typeof(req.body.name) == "undefined") { - RenderMessage(res,$invaild_parameter,req.session.items); + RenderMessage(res,resource.invaild_parameter,req.session.items); return; }else if(typeof(req.body.edit) != "undefined"){ async.waterfall([ @@ -219,17 +210,17 @@ function edit_postproc(req, res) if(err != null) RenderMessage(res,err,req.session.items); else - RenderMessage(res,$success_edit,req.session.items); + RenderMessage(res,resource.success_edit,req.session.items); }); }else{ - RenderMessage(res,$invaild_parameter,req.session.items); + RenderMessage(res,resource.invaild_parameter,req.session.items); } } function registor_postproc(req, res) { if(req.session.items.token != req.body.token){ - RenderMessage(res,$invaild_parameter,req.session.items); + RenderMessage(res,resource.invaild_parameter,req.session.items); return; } if(typeof(req.body.registor) != "undefined"){ @@ -241,10 +232,10 @@ function registor_postproc(req, res) if(err != null) RenderMessage(res,err,req.session.items); else - RenderMessage(res,$success_registor,req.session.items); + RenderMessage(res,resource.success_registor,req.session.items); }); }else{ - RenderMessage($invaild_parameter,req.session.items); + RenderMessage(resource.invaild_parameter,req.session.items); } } @@ -271,9 +262,9 @@ function ProfileCollection() { var MySQLPool = new require("./mysql_pool.js"); var pool = new MySQLPool({ - host : "localhost", - user : $db_user, - password : $db_password, + host : config.db_host, + user : config.db_user, + password : config.db_password, database : "profile", }); this.AuthAsync = function(name,password,cb){ diff --git a/readme.html b/readme.html index b77369a..05d038b 100644 --- a/readme.html +++ b/readme.html @@ -22,7 +22,8 @@
  • ここのダウンロードからMySQLをダウンロードし、インストールする
  • mysql -u root -p < init.sqlを実行する
  • npm installを実行する
  • -
  • chat.jsの$usernameと$passwordを適切なものに変更する
  • +
  • configue.jsのusernameとpasswordを適切なものに変更する
  • +
  • configue.jsのredisHost、redisPort、redisPasswordを変更する(ローカル内でRedisSeverを起動する場合は不要)
  • redisを起動し、main.jsを起動する
  • CentOS系列

    @@ -44,8 +45,8 @@
  • makeを実行し、make installも実行する
  • git clone git://git.sourceforge.jp/gitroot/webchat/WebChat.gitを実行する
  • npm installを実行する
  • -
  • chat.jsの$usernameと$passwordを適切なものに変更する
  • -
  • main.jsの$redisHost、$redisPort、$redisPasswordを変更する(ローカル内でRedisSeverを起動する場合は不要)
  • +
  • configue.jsのusernameとpasswordを適切なものに変更する
  • +
  • configue.jsのredisHost、redisPort、redisPasswordを変更する(ローカル内でRedisSeverを起動する場合は不要)
  • main.jsを起動する
  • 管理サイト

    diff --git a/resources.js b/resources.js new file mode 100644 index 0000000..5b281fd --- /dev/null +++ b/resources.js @@ -0,0 +1,13 @@ +module.exports = { + unmatch_password : "パスワードが一致しません", + invaild_parameter : "パラメーターが正しくありません", + success_registor : "登録に成功しました", + success_remove : "削除に成功しました", + success_edit : "編集に成功しました", + notfound_name : "該当名が存在しません", + invaild_token_message : "トークンが一致しませんでした", + block_message : "メッセージの送信に失敗しました", + password_setted_message : "パスワードを設定しました", + password_resetted_message : "パスワードをリセットしました", + failed_set_password_message : "パスワードの設定に失敗しました", +}; -- 2.11.0