mirror of
https://gitlab.com/MrFry/mrfrys-node-server
synced 2025-04-01 20:24:18 +02:00
104 lines
3 KiB
JavaScript
104 lines
3 KiB
JavaScript
/* ----------------------------------------------------------------------------
|
|
|
|
Question Server
|
|
GitLab: <https://gitlab.com/YourFriendlyNeighborhoodDealer/question-node-server>
|
|
|
|
This program is free software: you can redistribute it and/or modify
|
|
it under the terms of the GNU General Public License as published by
|
|
the Free Software Foundation, either version 3 of the License, or
|
|
(at your option) any later version.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
|
|
------------------------------------------------------------------------- */
|
|
|
|
module.exports = {
|
|
GetDateString: GetDateString,
|
|
Log: Log,
|
|
GetColor: GetColor,
|
|
LogReq: LogReq
|
|
};
|
|
|
|
const DELIM = "|";
|
|
|
|
var utils = require('./utils.js');
|
|
const nlogFile = "stats/nlogs";
|
|
const logFile = "/nlogs/nlogs";
|
|
const locLogFile = "stats/logs";
|
|
const allLogFile = "/nlogs/log";
|
|
|
|
function GetDateString() {
|
|
var m = new Date();
|
|
return m.getFullYear() + "/" +
|
|
("0" + (m.getMonth() + 1)).slice(-2) + "/" +
|
|
("0" + m.getDate()).slice(-2) + " " +
|
|
("0" + m.getHours()).slice(-2) + ":" +
|
|
("0" + m.getMinutes()).slice(-2) + ":" +
|
|
("0" + m.getSeconds()).slice(-2);
|
|
}
|
|
|
|
function Log(s, c, b) {
|
|
if (c != undefined)
|
|
console.log(c, GetDateString() + DELIM + s);
|
|
else
|
|
console.log(GetDateString() + DELIM + s);
|
|
|
|
if (b)
|
|
utils.Beep();
|
|
|
|
utils.AppendToFile(GetDateString() + DELIM + s, nlogFile);
|
|
utils.AppendToFile(GetDateString() + DELIM + s, logFile);
|
|
}
|
|
|
|
function LogReq(req, toFile, sc) {
|
|
try {
|
|
var ip = req.headers['cf-connecting-ip'] || req.connection.remoteAddress;
|
|
var logEntry = ip + DELIM + req.hostname + DELIM + req.headers['user-agent'] +
|
|
DELIM + req.method + DELIM;
|
|
|
|
logEntry += req.url;
|
|
|
|
if (sc != undefined && sc == 404)
|
|
logEntry += DELIM + sc;
|
|
var color = GetColor("green");
|
|
|
|
if (req.url.toLowerCase().includes("isadding"))
|
|
color = GetColor("yellow");
|
|
if (!toFile) {
|
|
Log(logEntry, color);
|
|
} else {
|
|
var defLogs = GetDateString() + DELIM + logEntry;
|
|
var extraLogs = "\n\t" + JSON.stringify(req.headers) + "\n\t" + JSON.stringify(req.body) + "\n";
|
|
|
|
utils.AppendToFile(defLogs, locLogFile);
|
|
utils.AppendToFile(defLogs, allLogFile);
|
|
}
|
|
|
|
} catch (e) {
|
|
console.log(e);
|
|
Log("Error at logging lol", GetColor("redbg"), true);
|
|
}
|
|
}
|
|
|
|
function GetColor(c) {
|
|
if (c == "redbg")
|
|
return '\x1b[41m%s\x1b[0m';
|
|
if (c == "bluebg")
|
|
return '\x1b[44m%s\x1b[0m';
|
|
if (c == "red")
|
|
return '\x1b[31m%s\x1b[0m';
|
|
if (c == "green")
|
|
return '\x1b[32m%s\x1b[0m';
|
|
if (c == "yellow")
|
|
return '\x1b[33m%s\x1b[0m';
|
|
if (c == "blue")
|
|
return '\x1b[34m%s\x1b[0m';
|
|
if (c == "cyan")
|
|
return '\x1b[36m%s\x1b[0m';
|
|
}
|