From 36c24c9b3aee061d8a5f436f5cfd223d2d1e296c Mon Sep 17 00:00:00 2001 From: Flummi Date: Fri, 16 Oct 2020 08:03:36 +0200 Subject: [PATCH] . --- public/s/css/f0ck-custom.css | 26 ++++++++++++++++++++++++++ public/s/img/mp3.png | Bin 12902 -> 12851 bytes public/s/js/scroller.js | 2 +- src/websrv.mjs | 8 +++++++- views/index.html | 2 +- 5 files changed, 35 insertions(+), 3 deletions(-) diff --git a/public/s/css/f0ck-custom.css b/public/s/css/f0ck-custom.css index 7ced575..1d75550 100644 --- a/public/s/css/f0ck-custom.css +++ b/public/s/css/f0ck-custom.css @@ -204,4 +204,30 @@ select { img#biohaz { width: 28px; +} + +.metadata { + background: #1b1b1b; + border-top: 1px solid #262626; +} + +.content { + border-left: 1px solid #1b1b1b; + border-right: 1px solid #1b1b1b; +} + +.controls { + border-left: 1px solid #1b1b1b; + border-right: 1px solid #1b1b1b; +} + + +#themeselector { + padding: 0.04em 0.2em; + vertical-align: top; + font-weight: 560; +} + +span.badge.badge-dark { + margin-right: 5px; } \ No newline at end of file diff --git a/public/s/img/mp3.png b/public/s/img/mp3.png index 171d7bca5135d4c14e6556a453e6c13954ffb302..fea3f27d2887db1595e005e13f13c4852ecbc82a 100644 GIT binary patch literal 12851 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 literal 12902 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 { for(let i = 0; i < msg.items.length; i++) if(msg.items[i].id) - html += `
  • \n`; + html += `
  • \n`; posts.insertAdjacentHTML("beforeend", html); posts.dataset.last = msg.last; load = false; diff --git a/src/websrv.mjs b/src/websrv.mjs index 58f5add..88a2df1 100644 --- a/src/websrv.mjs +++ b/src/websrv.mjs @@ -19,7 +19,13 @@ import router from "./inc/router.mjs"; req.post = new Promise((resolve, _, data = "") => req .on("data", d => void (data += d)) - .on("end", () => void resolve(Object.fromEntries(Object.entries(querystring.parse(data)).map(([k, v]) => [k, decodeURIComponent(v)]))))); + .on("end", () => void resolve(Object.fromEntries(Object.entries(querystring.parse(data)).map(([k, v]) => { + try { + return [k, decodeURIComponent(v)]; + } catch(err) { + console.error(err); + } + }))))); res.reply = ({ code = 200, diff --git a/views/index.html b/views/index.html index 33aba0c..fda41ac 100644 --- a/views/index.html +++ b/views/index.html @@ -4,7 +4,7 @@ {{each items as item}}
  • - + {{=item.mime}}