$log_file_name = "logfile%d.txt"; //ログファイル名(%dはそのままにしておくこと)\r
$splited_log_file_name = "logfile%d_%s.txt" //分割後のファイル名(%dと%sはそのままにしておくこと)\r
\r
-var resource = require("./resources.js");\r
-var config = require("./configure.js");\r
-var security = require("./security.js");\r
-var lazy = require("lazy");\r
-var fs = require("fs");\r
-var async = require("async");\r
-var path = require("path");\r
-var util = require("util");\r
-var cookie = require("express/node_modules/cookie");\r
-var connectUtils = require("express/node_modules/connect/lib/utils");\r
-\r
var clients = new Array();\r
\r
var sessionStore;\r
app.get("/chat/admin", admin_proc);\r
app.post("/chat/admin",admin_postproc);\r
\r
+ var config = require("./configure.js");\r
var io = require("socket.io").listen(server);\r
io.configure("production", function(){\r
io.set("transports", config.transports);\r
};\r
\r
function chat_proc(req, res){\r
+ var security = require("./security.js");\r
var info = new security.SessionInfomation(false);\r
req.session.items = info;\r
\r
}\r
\r
function auth_proc(user, pass) {\r
+ var config = require("./configure.js");\r
return user === config.username && pass === config.password;\r
}\r
\r
\r
function admin_proc(req,res)\r
{\r
+ var security = require("./security.js");\r
var info = new security.SessionInfomation(true);\r
req.session.items = info;\r
var iplist = ipbanlist.GetText();\r
+ var fs = require("fs");\r
\r
fs.readdir($log_directory,function(err,list){\r
res.setHeader("X-FRAME-OPTIONS","DENY");\r
callback();\r
return;\r
}\r
-\r
+ var async = require("async");\r
async.map(files,\r
function(item,callback){\r
+ var fs = require("fs");\r
fs.unlink($log_directory + "/" + item,callback);\r
},\r
function(err,results){\r
//RoomInfomationCollecionクラス\r
function RoomInfomationCollection()\r
{\r
+ var config = require("./configure.js");\r
var MySQLPool = new require("./mysql_pool.js");\r
var pool = new MySQLPool({\r
host : config.db_host,\r
}\r
this.Update = function(data,callfunc){\r
Clear();\r
+ var async = require("async");\r
async.waterfall([\r
function(next){\r
pool.query("TRUNCATE TABLE rooms",null,next);\r
},\r
function(result,next){\r
+ var util = require("util");\r
console.log(util.inspect(data));\r
var items = new Array();\r
var config = data.config;\r
}\r
function GetRoomList(callback){\r
Clear();\r
+ var async = require("async");\r
async.waterfall([\r
function(next){\r
pool.query("SELECT * FROM rooms",null,next);\r
}\r
function Clear(){\r
collection = {};\r
+ var config = require("./configure.js");\r
for(var i = 0; i < config.max_room_number; i++)\r
Add(i,null,null);\r
};\r
//IPBANクラス\r
function IpBanCollecion()\r
{\r
+ var config = require("./configure.js");\r
var MySQLPool = new require("./mysql_pool.js");\r
var pool = new MySQLPool({\r
host : config.db_host,\r
}\r
this.Update = function(text,callfunc){\r
collection = {};\r
+ var async = require("async");\r
async.waterfall([\r
function(next){\r
pool.query("TRUNCATE TABLE ipbanlist",null,next);\r
}\r
function GetIpBanList(callfunc)\r
{\r
+ var async = require("async");\r
async.waterfall([\r
function(next){\r
pool.query("SELECT * FROM ipbanlist",null,next);\r
\r
function createLogDirectory()\r
{\r
+ var fs = require("fs");\r
fs.exists($log_directory,function(exists){\r
if(exists == false)\r
fs.mkdirSync($log_directory);\r
\r
function ParseAuthorization(handshakeData, callback)\r
{\r
+ var connectUtils = require("express/node_modules/connect/lib/utils");\r
if(handshakeData.headers.cookie) {\r
+ var cookie = require("express/node_modules/cookie");\r
var signedCookie = cookie.parse(handshakeData.headers.cookie);\r
var sessionID = connectUtils.parseSignedCookies(signedCookie, $secret)["connect.sid"];\r
sessionStore.get(sessionID, function (err, session) {\r
name:$system_name,\r
message:null,\r
};\r
+ var resource = require("./resources.js");\r
if($rooms.Get(rno).IsVolatile() == false && $rooms.Get(rno).SetPassword(msg.owner,msg.password))\r
newMeg.message = resource.password_setted_message;\r
else\r
\r
if(ipbanlist.IsBlockedToWrite(ip))\r
{\r
+ var resource = require("./resources.js");\r
socket.emit("error",resource.block_message);\r
return;\r
}\r
socket.json.emit("send romcount",romcount);\r
socket.json.broadcast.emit("send romcount",romcount);\r
\r
+ var util = require("util");\r
if($rooms.Get(rno).IsVolatile() == false)\r
{\r
if($rooms.Get(rno).IsTimeout() ||\r
}\r
else\r
{\r
+ var resource = require("./resources.js");\r
socket.emit("error",resource.unmatch_password);\r
return;\r
}\r
{\r
var ip = GetClientIPAdress(socket);\r
\r
+ var resource = require("./resources.js");\r
if(ipbanlist.IsBlockedToWrite(ip))\r
{\r
socket.emit("error",resource.block_message);\r
$rooms.Get(rno).RemoveAuth(msg.name);\r
}\r
\r
+ var util = require("util");\r
newMeg.message = util.format("/quitedby %s",msg.name);\r
ParseSendMsg(socket,newMeg);\r
}\r
\r
if(ip in ipbanlist)\r
{\r
+ var resource = require("./resources.js");\r
socket.emit("error",resource.block_message);\r
return;\r
}\r
\r
socket.json.broadcast.emit("req msg", repacked_msg);\r
\r
+ var util = require("util");\r
var path = $log_directory + "/" + util.format($log_file_name,rno);\r
var log = new ChatLog(path);\r
log.Save(repacked_msg,ip,rno);\r
return;\r
var path = $log_directory + "/" + file;\r
var log = new ChatLog(path);\r
+ var config = require("./configure.js");\r
log.ToArray(config.showip,function(array){\r
socket.json.emit("req pastlog",array);\r
});\r
{\r
this.ToArray = function(hasIp,callback)\r
{\r
+ var fs = require("fs");\r
var state = fs.stat(path,function(err,state){\r
if(err)\r
return;\r
var array = new Array();\r
var stream = fs.createReadStream(path);\r
+ var lazy = require("lazy");\r
new lazy(stream)\r
.lines\r
.forEach(function(line){\r
\r
function SplitLog(rno,callback)\r
{\r
+ var util = require("util");\r
+ var fs = require("fs");\r
var state = fs.stat(path,function(err,state){\r
if(err && typeof(callback) == "function")\r
{\r
\r
function WritePastLog(path,text)\r
{\r
+ var fs = require("fs");\r
+ var async = require("async");\r
async.waterfall([\r
function(callback){\r
fs.open(path,"a",callback);\r