/stuff file browser, minor tweaks

This commit is contained in:
YourFriendlyNeighborhoodDealer 2019-08-14 09:05:28 +02:00
parent 8091c2d4e9
commit e9c2df8e9b
5 changed files with 81 additions and 11 deletions

View file

@ -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;

View file

@ -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();
} }

View file

@ -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";
@ -85,7 +86,7 @@ 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());
@ -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);

View file

@ -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>

View file

@ -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>