mirror of
https://gitlab.com/MrFry/mrfrys-node-server
synced 2025-04-01 20:24:18 +02:00
Fixed some files
This commit is contained in:
parent
7fcb15da88
commit
b7ac485689
8 changed files with 250 additions and 199 deletions
|
@ -37,7 +37,7 @@ module.exports = {
|
|||
|
||||
const DELIM = C('green') + '|' + C()
|
||||
|
||||
const utils = require('../utils/utils.js')
|
||||
import utils from '../utils/utils'
|
||||
const vlogDir = './stats/vlogs/'
|
||||
const logDir = './stats/logs/'
|
||||
const statFile = 'stats/stats'
|
||||
|
@ -47,15 +47,20 @@ const uvStatsFile = 'stats/uvstats'
|
|||
const nologFile = './nolog'
|
||||
|
||||
const colors = ['green', 'red', 'yellow', 'blue', 'magenta', 'cyan']
|
||||
var logFileName = utils.GetDateString(true)
|
||||
let logFileName = utils.GetDateString(true)
|
||||
|
||||
const writeInterval = 10
|
||||
const debugLevel = parseInt(process.env.NS_LOGLEVEL) || 0
|
||||
|
||||
let data = {} // visit data
|
||||
let vData = {} // visit data, but daily
|
||||
let uData = {} // visit data, but per user
|
||||
let uvData = {} // visit data, but per user and daily
|
||||
// let vdata = {} // visit data
|
||||
// let dvData = {} // visit data, but daily
|
||||
// let uData = {} // visit data, but per user
|
||||
// let udvData = {} // visit data, but per user and daily
|
||||
|
||||
let vData = {} // visit data
|
||||
let dvData = {} // visit data, but daily
|
||||
let uvData = {} // visit data, but per user
|
||||
let udvData = {} // visit data, but per user and daily
|
||||
let writes = 0
|
||||
|
||||
let noLogips = []
|
||||
|
@ -75,25 +80,25 @@ function DebugLog(msg, name, lvl) {
|
|||
if (msg === 'hr') {
|
||||
msg = hr
|
||||
}
|
||||
let s = msg
|
||||
let header = `${C('red')}#DEBUG${lvl}#${C(
|
||||
let res = msg
|
||||
const header = `${C('red')}#DEBUG${lvl}#${C(
|
||||
'yellow'
|
||||
)}${name.toUpperCase()}${C('red')}#${C()}${DELIM}${C()}`
|
||||
if (typeof msg !== 'object') {
|
||||
s = header + msg
|
||||
res = header + msg
|
||||
} else {
|
||||
Log(header + 'OBJECT:', 'yellow')
|
||||
s = msg
|
||||
res = msg
|
||||
}
|
||||
Log(s, 'yellow')
|
||||
Log(res, 'yellow')
|
||||
}
|
||||
}
|
||||
|
||||
function Log(s, c) {
|
||||
let log = s
|
||||
function Log(msg, color) {
|
||||
let log = msg
|
||||
if (typeof s !== 'object') {
|
||||
let dl = DELIM + C(c)
|
||||
log = C(c) + GetDateString() + dl + s + C()
|
||||
const delimiter = DELIM + C(color)
|
||||
log = C(color) + GetDateString() + delimiter + msg + C()
|
||||
}
|
||||
|
||||
console.log(log)
|
||||
|
@ -102,10 +107,10 @@ function Log(s, c) {
|
|||
|
||||
function LogReq(req, toFile, sc) {
|
||||
try {
|
||||
let ip = req.headers['cf-connecting-ip'] || req.connection.remoteAddress
|
||||
const ip = req.headers['cf-connecting-ip'] || req.connection.remoteAddress
|
||||
|
||||
let nolog = noLogips.some((x) => {
|
||||
return ip.includes(x)
|
||||
const nolog = noLogips.some((noLogip) => {
|
||||
return ip.includes(noLogip)
|
||||
})
|
||||
if (nolog) {
|
||||
return
|
||||
|
@ -148,7 +153,7 @@ function LogReq(req, toFile, sc) {
|
|||
if (!toFile) {
|
||||
Log(logEntry)
|
||||
} else {
|
||||
let defLogs = GetDateString() + dl + logEntry
|
||||
const defLogs = GetDateString() + dl + logEntry
|
||||
|
||||
utils.AppendToFile(defLogs, vlogDir + logFileName)
|
||||
}
|
||||
|
@ -163,8 +168,8 @@ function parseNoLogFile(newData) {
|
|||
if (noLogips[noLogips.length - 1] === '') {
|
||||
noLogips.pop()
|
||||
}
|
||||
noLogips = noLogips.filter((x) => {
|
||||
return x !== ''
|
||||
noLogips = noLogips.filter((noLogip) => {
|
||||
return noLogip !== ''
|
||||
})
|
||||
Log('\tNo Log IP-s changed: ' + noLogips.join(', '))
|
||||
}
|
||||
|
@ -180,43 +185,41 @@ function setNoLogReadInterval() {
|
|||
function Load() {
|
||||
Log('Loading logger...')
|
||||
try {
|
||||
uData = JSON.parse(utils.ReadFile(uStatsFile))
|
||||
} catch (e) {
|
||||
uvData = JSON.parse(utils.ReadFile(uStatsFile))
|
||||
} catch (err) {
|
||||
Log('Error at loading logs! (@ first run its normal)', GetColor('redbg'))
|
||||
console.log(e)
|
||||
console.error(err)
|
||||
}
|
||||
|
||||
try {
|
||||
uvData = JSON.parse(utils.ReadFile(uvStatsFile))
|
||||
} catch (e) {
|
||||
udvData = JSON.parse(utils.ReadFile(uvStatsFile))
|
||||
} catch (err) {
|
||||
Log('Error at loading logs! (@ first run its normal)', GetColor('redbg'))
|
||||
console.log(e)
|
||||
console.error(err)
|
||||
}
|
||||
|
||||
try {
|
||||
var prevData = utils.ReadFile(statFile)
|
||||
data = JSON.parse(prevData)
|
||||
} catch (e) {
|
||||
vData = utils.ReadJSON(statFile)
|
||||
} catch (err) {
|
||||
Log('Error at loading logs! (@ first run its normal)', GetColor('redbg'))
|
||||
console.log(e)
|
||||
console.error(err)
|
||||
}
|
||||
|
||||
try {
|
||||
var prevVData = utils.ReadFile(vStatFile)
|
||||
vData = JSON.parse(prevVData)
|
||||
} catch (e) {
|
||||
dvData = utils.ReadJSON(vStatFile)
|
||||
} catch (err) {
|
||||
Log(
|
||||
'Error at loading visit logs! (@ first run its normal)',
|
||||
GetColor('redbg')
|
||||
)
|
||||
console.log(e)
|
||||
console.error(err)
|
||||
}
|
||||
setNoLogReadInterval()
|
||||
}
|
||||
|
||||
function LogStat(url, ip, hostname, userId) {
|
||||
let nolog = noLogips.some((x) => {
|
||||
return x.includes(ip)
|
||||
const nolog = noLogips.some((noLogips) => {
|
||||
return ip.includes(noLogips)
|
||||
})
|
||||
if (nolog) {
|
||||
return
|
||||
|
@ -232,35 +235,35 @@ function LogStat(url, ip, hostname, userId) {
|
|||
|
||||
function IncUserStat(userId) {
|
||||
try {
|
||||
if (uData[userId] === undefined) {
|
||||
uData[userId] = 0
|
||||
if (uvData[userId] === undefined) {
|
||||
uvData[userId] = 0
|
||||
}
|
||||
uData[userId]++
|
||||
} catch (e) {
|
||||
uvData[userId]++
|
||||
} catch (err) {
|
||||
Log('Error at making user ID stats!', GetColor('redbg'))
|
||||
console.error(e)
|
||||
console.error(err)
|
||||
}
|
||||
}
|
||||
|
||||
function AddUserIdStat(userId) {
|
||||
try {
|
||||
var m = new Date()
|
||||
const date = new Date()
|
||||
const now =
|
||||
m.getFullYear() +
|
||||
date.getFullYear() +
|
||||
'-' +
|
||||
('0' + (m.getMonth() + 1)).slice(-2) +
|
||||
('0' + (date.getMonth() + 1)).slice(-2) +
|
||||
'-' +
|
||||
('0' + m.getDate()).slice(-2)
|
||||
if (uvData[now] === undefined) {
|
||||
uvData[now] = {}
|
||||
('0' + date.getDate()).slice(-2)
|
||||
if (udvData[now] === undefined) {
|
||||
udvData[now] = {}
|
||||
}
|
||||
if (uvData[now][userId] === undefined) {
|
||||
uvData[now][userId] = 0
|
||||
if (udvData[now][userId] === undefined) {
|
||||
udvData[now][userId] = 0
|
||||
}
|
||||
uvData[now][userId]++
|
||||
} catch (e) {
|
||||
udvData[now][userId]++
|
||||
} catch (err) {
|
||||
Log('Error at making user ID stats!', GetColor('redbg'))
|
||||
console.error(e)
|
||||
console.error(err)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -268,108 +271,108 @@ function Inc(value) {
|
|||
if (value.startsWith('/?')) {
|
||||
value = '/'
|
||||
}
|
||||
if (data[value] === undefined) {
|
||||
data[value] = 0
|
||||
if (vData[value] === undefined) {
|
||||
vData[value] = 0
|
||||
}
|
||||
data[value]++
|
||||
vData[value]++
|
||||
}
|
||||
|
||||
function AddVisitStat(name) {
|
||||
var m = new Date()
|
||||
const date = new Date()
|
||||
const now =
|
||||
m.getFullYear() +
|
||||
date.getFullYear() +
|
||||
'-' +
|
||||
('0' + (m.getMonth() + 1)).slice(-2) +
|
||||
('0' + (date.getMonth() + 1)).slice(-2) +
|
||||
'-' +
|
||||
('0' + m.getDate()).slice(-2)
|
||||
if (vData[now] === undefined) {
|
||||
vData[now] = {}
|
||||
('0' + date.getDate()).slice(-2)
|
||||
if (dvData[now] === undefined) {
|
||||
dvData[now] = {}
|
||||
}
|
||||
if (vData[now][name] === undefined) {
|
||||
vData[now][name] = 0
|
||||
if (dvData[now][name] === undefined) {
|
||||
dvData[now][name] = 0
|
||||
}
|
||||
vData[now][name]++
|
||||
dvData[now][name]++
|
||||
}
|
||||
|
||||
function Save() {
|
||||
writes++
|
||||
if (writes === writeInterval) {
|
||||
try {
|
||||
utils.WriteFile(JSON.stringify(uData), uStatsFile)
|
||||
} catch (e) {
|
||||
utils.WriteFile(JSON.stringify(uvData), uStatsFile)
|
||||
} catch (err) {
|
||||
Log('Error at writing logs! (more in stderr)', GetColor('redbg'))
|
||||
console.error(e)
|
||||
console.error(err)
|
||||
}
|
||||
try {
|
||||
utils.WriteFile(JSON.stringify(uvData), uvStatsFile)
|
||||
} catch (e) {
|
||||
utils.WriteFile(JSON.stringify(udvData), uvStatsFile)
|
||||
} catch (err) {
|
||||
Log('Error at writing logs! (more in stderr)', GetColor('redbg'))
|
||||
console.error(e)
|
||||
console.error(err)
|
||||
}
|
||||
try {
|
||||
utils.WriteFile(JSON.stringify(data), statFile)
|
||||
utils.WriteFile(JSON.stringify(vData), statFile)
|
||||
// Log("Stats wrote.");
|
||||
} catch (e) {
|
||||
} catch (err) {
|
||||
Log('Error at writing logs! (more in stderr)', GetColor('redbg'))
|
||||
console.error(e)
|
||||
console.error(err)
|
||||
}
|
||||
try {
|
||||
utils.WriteFile(JSON.stringify(vData), vStatFile)
|
||||
utils.WriteFile(JSON.stringify(dvData), vStatFile)
|
||||
// Log("Stats wrote.");
|
||||
} catch (e) {
|
||||
} catch (err) {
|
||||
Log('Error at writing visit logs! (more in stderr)', GetColor('redbg'))
|
||||
console.error(e)
|
||||
console.error(err)
|
||||
}
|
||||
writes = 0
|
||||
}
|
||||
}
|
||||
|
||||
function logHashed(x) {
|
||||
return GetRandomColor(x.toString()) + x + C()
|
||||
function logHashed(msg) {
|
||||
return GetRandomColor(msg.toString()) + msg + C()
|
||||
}
|
||||
|
||||
function GetRandomColor(ip) {
|
||||
if (!ip) {
|
||||
function GetRandomColor(msg) {
|
||||
if (!msg) {
|
||||
return 'red'
|
||||
}
|
||||
|
||||
let res = ip.split('').reduce((res, x) => {
|
||||
return res + x.charCodeAt(0)
|
||||
const res = msg.split('').reduce((res, character) => {
|
||||
return res + character.charCodeAt(0)
|
||||
}, 0)
|
||||
return C(colors[res % colors.length])
|
||||
}
|
||||
|
||||
function GetColor(c) {
|
||||
return c
|
||||
function GetColor(color) {
|
||||
return color
|
||||
}
|
||||
|
||||
function C(c) {
|
||||
if (c !== undefined) {
|
||||
c = c.toLowerCase()
|
||||
function C(color?: string) {
|
||||
if (color !== undefined) {
|
||||
color = color.toLowerCase()
|
||||
}
|
||||
|
||||
if (c === 'redbg') {
|
||||
if (color === 'redbg') {
|
||||
return '\x1b[41m'
|
||||
}
|
||||
if (c === 'bluebg') {
|
||||
if (color === 'bluebg') {
|
||||
return '\x1b[44m'
|
||||
}
|
||||
if (c === 'green') {
|
||||
if (color === 'green') {
|
||||
return '\x1b[32m'
|
||||
}
|
||||
if (c === 'red') {
|
||||
if (color === 'red') {
|
||||
return '\x1b[31m'
|
||||
}
|
||||
if (c === 'yellow') {
|
||||
if (color === 'yellow') {
|
||||
return '\x1b[33m'
|
||||
}
|
||||
if (c === 'blue') {
|
||||
if (color === 'blue') {
|
||||
return '\x1b[34m'
|
||||
}
|
||||
if (c === 'magenta') {
|
||||
if (color === 'magenta') {
|
||||
return '\x1b[35m'
|
||||
}
|
||||
if (c === 'cyan') {
|
||||
if (color === 'coloryan') {
|
||||
return '\x1b[36m'
|
||||
}
|
||||
return '\x1b[0m'
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue