add more file formats

This commit is contained in:
biglyderv 2025-05-29 05:09:43 -04:00
parent 552f075f31
commit 718b912719
Signed by: biglyderv
GPG key ID: 0E2EB0B4CD7397B5
3 changed files with 17 additions and 5 deletions

4
lib.js
View file

@ -35,10 +35,12 @@ async function splitUp(content) {
let ext = res.split('.').pop();
let content = '';
let path = new URL(res.slice('file::'.length), 'https://tbg.dervland.net/').pathname;
let encoded = encodeURIComponent(path);
if (ext == 'txt' || ext == 'json') {
let san = sanitize(path.split('/').pop(), '');
try {
content = await readFile(`${process.cwd()}/uploads/${san}`, 'utf-8');
content.length = Math.min(content.length,5000);
} catch (err) {
content = '';
}
@ -60,7 +62,7 @@ async function splitUp(content) {
height = contentJson.height;
}
out[i] = { type: 'file', path, ext, content, width, height };
out[i] = { type: 'file', path, ext, content, width, height, encoded };
continue;
}
if (res.startsWith('https://')) {

View file

@ -17,6 +17,8 @@ const mimes = {
'image/png': 'png',
'audio/mpeg': 'mp3',
'audio/wav': 'wav',
'pmp': 'pmp',
'sb3': 'sb3'
};
const upload = multer.diskStorage({
@ -25,7 +27,7 @@ const upload = multer.diskStorage({
},
filename: function (req, file, cb) {
const uniqueSuffix = randomBytes(8).toString('hex');
const type = mimes[file.mimetype] || 'txt';
const type = mimes[file.mimetype] || mimes[file.originalname.split('.').pop()] || 'txt';
cb(null, uniqueSuffix + '.' + type)
}
});
@ -97,7 +99,7 @@ async function initr(req, res, next) {
'unread'
]);
msgCount = messages[0]['count(*)'];
msgCount = messages[0]['count(*)'];
}
let headerCtx = [

View file

@ -5,8 +5,16 @@
<img class='art' src='<%= contentN.path %>'>
<% } else if (contentN.ext == '!neoboxels') { %>
</a>
<a class='link' href='https://sand.dervland.net/?embed=https://com.dervland.net<%= contentN.path %>'>
Neoboxels Save
<a class='form-button' href='https://sand.dervland.net/?embed=https://com.dervland.net<%= contentN.encoded %>'>
Play my Neoboxels map!
<% } else if (contentN.ext == 'pmp') { %>
</a>
<a class='form-button' href='https://studio.penguinmod.com/editor.html?project_url=https://com.dervland.net<%= contentN.encoded %>'>
Play my PenguinMod project!
<% } else if (contentN.ext == 'sb3') { %>
</a>
<a class='form-button' href='https://turbowarp.org/editor.html?project_url=https://com.dervland.net<%= contentN.encoded %>'>
Play my Scratch project!
<% } else if (['txt','json'].indexOf(contentN.ext) != -1) { %>
<%= contentN.href %>
</a>