From 96ae3cac24c1e63fdc49425e6ee85f778f4c579b Mon Sep 17 00:00:00 2001 From: Flummi Date: Mon, 19 Feb 2018 10:34:21 +0100 Subject: [PATCH] new pastes --- src/routes/index.mjs | 4 +--- src/routes/r/about.mjs | 22 +++++++++++-------- src/routes/r/index.mjs | 49 +++++++++++++++++++++++++++++++++--------- src/routes/r/new.mjs | 17 --------------- 4 files changed, 53 insertions(+), 39 deletions(-) delete mode 100644 src/routes/r/new.mjs diff --git a/src/routes/index.mjs b/src/routes/index.mjs index a34981f..d2e8e55 100644 --- a/src/routes/index.mjs +++ b/src/routes/index.mjs @@ -1,12 +1,10 @@ import index from "./r/index"; import view from "./r/view"; import about from "./r/about"; -import newpaste from "./r/new"; export default { index: index, view: view, - about: about, - newpaste: newpaste + about: about }; \ No newline at end of file diff --git a/src/routes/r/about.mjs b/src/routes/r/about.mjs index 6fffd42..be0b900 100644 --- a/src/routes/r/about.mjs +++ b/src/routes/r/about.mjs @@ -1,11 +1,15 @@ import express from "express"; -const router = express.Router(); -router.get("/", (req, res) => { - res.render("about"); -}); -router.get("/howto", (req, res) => { - res.render("howto"); -}); - -export default router; \ No newline at end of file +export default express.Router() + .get("/", (req, res) => { + res.render("about"); + }) + .get("/howto", (req, res) => { + res.render("howto"); + }) + .get("/contact", (req, res) => { + res.render("contact"); + }) + .get("/statistics", (req, res) => { + res.render("statistics"); + }); \ No newline at end of file diff --git a/src/routes/r/index.mjs b/src/routes/r/index.mjs index d29193a..79a9d04 100644 --- a/src/routes/r/index.mjs +++ b/src/routes/r/index.mjs @@ -3,14 +3,43 @@ const router = express.Router(); import db from "../../lib/sql"; -router.get("/", (req, res) => { - db.exec("select * from `languages`") - .then(rows => { - res.render("index", { languages: rows.map(r => r.name) } ) - }) - .catch(err => { - res.send(err); - }); -}); +const query = "insert into `pastes` (`uuid`,`lang`,`desc`,`paste`,`hidden`,`reply`) " + + "values (LEFT(UUID(), 8), ?, ?, ?, ?, ?)"; +let languages = new Map(); +db.exec("select * from `languages`") + .then(rows => rows.forEach(r => languages.set(r.id, r.name))) + .catch(err => console.log(err)); -export default router; \ No newline at end of file +export default express.Router() + .get("/", (req, res) => { + res.render("index", { languages: [...languages.values()] } ) + }) + .post("/", (req, res) => { + const data = { + desc: req.body.desc || null, + content: req.body.content || false, + lang: languages.getKey(req.body.lang) || 1, + hidden: req.body.hidden || 0, + reply: req.body.reply || 0 + }; + if(!data.content) + return res.render("index", { languages: [...languages.values()], notification: "nope" }); + db.exec(query, [ + data.lang, + data.desc, + new Buffer(data.content).toString("base64"), + data.hidden, + data.reply + ]).then(insert => { + db.exec("select `uuid` from `pastes` where `id` = ? limit 1", [insert.insertId]).then(rows => { + res.redirect(`/${rows[0].uuid}/`); + }).catch(err => res.render("index", { languages: [...languages.values()], notification: "lol" })); + }).catch(err => res.render("index", { languages: [...languages.values()], notification: "didn't insert your paste lol" })); + }); + +Map.prototype.getKey = function(val) { + for (let [key, value] of this) + if(value.toLowerCase() === val.toLowerCase()) + return key; + return false; +}; \ No newline at end of file diff --git a/src/routes/r/new.mjs b/src/routes/r/new.mjs deleted file mode 100644 index 0bed5c1..0000000 --- a/src/routes/r/new.mjs +++ /dev/null @@ -1,17 +0,0 @@ -import express from "express"; -const router = express.Router(); - -import db from "../../lib/sql"; -import * as lib from "../../lib"; - -router.get("/", (req, res) => { - lib.getPaste(1) - .then(row => { - res.send(row); - }) - .catch(err => { - res.send("err"); - }); -}); - -export default router; \ No newline at end of file