From: konekoneko Date: Sun, 18 Nov 2012 10:15:11 +0000 (+0900) Subject: ログの形式を変更した X-Git-Url: http://git.osdn.jp/view?a=commitdiff_plain;h=4209c7c3930f0002ac031fdaa1af2ad72cc8f3ec;p=webchat%2FWebChat.git ログの形式を変更した 発言時に改行をbbcodeに変換するようにした /admin_chatを廃止した --- diff --git a/chat.js b/chat.js index 9ab0aea..4fb80fd 100644 --- a/chat.js +++ b/chat.js @@ -29,8 +29,6 @@ module.exports = function(app,server,express,session){ app.get("/chat", chat_proc); app.all("/log/*",express.basicAuth(auth_proc)); app.get("/log/*",log_proc); - app.all("/admin_chat",express.basicAuth(auth_proc)); - app.get("/admin_chat", adminchat_proc); app.all("/admin",express.basicAuth(auth_proc)); app.get("/admin", admin_proc); app.post("/admin",admin_postproc); @@ -69,16 +67,6 @@ function log_proc(req, res) { res.sendfile(__dirname + req.url); } -function adminchat_proc(req, res){ - var info = new security.SessionInfomation(true); - req.session.items = info; - - var room_number = 0; - if(typeof(req.query.rno) != "undefined") - room_number = req.query.rno; - res.render("chat",{rno:room_number,token:info.token}); -} - function admin_postproc(req,res){ if(req.session.items.token != req.body.token) { @@ -464,7 +452,6 @@ function ParseConnect(socket) room.AddRom(ip); var roomconfig = room.GetConfig(); - roomconfig.admin = socket.handshake.admin; socket.json.emit("send roominfo",roomconfig); var romcount = room.GetRomCount(); @@ -508,10 +495,7 @@ function ParseAuthorization(handshakeData, callback) else if(handshakeData.query.token != session.items.token) result = "invaild token"; if(typeof(session) != "undefined" && result == null) - { - handshakeData.admin = session.items.admin; handshakeData.sessionID = sessionID; - } callback(result,result == null && !err); }); } else { @@ -703,7 +687,7 @@ function ParseGetPastLog(socket,file) return; var path = $log_directory + "/" + file; var log = new ChatLog(path); - log.ToArray(socket.handshake.admin,function(array){ + log.ToArray(config.showip,function(array){ socket.json.emit("req pastlog",array); }); } @@ -718,7 +702,7 @@ function ChatLog(path) var array = new Array(); var stream = fs.createReadStream(path); new lazy(stream) - .spilt(";") + .lines .forEach(function(line){ var msg = CreateMessageFromText(line.toString()); if(hasIp == false) @@ -745,7 +729,7 @@ function ChatLog(path) msg.date + "<>" + ip + "<>" + msg.message + - ";"; + "\n"; return text; } diff --git a/configure.js b/configure.js index 4897a06..ce3cb4b 100644 --- a/configure.js +++ b/configure.js @@ -12,4 +12,5 @@ username : "admin", //管理者用のページにアクセスできるユーザ名 password : "admin", //管理者用のページにアクセスするのに必要なパスワード max_room_number : 3, //最大ルーム数 + showip : false, //IPアドレスを表示するなら真。そうでないなら、偽 }; diff --git a/public/scripts/bbcode.js b/public/scripts/bbcode.js index 2417533..fb4050f 100644 --- a/public/scripts/bbcode.js +++ b/public/scripts/bbcode.js @@ -44,7 +44,7 @@ var noparse = false; // ignore BBCode tags? var urlstart = -1; // beginning of the URL if zero or greater (ignored if -1) // aceptable BBcode tags, optionally prefixed with a slash -var tagname_re = /^\/?(?:b|i|u|pre|samp|code|colou?r|size|noparse|url|s|q|blockquote)$/; +var tagname_re = /^\/?(?:b|br|i|u|pre|samp|code|colou?r|size|noparse|url|s|q|blockquote)$/; // color names or hex color var color_re = /^(:?black|silver|gray|white|maroon|red|purple|fuchsia|green|lime|olive|yellow|navy|blue|teal|aqua|#(?:[0-9a-f]{3})?[0-9a-f]{3})$/i; @@ -56,7 +56,7 @@ var number_re = /^[\\.0-9]{1,8}$/i; var uri_re = /^[-;\/\?:@&=\+\$,_\.!~\*'\(\)%0-9a-z]{1,512}$/i; // main regular expression: CRLF, [tag=option], [tag] or [/tag] -var postfmt_re = /([\r\n])|(?:\[([a-z]{1,16})(?:=([^\x00-\x1F"'\(\)<>\[\]]{1,256}))?\])|(?:\[\/([a-z]{1,16})\])/ig; +var postfmt_re = /([\r\n])|(?:\[([a-z]{1,16})(?:=([^\x00-\x1F"'\(\)<>\[\]]{1,256}))?\])|(?:\[\/([a-z]{1,16})\])|(?:\[([a-z]{1,16})\/\])/ig; // stack frame object function taginfo_t(bbtag, etag) @@ -80,7 +80,7 @@ function isValidTag(str) // m3 - the option of the [tag=option] expression // m4 - the end tag of the [/tag] expression // -function textToHtmlCB(mstr, m1, m2, m3, m4, offset, string) +function textToHtmlCB(mstr, m1, m2, m3, m4, m5, offset, string) { // // CR LF sequences @@ -97,6 +97,17 @@ function textToHtmlCB(mstr, m1, m2, m3, m4, offset, string) } } + if(isValidTag(m5)){ + // if in the noparse state, just echo the tag + if(noparse) + return "[" + m5 + "/]"; + + switch (m5) { + case "br": + crlf2br = false; + return "
"; + } + } // // handle start tags // diff --git a/public/scripts/chatclient.js b/public/scripts/chatclient.js index e09b65e..4b35312 100644 --- a/public/scripts/chatclient.js +++ b/public/scripts/chatclient.js @@ -15,7 +15,6 @@ $free_password1 = "最初に入室する人が自由にパスワードを設定 $free_password2 = "この部屋は使用されています。パスワードを入力してください"; //自由パスワードメッセージ2 $fixed_password = "この部屋にはパスワードが設定されています"; //固定パスワードルーム $hidden_log_to_rom = "この部屋ではROMできないようになっています"; //ROM禁止ルーム -$adminmsg = "(管理モード)"; //管理モード $romcount_msg = "ROM(%d人)" //ROMカウント //ここから先は変更しないでください @@ -83,11 +82,6 @@ function sendRoomInfoListerner(info) msg = $hidden_log_to_rom; logflag = false; } - if(info.admin) - { - logflag = true; - msg += $adminmsg; - } if(msg != "") $("#enter_message").append(msg); if(logflag) @@ -157,7 +151,7 @@ function pastLogEventListerner(msg) function getMessageEventListerner(msg) { - if(IsRomMode() && $roominfo.type != 0 && $roominfo.admin == false) + if(IsRomMode() && $roominfo.type != 0) return; ParseMessage(msg); createNameList(); diff --git a/public/scripts/commandparser.js b/public/scripts/commandparser.js index 6faa8e2..1bbf568 100644 --- a/public/scripts/commandparser.js +++ b/public/scripts/commandparser.js @@ -90,6 +90,11 @@ CommandParserWhenGet.prototype = new CommandParser; // null‚ð•Ô‚µ‚½ê‡A‘—M‘€ì‚ªs‚í‚ê‚È‚­‚È‚é function CommandParserWhenPost() { + this.DefaultCommand = function(msg) + { + var text = msg.message.replace(/\r\n/g,"[br/]"); + return text.replace(/(\n|\r)/g, "[br/]"); + } this.CommandList = new Array; this.CommandList["/tell"] = function(msg,word) {