diff --git a/images/empty_file.png b/images/empty_file.png index e5e75eb..d38a33a 100644 Binary files a/images/empty_file.png and b/images/empty_file.png differ diff --git a/js/posts.js b/js/posts.js index 541f580..fd0c7bf 100644 --- a/js/posts.js +++ b/js/posts.js @@ -369,6 +369,12 @@ function addFile(file) { return; } files[files.length]=file + const fileimg = createElement("img") + console.log(file.name,file.name.lastIndexOf("\."),file.name.substring(file.name.lastIndexOf("\.")+1)); + fileimg.src = "/api/getFileIcon/"+file.name.substring(file.name.lastIndexOf("\.")+1) + + getById("filesDiv").appendChild(fileimg) + //filesDiv console.log("File added: ", file.name, file.type, file.size); } diff --git a/server.js b/server.js index db43d30..a7c3d7e 100644 --- a/server.js +++ b/server.js @@ -11,7 +11,7 @@ import sharp from "sharp" import SHA from "./extra_modules/SHA.js"; import getIP from "./extra_modules/getip.js"; import unsign from "./extra_modules/unsign.js"; -import { readFileSync, mkdir, existsSync, appendFile, unlinkSync, writeFileSync } from "fs"; +import { readFileSync, mkdir, existsSync, appendFile, unlinkSync, writeFileSync, readFile } from "fs"; import { format } from "util"; import { setup as optionssetup } from "./routes/api/options.js"; import { setup as allsetup } from "./routes/api/all.js"; @@ -28,8 +28,12 @@ const __dirname = dirname(__filename) async function addTextOnImage(text,buf) { try { - const width = text.length*30; // 10 pixels per character - const height = 30; + let img = await sharp(buf) + + const metadata = await img.metadata() + + const width = metadata.width; + const height = metadata.height; const svgImage = ` @@ -40,13 +44,11 @@ async function addTextOnImage(text,buf) { `; - let img = await sharp(buf) - return await img .composite([ { input: Buffer.from(svgImage), - top: 70, + top: 0, left: 0, }, ]).toBuffer() @@ -436,11 +438,6 @@ app.use("/*", function (req, res, next) { } next(); }); -router.get("/", function (req, res) { - if (!increaseUSERCall(req, res)) - return; - res.sendFile(dir + "views/index.html"); -}); console.log(5, "finished loading user routes, starting with api routes"); /* @@ -909,30 +906,34 @@ let global_page_variables = { loadfile: load_var, getChannels: get_channels, getPID: get_pid, - getDMPID: get_dmpid + getDMPID: get_dmpid, + cookiebanner: `` } -router.get("/*", async function(request, response) { +async function handleUserFiles(request, response, overrideurl) { if (!increaseUSERCall(request, response))return; - - let originalUrl = request.originalUrl.split("?").shift(); + if(typeof overrideurl != "string")overrideurl = undefined; + + let originalUrl = overrideurl || request.originalUrl.split("?").shift(); let path = "" - - if (existsSync(dir + "views/" + originalUrl + ".html")) { - path = dir + "views/" + originalUrl + ".html" - //return response.sendFile(dir + "views/" + originalUrl + ".html"); - } if (existsSync(dir + "views" + originalUrl)) { path = dir + "views" + originalUrl //return response.sendFile(dir + "views" + originalUrl); } + if (existsSync(dir + "views/" + originalUrl + "index.html")) { + path = dir + "views/" + originalUrl + "index.html" + } + if (existsSync(dir + "views/" + originalUrl + ".html")) { + path = dir + "views/" + originalUrl + ".html" + //return response.sendFile(dir + "views/" + originalUrl + ".html"); + } if (existsSync(dir + "views" + originalUrl + ".html")) { path = dir + "views" + originalUrl + ".html" //return response.sendFile(dir + "views" + originalUrl + ".html"); } - if(path != "" && originalUrl != "/favicon.ico") { + if(path != "" && originalUrl != "/favicon.ico" && originalUrl != "/api/documentation/") { global_page_variables.user = { "username": response.locals.username, "bio": response.locals.bio, "avatar": response.locals.avatar } ejs.renderFile(path,global_page_variables,{async: true},async function(err,str){ str = await str @@ -975,14 +976,30 @@ router.get("/*", async function(request, response) { return } + if(originalUrl == "/api/documentation/") { + readFile(path,function(err,res){ + response.send(res.toString()) + }) + return + } + console.log(5,"no file found",originalUrl); try { response.status(404).send("No file with that name found"); } catch(err) { console.error(err) } +} + +router.get("/", function (req, res) { + // if (!increaseUSERCall(req, res)) + // return; + handleUserFiles(req,res,"/index") + //res.sendFile(dir + "views/index.html"); }); +router.get("/*", handleUserFiles); + router.post("/register", async function (req, res) { for (let i = 0; i < 10; i++) { //don't want people spam registering if (!increaseAPICall(req, res)) diff --git a/views/index.html b/views/index.html index bc8e87b..9fca869 100644 --- a/views/index.html +++ b/views/index.html @@ -1,14 +1,19 @@ - - - - - + + + + <%- cookiebanner %> + <%- navbar %>

IPost

diff --git a/views/posts.html b/views/posts.html index b1054c4..cde1fc6 100644 --- a/views/posts.html +++ b/views/posts.html @@ -7,13 +7,14 @@ <%- globalcss %> <%- loadfile("./css/posts.css") %> - + <%- cookiebanner %> <%- navbar %> @@ -35,10 +36,11 @@
+
- +