mirror of
				https://gitlab.com/MrFry/mrfrys-node-server
				synced 2025-04-01 20:24:18 +02:00 
			
		
		
		
	stats.js refactor
This commit is contained in:
		
							
								
								
									
										146
									
								
								utils/stat.js
									
									
									
									
									
								
							
							
						
						
									
										146
									
								
								utils/stat.js
									
									
									
									
									
								
							@@ -1,4 +1,4 @@
 | 
			
		||||
/* ----------------------------------------------------------------------------    
 | 
			
		||||
/* ----------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
 Question Server
 | 
			
		||||
 GitLab: <https://gitlab.com/YourFriendlyNeighborhoodDealer/question-node-server>
 | 
			
		||||
@@ -19,94 +19,78 @@
 | 
			
		||||
 ------------------------------------------------------------------------- */
 | 
			
		||||
 | 
			
		||||
module.exports = {
 | 
			
		||||
	LogStat: LogStat,
 | 
			
		||||
	Load: Load
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
var utils = require('./utils.js');
 | 
			
		||||
var logger = require('./logger.js');
 | 
			
		||||
 | 
			
		||||
const statFile = "stats/stats";
 | 
			
		||||
const vStatFile = "stats/vstats";
 | 
			
		||||
const writeInterval = 10;
 | 
			
		||||
 | 
			
		||||
var data = {};
 | 
			
		||||
var vData = {};
 | 
			
		||||
var writes = 0;
 | 
			
		||||
 | 
			
		||||
function Load() {
 | 
			
		||||
	try {
 | 
			
		||||
		var prevData = utils.ReadFile(statFile);
 | 
			
		||||
		data = JSON.parse(prevData);
 | 
			
		||||
	} catch (e) {
 | 
			
		||||
		logger.Log("Error at loading logs! (@ first run its normal)", logger.GetColor("redbg"));
 | 
			
		||||
		console.log(e);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	try {
 | 
			
		||||
		var prevVData = utils.ReadFile(vStatFile);
 | 
			
		||||
		vData = JSON.parse(prevVData);
 | 
			
		||||
	} catch (e) {
 | 
			
		||||
		logger.Log("Error at loading visit logs! (@ first run its normal)", logger.GetColor("redbg"));
 | 
			
		||||
		console.log(e);
 | 
			
		||||
	}
 | 
			
		||||
  LogStat: LogStat,
 | 
			
		||||
  Load: Load
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function LogStat(url) {
 | 
			
		||||
	Inc(url);
 | 
			
		||||
	AddVisitStat(url);
 | 
			
		||||
	Save();
 | 
			
		||||
var utils = require('../utils/utils.js')
 | 
			
		||||
var logger = require('../utils/logger.js')
 | 
			
		||||
 | 
			
		||||
const statFile = '../stats/stats'
 | 
			
		||||
const vStatFile = '../stats/vstats'
 | 
			
		||||
const writeInterval = 10
 | 
			
		||||
 | 
			
		||||
var data = {}
 | 
			
		||||
var vData = {}
 | 
			
		||||
var writes = 0
 | 
			
		||||
 | 
			
		||||
function Load () {
 | 
			
		||||
  try {
 | 
			
		||||
    var prevData = utils.ReadFile(statFile)
 | 
			
		||||
    data = JSON.parse(prevData)
 | 
			
		||||
  } catch (e) {
 | 
			
		||||
    logger.Log('Error at loading logs! (@ first run its normal)', logger.GetColor('redbg'))
 | 
			
		||||
    console.log(e)
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  try {
 | 
			
		||||
    var prevVData = utils.ReadFile(vStatFile)
 | 
			
		||||
    vData = JSON.parse(prevVData)
 | 
			
		||||
  } catch (e) {
 | 
			
		||||
    logger.Log('Error at loading visit logs! (@ first run its normal)', logger.GetColor('redbg'))
 | 
			
		||||
    console.log(e)
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function Inc(value) {
 | 
			
		||||
	if (value.startsWith("/?"))
 | 
			
		||||
		value = "/";
 | 
			
		||||
	if (data[value] == undefined)
 | 
			
		||||
		data[value] = 0;
 | 
			
		||||
	data[value]++;
 | 
			
		||||
function LogStat (url) {
 | 
			
		||||
  Inc(url)
 | 
			
		||||
  AddVisitStat(url)
 | 
			
		||||
  Save()
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function AddVisitStat(name) {
 | 
			
		||||
	var m = new Date();
 | 
			
		||||
	const now = m.getFullYear() + "/" +
 | 
			
		||||
		("0" + (m.getMonth() + 1)).slice(-2) + "/" +
 | 
			
		||||
		("0" + m.getDate()).slice(-2);
 | 
			
		||||
	if (vData[now] == undefined)
 | 
			
		||||
		vData[now] = {};
 | 
			
		||||
	if (vData[now][name] == undefined)
 | 
			
		||||
		vData[now][name] = 0;
 | 
			
		||||
	vData[now][name]++;
 | 
			
		||||
function Inc (value) {
 | 
			
		||||
  if (value.startsWith('/?')) { value = '/' }
 | 
			
		||||
  if (data[value] == undefined) { data[value] = 0 }
 | 
			
		||||
  data[value]++
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function AddVisitStat(name) {
 | 
			
		||||
	var m = new Date();
 | 
			
		||||
	const now = m.getFullYear() + "/" +
 | 
			
		||||
		("0" + (m.getMonth() + 1)).slice(-2) + "/" +
 | 
			
		||||
		("0" + m.getDate()).slice(-2);
 | 
			
		||||
	if (vData[now] == undefined)
 | 
			
		||||
		vData[now] = {};
 | 
			
		||||
	if (vData[now][name] == undefined)
 | 
			
		||||
		vData[now][name] = 0;
 | 
			
		||||
	vData[now][name]++;
 | 
			
		||||
function AddVisitStat (name) {
 | 
			
		||||
  var m = new Date()
 | 
			
		||||
  const now = m.getFullYear() + '/' +
 | 
			
		||||
		('0' + (m.getMonth() + 1)).slice(-2) + '/' +
 | 
			
		||||
		('0' + m.getDate()).slice(-2)
 | 
			
		||||
  if (vData[now] == undefined) { vData[now] = {} }
 | 
			
		||||
  if (vData[now][name] == undefined) { vData[now][name] = 0 }
 | 
			
		||||
  vData[now][name]++
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function Save() {
 | 
			
		||||
	writes++;
 | 
			
		||||
	if (writes == writeInterval) {
 | 
			
		||||
		try {
 | 
			
		||||
			utils.WriteFile(JSON.stringify(data), statFile);
 | 
			
		||||
			// logger.Log("Stats wrote.");
 | 
			
		||||
		} catch (e) {
 | 
			
		||||
			logger.Log("Error at writing logs!", logger.GetColor("redbg"));
 | 
			
		||||
			console.log(e);
 | 
			
		||||
		}
 | 
			
		||||
		try {
 | 
			
		||||
			utils.WriteFile(JSON.stringify(vData), vStatFile);
 | 
			
		||||
			// logger.Log("Stats wrote.");
 | 
			
		||||
		} catch (e) {
 | 
			
		||||
			logger.Log("Error at writing visit logs!", logger.GetColor("redbg"));
 | 
			
		||||
			console.log(e);
 | 
			
		||||
		}
 | 
			
		||||
		writes = 0;
 | 
			
		||||
	}
 | 
			
		||||
function Save () {
 | 
			
		||||
  writes++
 | 
			
		||||
  if (writes == writeInterval) {
 | 
			
		||||
    try {
 | 
			
		||||
      utils.WriteFile(JSON.stringify(data), statFile)
 | 
			
		||||
      // logger.Log("Stats wrote.");
 | 
			
		||||
    } catch (e) {
 | 
			
		||||
      logger.Log('Error at writing logs!', logger.GetColor('redbg'))
 | 
			
		||||
      console.log(e)
 | 
			
		||||
    }
 | 
			
		||||
    try {
 | 
			
		||||
      utils.WriteFile(JSON.stringify(vData), vStatFile)
 | 
			
		||||
      // logger.Log("Stats wrote.");
 | 
			
		||||
    } catch (e) {
 | 
			
		||||
      logger.Log('Error at writing visit logs!', logger.GetColor('redbg'))
 | 
			
		||||
      console.log(e)
 | 
			
		||||
    }
 | 
			
		||||
    writes = 0
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user