Z
Size: a a a
Z
EL
EL
EL
D
D
D
D
MP
VP
VP
const express = require('express');
const bodyParser = require('body-parser');
const fs = require('fs');
const path = require('path');
const app = express();
app.use(express.static('website'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: true}));
function getDateStampString()
{
const todaysDate = new Date()
const currentYear = todaysDate.getFullYear()
const year = "" + todaysDate.getFullYear();
let month = "" + todaysDate.getMonth();
if( month.length == 1 )
month = "0" + month;
let day = "" + todaysDate.getDate();
if( day.length == 1 )
day = "0" + day;
return "" + year + "_" + month + "_" + day;
}
app.post(`/${process.env.SECRET_KEY}/set/:gameId/`, function(req, res)
{
const approot = "./";
const gameDir = path.join(approot, "logs", req.params.gameId);
// create game floder if it doesn't exist
if( !fs.existsSync(gameDir) )
fs.mkdirSync(gameDir);
// calculate log file name corresponding to today's date
const logFileName = getDateStampString() + ".log";
console.log( logFileName );
const payload = req.body.payload;
if( payload == undefined )
{
res.end();
return;
}
let logArray = [];
if( !Array.isArray(payload) )
logArray = [payload];
else
logArray = payload;
let logString = "";
for( var i=0; i<logArray.length; i++ )
{
try
{
const payloadString = JSON.stringify( logArray[i] );
logString += payloadString + "\n";
}
catch(err){}
}
fs.appendFile(path.join(gameDir, logFileName), logString, function()
{
res.end();
});
});
app.get(`/${process.env.SECRET_KEY}/get/:gameId/:logFileName/`, function(req, res)
{
const approot = "./";
const gameDir = path.join(approot, "logs", req.params.gameId);
res.download( path.join(gameDir, req.params.logFileName) )
});
const listener = app.listen(process.env.PORT, function() {
console.log('Your app is listening on port ' + listener.address().port);
});
VP
VP
VP
VP
VP