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) {
|
||||
try {
|
||||
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;
|
||||
|
||||
logEntry += req.url;
|
||||
|
|
|
@ -218,6 +218,8 @@ function PrintDB(r, olds) {
|
|||
maxLength = r.Subjects[i].Name.length;
|
||||
}
|
||||
|
||||
let qcount = 0;
|
||||
|
||||
for (var i = 0; i < r.length; i++) {
|
||||
let line = i;
|
||||
if (line < 10)
|
||||
|
@ -251,12 +253,15 @@ function PrintDB(r, olds) {
|
|||
line += " ";
|
||||
|
||||
line += r.Subjects[i].length;
|
||||
qcount += r.Subjects[i].length;
|
||||
|
||||
line += " db";
|
||||
|
||||
console.log(line);
|
||||
}
|
||||
|
||||
console.log("Total questions: " + qcount);
|
||||
|
||||
PrintLN();
|
||||
}
|
||||
|
||||
|
|
71
server.js
71
server.js
|
@ -35,6 +35,7 @@ const utils = require('./utils.js');
|
|||
const actions = require('./actions.js');
|
||||
const stat = require('./stat.js');
|
||||
|
||||
const listedFiles = "./public/files";
|
||||
const recivedFiles = "public/recivedfiles";
|
||||
const uloadFiles = "public/f";
|
||||
const staticFile = "public/data/static";
|
||||
|
@ -85,7 +86,7 @@ app.use(function(req, res, next) {
|
|||
app.use(express.static('public'));
|
||||
app.use(busboy({
|
||||
limits: {
|
||||
fileSize: 10 * 1024 * 1024
|
||||
fileSize: 10000 * 1024 * 1024
|
||||
}
|
||||
}));
|
||||
app.use(bodyParser.json());
|
||||
|
@ -97,6 +98,8 @@ app.use(bodyParser.json({
|
|||
limit: '5mb'
|
||||
}));
|
||||
|
||||
// --------------------------------------------------------------
|
||||
|
||||
app.get('/', function(req, res) {
|
||||
res.render('main', {
|
||||
siteurl: siteUrl,
|
||||
|
@ -225,9 +228,7 @@ function UploadFile(req, res, path, next) {
|
|||
|
||||
utils.CreatePath(path, true);
|
||||
let d = new Date();
|
||||
let fsplit = filename.split('.');
|
||||
let fn = d.getHours() + "" + d.getMinutes() + "" + d.getSeconds() + "." + fsplit[fsplit.length -
|
||||
1];
|
||||
let fn = d.getHours() + "" + d.getMinutes() + "" + d.getSeconds() + "_" + filename;
|
||||
|
||||
fstream = fs.createWriteStream(path + "/" + fn);
|
||||
file.pipe(fstream);
|
||||
|
@ -255,6 +256,68 @@ app.route('/badtestsender').post(function(req, res, next) {
|
|||
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) {
|
||||
res.render('404');
|
||||
res.status(404);
|
||||
|
|
|
@ -35,7 +35,6 @@
|
|||
<h2>
|
||||
<a href="<%= siteurl %>/greasy">Script
|
||||
greasyforkon</a> |
|
||||
<a href="<%= siteurl %>/irc">IRC</a> |
|
||||
<a href="<%= siteurl %>/manual">Manual</a> |
|
||||
<a href="<%= siteurl %>/legacy">Összes kérdés (Olvasható formátum)</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>
|
||||
</h2>
|
||||
|
||||
<% /*
|
||||
<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>
|
||||
<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>
|
||||
</form>
|
||||
|
||||
|
@ -54,18 +56,18 @@ greasyforkon</a> |
|
|||
Hibát kiváltó teszt feltöltése
|
||||
</br>
|
||||
|
||||
<!--
|
||||
<form action="/badtestsender" enctype=multipart/form-data method="post">
|
||||
<input type="file" name="dasfile" />
|
||||
<input type="submit" value="Upload" />
|
||||
</form>
|
||||
-->
|
||||
<button disabled="true"> Letiltva, mert nincs használva :c</button>
|
||||
|
||||
</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!
|
||||
</b> Ha több, elég a .html. Bónusz ha mellékelsz egy readme-t, hogy mit csináljak.
|
||||
|
||||
*/ %>
|
||||
|
||||
<% include aludni.ejs %>
|
||||
|
||||
<table>
|
||||
|
|
|
@ -154,7 +154,7 @@ változtatni akarsz, akkor illik tudni
|
|||
|
||||
</td>
|
||||
<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>
|
||||
</table>
|
||||
<center>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue