mirror of https://github.com/calzoneman/sync.git
Refactor log reading
This commit is contained in:
parent
b06d8ff09f
commit
0bf80a375d
164
api.js
164
api.js
|
@ -251,7 +251,7 @@ module.exports = function (Server) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
var row = Auth.login(name, oldpw);
|
var row = Auth.login(name, oldpw, "");
|
||||||
if(!row) {
|
if(!row) {
|
||||||
res.jsonp({
|
res.jsonp({
|
||||||
success: false,
|
success: false,
|
||||||
|
@ -464,7 +464,7 @@ module.exports = function (Server) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
var row = Auth.login(name, pw);
|
var row = Auth.login(name, pw, "");
|
||||||
if(!row) {
|
if(!row) {
|
||||||
res.jsonp({
|
res.jsonp({
|
||||||
success: false,
|
success: false,
|
||||||
|
@ -496,7 +496,7 @@ module.exports = function (Server) {
|
||||||
var name = req.query.name;
|
var name = req.query.name;
|
||||||
var session = req.query.session;
|
var session = req.query.session;
|
||||||
|
|
||||||
var row = Auth.login(name, session);
|
var row = Auth.login(name, "", session);
|
||||||
if(!row) {
|
if(!row) {
|
||||||
res.jsonp({
|
res.jsonp({
|
||||||
success: false,
|
success: false,
|
||||||
|
@ -512,74 +512,104 @@ module.exports = function (Server) {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
/* END REGION */
|
||||||
|
|
||||||
var x = {
|
/* REGION log reading */
|
||||||
handleReadActionLog: function (params, req, res) {
|
|
||||||
var name = params.name || "";
|
|
||||||
var pw = params.pw || "";
|
|
||||||
var session = params.session || "";
|
|
||||||
var types = params.actions || "";
|
|
||||||
var row = Auth.login(name, pw, session);
|
|
||||||
if(!row || row.global_rank < 255) {
|
|
||||||
res.send(403);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
var actiontypes = types.split(",");
|
/* action log */
|
||||||
var actions = ActionLog.readLog(actiontypes);
|
app.get("/api/logging/actionlog", function (req, res) {
|
||||||
this.sendJSON(res, actions);
|
res.type("application/jsonp");
|
||||||
},
|
var name = req.query.name;
|
||||||
|
var session = req.query.session;
|
||||||
|
var types = req.query.actions;
|
||||||
|
|
||||||
// Helper function
|
var row = Auth.login(name, "", session);
|
||||||
pipeLast: function (res, file, len) {
|
if(!row || row.global_rank < 255) {
|
||||||
fs.stat(file, function(err, data) {
|
res.send(403);
|
||||||
if(err) {
|
return;
|
||||||
res.send(500);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
var start = data.size - len;
|
|
||||||
if(start < 0) {
|
|
||||||
start = 0;
|
|
||||||
}
|
|
||||||
var end = data.size - 1;
|
|
||||||
fs.createReadStream(file, {start: start, end: end}).pipe(res);
|
|
||||||
});
|
|
||||||
},
|
|
||||||
|
|
||||||
handleReadLog: function (params, req, res) {
|
|
||||||
var name = params.name || "";
|
|
||||||
var pw = params.pw || "";
|
|
||||||
var session = params.session || "";
|
|
||||||
var row = Auth.login(name, pw, session);
|
|
||||||
if(!row || row.global_rank < 255) {
|
|
||||||
res.send(403);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
res.setHeader("Access-Control-Allow-Origin", "*");
|
|
||||||
|
|
||||||
var type = params.type || "";
|
|
||||||
if(type == "sys") {
|
|
||||||
this.pipeLast(res, "sys.log", 1024*1024);
|
|
||||||
}
|
|
||||||
else if(type == "err") {
|
|
||||||
this.pipeLast(res, "error.log", 1024*1024);
|
|
||||||
}
|
|
||||||
else if(type == "channel") {
|
|
||||||
var chan = params.channel || "";
|
|
||||||
fs.exists("chanlogs/" + chan + ".log", function(exists) {
|
|
||||||
if(exists) {
|
|
||||||
this.pipeLast(res, "chanlogs/" + chan + ".log", 1024*1024);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
res.send(404);
|
|
||||||
}
|
|
||||||
}.bind(this));
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
res.send(400);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
};
|
|
||||||
|
types = types.split(",");
|
||||||
|
var actions = ActionLog.readLog(actiontypes);
|
||||||
|
res.jsonp(actions);
|
||||||
|
});
|
||||||
|
|
||||||
|
/* helper function to pipe the last N bytes of a file */
|
||||||
|
function pipeLast(res, file, len) {
|
||||||
|
fs.stat(file, function (err, data) {
|
||||||
|
if(err) {
|
||||||
|
res.send(500);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
var start = data.size - len;
|
||||||
|
if(start < 0) {
|
||||||
|
start = 0;
|
||||||
|
}
|
||||||
|
var end = data.size - 1;
|
||||||
|
fs.createReadStream(file, { start: start, end: end })
|
||||||
|
.pipe(res);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
app.get("/api/logging/syslog", function (req, res) {
|
||||||
|
res.type("text/plain");
|
||||||
|
res.setHeader("Access-Control-Allow-Origin", "*");
|
||||||
|
|
||||||
|
var name = req.query.name;
|
||||||
|
var session = req.query.session;
|
||||||
|
|
||||||
|
var row = Auth.login(name, "", session);
|
||||||
|
if(!row || row.global_rank < 255) {
|
||||||
|
res.send(403);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
pipeLast(res, "sys.log", 1048576);
|
||||||
|
});
|
||||||
|
|
||||||
|
app.get("/api/logging/errorlog", function (req, res) {
|
||||||
|
res.type("text/plain");
|
||||||
|
res.setHeader("Access-Control-Allow-Origin", "*");
|
||||||
|
|
||||||
|
var name = req.query.name;
|
||||||
|
var session = req.query.session;
|
||||||
|
|
||||||
|
var row = Auth.login(name, "", session);
|
||||||
|
if(!row || row.global_rank < 255) {
|
||||||
|
res.send(403);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
pipeLast(res, "error.log", 1048576);
|
||||||
|
});
|
||||||
|
|
||||||
|
app.get("/api/logging/channels/:channel", function (req, res) {
|
||||||
|
res.type("text/plain");
|
||||||
|
res.setHeader("Access-Control-Allow-Origin", "*");
|
||||||
|
|
||||||
|
var name = req.query.name;
|
||||||
|
var session = req.query.session;
|
||||||
|
|
||||||
|
var row = Auth.login(name, "", session);
|
||||||
|
if(!row || row.global_rank < 255) {
|
||||||
|
res.send(403);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var chan = req.params.channel || "";
|
||||||
|
if(!chan.match(/^[\w-_]+$/)) {
|
||||||
|
res.send(400);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
fs.exists("chanlogs/" + chan + ".log", function(exists) {
|
||||||
|
if(exists) {
|
||||||
|
pipeLast(res, "chanlogs/" + chan + ".log", 1048576);
|
||||||
|
} else {
|
||||||
|
res.send(404);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue