From fb344d99394dcd47f8818529e3de37448db8f687 Mon Sep 17 00:00:00 2001 From: Matjaz Date: Mon, 10 Jan 2022 22:53:06 +0100 Subject: [PATCH] Uploading of articles. --- index.js | 2 +- routes/admin.js | 22 +++++++++++++++++++++- routes/index.js | 2 +- 3 files changed, 23 insertions(+), 3 deletions(-) diff --git a/index.js b/index.js index a532357..ddf01f5 100644 --- a/index.js +++ b/index.js @@ -11,6 +11,6 @@ const gemini = new uplinkGemini.Gemini(); gemini.router.use('/', index); gemini.router.use('/articles/', articles); gemini.router.use('/articles/:item', articles_item); -gemini.router.use('/admin', admin); +gemini.router.use('/admin/', admin); gemini.listen(); diff --git a/routes/admin.js b/routes/admin.js index 1d75832..f04941f 100644 --- a/routes/admin.js +++ b/routes/admin.js @@ -1,6 +1,26 @@ +var fs = require('fs'); + /* GET home page. */ function admin(req, res) { - res.send(`20 text/gemini\r\n\r\nHello Admin\r\n\r\n=> /articles/ 📓Articles\r\n=> / 🏡Home\r\n`) + if(req.protocol == 'titan:') { + console.log(req.content.toString()); + var title = ''; + var lines = req.content.toString().split('\n'); + for(var i = 0; i < lines.length; i++) { + if(lines[i].startsWith('# ')) { + title = lines[i].replace('# ', '').trim().replace(/ /g, '-').toLowerCase().replace(/č/g,'c').replace(/š/g, 's').replace(/ž/g, 'z') + '.gmi'; + console.log(title); + break; + } + } + try { + fs.writeFileSync('articles/' + title, req.content.toString()); + } catch (error) { + res.error(51); + return; + } + } + res.send(`20 text/gemini\r\n\r\nHello Admin\r\n\r\n=> titan://localhost/admin/ Upload new article\r\n\r\n=> /articles/ 📓Articles\r\n=> / 🏡Home\r\n`) } module.exports = admin; diff --git a/routes/index.js b/routes/index.js index 88d2015..8d7aac0 100644 --- a/routes/index.js +++ b/routes/index.js @@ -2,7 +2,7 @@ function index(request, response) { var adminBlock = ""; if(request.clientCert.fingerprint == '96:19:A6:91:57:AF:E2:D3:E0:80:FC:35:4E:BD:2A:46:C9:2D:CB:53') { - adminBlock = '## Administration\r\n=> /admin Administration'; + adminBlock = '## Administration\r\n=> /admin/ Administration'; } response.send(`20 text/gemini\r\n \`\`\` Uplink:SI Logo