mirror of
https://gitlab.com/MrFry/mrfrys-node-server
synced 2025-04-01 20:24:18 +02:00
/stuff file browser, minor tweaks
This commit is contained in:
parent
8091c2d4e9
commit
e9c2df8e9b
5 changed files with 81 additions and 11 deletions
|
@ -59,7 +59,7 @@ function Log(s, c, b) {
|
||||||
function LogReq(req, toFile, sc) {
|
function LogReq(req, toFile, sc) {
|
||||||
try {
|
try {
|
||||||
var ip = req.headers['cf-connecting-ip'] || req.connection.remoteAddress;
|
var ip = req.headers['cf-connecting-ip'] || req.connection.remoteAddress;
|
||||||
var logEntry = ip + DELIM + req.headers['user-agent'] +
|
var logEntry = ip + DELIM + req.hostname + DELIM + req.headers['user-agent'] +
|
||||||
DELIM + req.method + DELIM;
|
DELIM + req.method + DELIM;
|
||||||
|
|
||||||
logEntry += req.url;
|
logEntry += req.url;
|
||||||
|
|
|
@ -218,6 +218,8 @@ function PrintDB(r, olds) {
|
||||||
maxLength = r.Subjects[i].Name.length;
|
maxLength = r.Subjects[i].Name.length;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let qcount = 0;
|
||||||
|
|
||||||
for (var i = 0; i < r.length; i++) {
|
for (var i = 0; i < r.length; i++) {
|
||||||
let line = i;
|
let line = i;
|
||||||
if (line < 10)
|
if (line < 10)
|
||||||
|
@ -251,12 +253,15 @@ function PrintDB(r, olds) {
|
||||||
line += " ";
|
line += " ";
|
||||||
|
|
||||||
line += r.Subjects[i].length;
|
line += r.Subjects[i].length;
|
||||||
|
qcount += r.Subjects[i].length;
|
||||||
|
|
||||||
line += " db";
|
line += " db";
|
||||||
|
|
||||||
console.log(line);
|
console.log(line);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
console.log("Total questions: " + qcount);
|
||||||
|
|
||||||
PrintLN();
|
PrintLN();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
75
server.js
75
server.js
|
@ -35,6 +35,7 @@ const utils = require('./utils.js');
|
||||||
const actions = require('./actions.js');
|
const actions = require('./actions.js');
|
||||||
const stat = require('./stat.js');
|
const stat = require('./stat.js');
|
||||||
|
|
||||||
|
const listedFiles = "./public/files";
|
||||||
const recivedFiles = "public/recivedfiles";
|
const recivedFiles = "public/recivedfiles";
|
||||||
const uloadFiles = "public/f";
|
const uloadFiles = "public/f";
|
||||||
const staticFile = "public/data/static";
|
const staticFile = "public/data/static";
|
||||||
|
@ -84,9 +85,9 @@ app.use(function(req, res, next) {
|
||||||
});
|
});
|
||||||
app.use(express.static('public'));
|
app.use(express.static('public'));
|
||||||
app.use(busboy({
|
app.use(busboy({
|
||||||
limits: {
|
limits: {
|
||||||
fileSize: 10 * 1024 * 1024
|
fileSize: 10000 * 1024 * 1024
|
||||||
}
|
}
|
||||||
}));
|
}));
|
||||||
app.use(bodyParser.json());
|
app.use(bodyParser.json());
|
||||||
app.use(bodyParser.urlencoded({
|
app.use(bodyParser.urlencoded({
|
||||||
|
@ -97,6 +98,8 @@ app.use(bodyParser.json({
|
||||||
limit: '5mb'
|
limit: '5mb'
|
||||||
}));
|
}));
|
||||||
|
|
||||||
|
// --------------------------------------------------------------
|
||||||
|
|
||||||
app.get('/', function(req, res) {
|
app.get('/', function(req, res) {
|
||||||
res.render('main', {
|
res.render('main', {
|
||||||
siteurl: siteUrl,
|
siteurl: siteUrl,
|
||||||
|
@ -225,9 +228,7 @@ function UploadFile(req, res, path, next) {
|
||||||
|
|
||||||
utils.CreatePath(path, true);
|
utils.CreatePath(path, true);
|
||||||
let d = new Date();
|
let d = new Date();
|
||||||
let fsplit = filename.split('.');
|
let fn = d.getHours() + "" + d.getMinutes() + "" + d.getSeconds() + "_" + filename;
|
||||||
let fn = d.getHours() + "" + d.getMinutes() + "" + d.getSeconds() + "." + fsplit[fsplit.length -
|
|
||||||
1];
|
|
||||||
|
|
||||||
fstream = fs.createWriteStream(path + "/" + fn);
|
fstream = fs.createWriteStream(path + "/" + fn);
|
||||||
file.pipe(fstream);
|
file.pipe(fstream);
|
||||||
|
@ -255,6 +256,68 @@ app.route('/badtestsender').post(function(req, res, next) {
|
||||||
logger.LogReq(req);
|
logger.LogReq(req);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// -----------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
app.get('/stuff*', function(req, res) {
|
||||||
|
|
||||||
|
let curr = listedFiles + "/" + req.url.substring("/stuff/".length, req.url.length).split('?')[0];
|
||||||
|
let relPath = curr.substring("./public/files".length, curr.length);
|
||||||
|
|
||||||
|
if (relPath[relPath.length - 1] != "/")
|
||||||
|
relPath += "/";
|
||||||
|
|
||||||
|
let t = relPath.split("/");
|
||||||
|
let prevDir = "";
|
||||||
|
for (let i = 0; i < t.length - 2; i++)
|
||||||
|
prevDir += t[i] + "/";
|
||||||
|
|
||||||
|
|
||||||
|
// curr = curr.replace(/\//g, "/");
|
||||||
|
// relPath = relPath.replace(/\//g, "/");
|
||||||
|
|
||||||
|
logger.LogReq(req);
|
||||||
|
|
||||||
|
if (fs.lstatSync(curr).isDirectory()) {
|
||||||
|
if (curr[curr.length - 1] != "/")
|
||||||
|
curr += "/";
|
||||||
|
|
||||||
|
let f = [];
|
||||||
|
|
||||||
|
fs.readdirSync(curr).forEach((item) => {
|
||||||
|
if (item[0] !== '.') {
|
||||||
|
let res = {name:item};
|
||||||
|
let stats = fs.statSync(curr + "/" + item);
|
||||||
|
|
||||||
|
let fileSizeInBytes = stats["size"];
|
||||||
|
res.size = Math.round(fileSizeInBytes / 1000000);
|
||||||
|
|
||||||
|
res.path = relPath;
|
||||||
|
if (res.path[res.path.length - 1] != "/")
|
||||||
|
res.path += "/";
|
||||||
|
res.path += item;
|
||||||
|
|
||||||
|
res.mtime = stats["mtime"].toLocaleString();
|
||||||
|
|
||||||
|
f.push(res);
|
||||||
|
}
|
||||||
|
});;
|
||||||
|
|
||||||
|
res.render('folders', {
|
||||||
|
folders: f,
|
||||||
|
dirname: relPath,
|
||||||
|
prevDir
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
let fileStream = fs.createReadStream(curr);
|
||||||
|
fileStream.pipe(res);
|
||||||
|
}
|
||||||
|
|
||||||
|
return;
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
// -----------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
app.get('*', function(req, res) {
|
app.get('*', function(req, res) {
|
||||||
res.render('404');
|
res.render('404');
|
||||||
res.status(404);
|
res.status(404);
|
||||||
|
|
|
@ -35,7 +35,6 @@
|
||||||
<h2>
|
<h2>
|
||||||
<a href="<%= siteurl %>/greasy">Script
|
<a href="<%= siteurl %>/greasy">Script
|
||||||
greasyforkon</a> |
|
greasyforkon</a> |
|
||||||
<a href="<%= siteurl %>/irc">IRC</a> |
|
|
||||||
<a href="<%= siteurl %>/manual">Manual</a> |
|
<a href="<%= siteurl %>/manual">Manual</a> |
|
||||||
<a href="<%= siteurl %>/legacy">Összes kérdés (Olvasható formátum)</a> |
|
<a href="<%= siteurl %>/legacy">Összes kérdés (Olvasható formátum)</a> |
|
||||||
<a href="<%= siteurl %>/data.json">Összes kérdés (JSON)</a> |
|
<a href="<%= siteurl %>/data.json">Összes kérdés (JSON)</a> |
|
||||||
|
@ -43,9 +42,12 @@ greasyforkon</a> |
|
||||||
<a href="<%= siteurl %>/scriptgit">Userscript repó</a>
|
<a href="<%= siteurl %>/scriptgit">Userscript repó</a>
|
||||||
</h2>
|
</h2>
|
||||||
|
|
||||||
|
<% /*
|
||||||
<form action="/postfeedback" , method="post">
|
<form action="/postfeedback" , method="post">
|
||||||
<div>Észrevételek: (közeledő teszt miatti kérdés-karbantartás, bug, feature vagy egyéb dolog, ami nyomja a lelked)</div>
|
<div>Észrevételek: (közeledő teszt miatti kérdés-karbantartás, bug, feature vagy egyéb dolog, ami nyomja a lelked)</div>
|
||||||
<textarea type="text" name="message_field" style="width: 100%;box-sizing:border-box;height: 100;"></textarea>
|
<textarea type="text" name="message_field" style="width: 100%;box-sizing:border-box;height: 100;"></textarea>
|
||||||
|
<div>Rengeteg spam-et kapok, nyugoadtan küld el ezerszer, akkor hátha észreveszem a spam
|
||||||
|
között :)</div>
|
||||||
<button>Küldés</button>
|
<button>Küldés</button>
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
|
@ -54,18 +56,18 @@ greasyforkon</a> |
|
||||||
Hibát kiváltó teszt feltöltése
|
Hibát kiváltó teszt feltöltése
|
||||||
</br>
|
</br>
|
||||||
|
|
||||||
<!--
|
|
||||||
<form action="/badtestsender" enctype=multipart/form-data method="post">
|
<form action="/badtestsender" enctype=multipart/form-data method="post">
|
||||||
<input type="file" name="dasfile" />
|
<input type="file" name="dasfile" />
|
||||||
<input type="submit" value="Upload" />
|
<input type="submit" value="Upload" />
|
||||||
</form>
|
</form>
|
||||||
-->
|
|
||||||
<button disabled="true"> Letiltva, mert nincs használva :c</button>
|
<button disabled="true"> Letiltva, mert nincs használva :c</button>
|
||||||
|
|
||||||
</p>
|
</p>
|
||||||
Ha egy kérdésre mindig helytelenül talál választ a userscript (vagy egyéb hibát észlelsz), akkor azon az oldalon nyomj egy ctrl-s -t. Ez lementi a weboldalt úgy ahogy van egy mappába, és egy html fájlba. Ezt a kettőt ha berakod egy .zip-be, és ide feltöltöd, akkor ránézek mi lehet a hiba, és kijavítom. <b> Max 10 MB!
|
Ha egy kérdésre mindig helytelenül talál választ a userscript (vagy egyéb hibát észlelsz), akkor azon az oldalon nyomj egy ctrl-s -t. Ez lementi a weboldalt úgy ahogy van egy mappába, és egy html fájlba. Ezt a kettőt ha berakod egy .zip-be, és ide feltöltöd, akkor ránézek mi lehet a hiba, és kijavítom. <b> Max 10 MB!
|
||||||
</b> Ha több, elég a .html. Bónusz ha mellékelsz egy readme-t, hogy mit csináljak.
|
</b> Ha több, elég a .html. Bónusz ha mellékelsz egy readme-t, hogy mit csináljak.
|
||||||
|
|
||||||
|
*/ %>
|
||||||
|
|
||||||
<% include aludni.ejs %>
|
<% include aludni.ejs %>
|
||||||
|
|
||||||
<table>
|
<table>
|
||||||
|
|
|
@ -154,7 +154,7 @@ változtatni akarsz, akkor illik tudni
|
||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td width=20%>
|
<td width=20%>
|
||||||
<img src="img/rtfm.jpg" alt="img"/>
|
<img style="max-width:100%;max-height:100%;" src="img/rtfm.jpg" alt="img"/>
|
||||||
</td>
|
</td>
|
||||||
</table>
|
</table>
|
||||||
<center>
|
<center>
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue