/* ---------------------------------------------------------------------------- Question Server GitLab: 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 . ------------------------------------------------------------------------- */ 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'; }