From a575f52005897c67fcb6e647c673f38f8eb25951 Mon Sep 17 00:00:00 2001 From: schrumpel Date: Sat, 21 May 2022 11:30:23 +0200 Subject: [PATCH 1/6] overhauling error page --- public/s/css/f0ck.css | 87 ++++++++++++++++++++++++++++++++----------- views/error.html | 16 ++++++-- 2 files changed, 78 insertions(+), 25 deletions(-) diff --git a/public/s/css/f0ck.css b/public/s/css/f0ck.css index d45bfa6..5bed60a 100644 --- a/public/s/css/f0ck.css +++ b/public/s/css/f0ck.css @@ -279,6 +279,11 @@ html[theme="paper"] { --img-border-color: #363636; } +html[theme="paper"] .err { + background: black; + color: white; +} + html[theme="paper"] ._204863 { color: white; } @@ -756,7 +761,8 @@ html[theme="f0ck95"] .err span { } html[theme="f0ck95"] .err { - background: #3f9595; + background: silver; + border: outset 2px gray; } html[theme="f0ck95"] div.posts > a::after { @@ -853,6 +859,15 @@ html[theme="f0ck95"] .embed-responsive-image { right: 2px; } +html[theme="f0ck95"] ._error_message { + color: black; + text-shadow: none; +} + +html[theme="f0ck95"] ._error_topbar { + background: -webkit-linear-gradient(left,#08216b,#a5cef7); +} + /* f0ck95dARK */ html[theme='f0ck95d'] { --accent: #fff; @@ -862,7 +877,7 @@ html[theme='f0ck95d'] { --gray: silver; --nav-bg: #0b0a0a; --nav-brand-border: inset 1px black; - --nav-brand-bg: #022544; + --nav-brand-bg: #4c4c4c; --navigation-links-bg: #0b0b0b; --navigation-links-background-linear-gradient: rgba(0,0,0,.12),rgba(0,0,0,0); --navigation-links-border-color: rgba(0,0,0,.8) rgba(0,0,0,.65) rgba(0,0,0,.5); @@ -894,6 +909,15 @@ html[theme='f0ck95d'] { --img-border-color: #808080; } +html[theme="f0ck95d"] .err { + background: #4c4c4c; + border: 2px outset gray; +} + +html[theme="f0ck95d"] ._error_topbar { + background: #081f3e; +} + html[theme="f0ck95d"] ._204863 { content: " "; background: -webkit-linear-gradient(left,#0e111a,#073c71); @@ -1004,20 +1028,16 @@ html[theme="f0ck95d"] .pagination > span { } html[theme="f0ck95d"] .dropdown-menu { - border-left: inset 1px silver; - border-bottom: outset 1px silver; - border-right: outset 1px silver; - border-top: outset 1px gray; + border-left: inset 1px #4c4c4c; + border-bottom: outset 1px #4c4c4c; + border-right: outset 1px #4c4c4c; + border-top: outset 0px #4c4c4c; } html[theme="f0ck95d"] .err span { text-shadow: 0px 0px transparent; } -html[theme="f0ck95d"] .err { - background: #3f9595; -} - html[theme="f0ck95d"] div.posts > a::after { color: var(--white); } @@ -2390,22 +2410,45 @@ a[data-mime^="audio"] { } /* err page */ -.err { - display: grid; - grid-template-rows: auto 1fr; - grid-template-columns: 1fr auto; - margin: 50px; - box-shadow: 5px 5px 5px black; - border-radius: .45rem; - background: #bb880b; +._error_wrapper { + display: flex; + justify-content: center; } -.err span { +.err { + display: grid; + grid-template-rows: auto; + grid-template-columns: auto; + margin: 50px; + background: #bb880b; + max-width: 100%; + width: 500px; +} + +._error_topbar { + border-bottom: inset 2px gray; + text-align: left; + padding-left: 10px; +} + +._error_content { + display: grid; + grid-template-columns: auto 1fr; +} + +._error_message { + display: grid; + grid-template-columns: auto; + grid-template-rows: auto 1fr; + margin: 5px; + padding: 5px; + text-shadow: 1px 1px black; +} + +.err code { font-weight: bold; text-align: left; - align-self: center; - margin: 35px; - text-shadow: 1px 1px black; + align-self: baseline; font-size: 15px; } diff --git a/views/error.html b/views/error.html index b6799d4..748d05d 100644 --- a/views/error.html +++ b/views/error.html @@ -1,8 +1,18 @@ @include(snippets/header)
-
- {{ message }} - f0ck?! +
+
+
+ x.x +
+
+ f0ck?! +
+ Error + {{ message }} +
+
+
@include(snippets/footer) From 41194ca08a244077feea81e566818b5ebddc408e Mon Sep 17 00:00:00 2001 From: schrumpel Date: Sat, 21 May 2022 11:38:37 +0200 Subject: [PATCH 2/6] :eyes: ???? --- public/s/css/f0ck.css | 1 + 1 file changed, 1 insertion(+) diff --git a/public/s/css/f0ck.css b/public/s/css/f0ck.css index 5bed60a..2f56fb5 100644 --- a/public/s/css/f0ck.css +++ b/public/s/css/f0ck.css @@ -2443,6 +2443,7 @@ a[data-mime^="audio"] { margin: 5px; padding: 5px; text-shadow: 1px 1px black; + text-align: left; } .err code { From 29d5b20f5b8f0fc6e9806fec1d8544c3348786d7 Mon Sep 17 00:00:00 2001 From: Flummi Date: Sat, 21 May 2022 13:08:35 +0000 Subject: [PATCH 3/6] f0cklib2.0 --- src/inc/lib.mjs | 2 +- src/inc/routeinc/f0cklib.mjs | 184 +++++++++-------------------------- 2 files changed, 49 insertions(+), 137 deletions(-) diff --git a/src/inc/lib.mjs b/src/inc/lib.mjs index d320541..ab701d7 100644 --- a/src/inc/lib.mjs +++ b/src/inc/lib.mjs @@ -63,7 +63,7 @@ export default new class { const link = []; if(env.tag) link.push("tag", env.tag); if(env.user) link.push("user", env.user, env.type ?? 'f0cks'); - if(env.mime.length > 2) link.push(env.mime); + if(env.mime?.length > 2) link.push(env.mime); let tmp = link.length === 0 ? '/' : link.join('/'); if(!tmp.endsWith('/')) diff --git a/src/inc/routeinc/f0cklib.mjs b/src/inc/routeinc/f0cklib.mjs index 836ecfb..a17c76e 100644 --- a/src/inc/routeinc/f0cklib.mjs +++ b/src/inc/routeinc/f0cklib.mjs @@ -8,162 +8,75 @@ export default { getf0cks: async (o = { user, tag, mime, page, mode, fav }) => { const user = o.user ? decodeURI(o.user) : null; const tag = lib.parseTag(o.tag ?? null); - const mime = (o.mime ?? ""); + const mime = o.mime ?? null; const page = +(o.page ?? 1); const smime = cfg.allowedMimes.includes(mime) ? mime + "/%" : mime === "" ? "%" : "%"; - const tmp = { user, tag, mime, smime, page }; - + const tmp = { user, tag, mime, smime, page, mode: o.mode }; const modequery = mime == "audio" ? lib.getMode(0) : lib.getMode(o.mode ?? 0); - - let data; - let total; - if(tag) { - if(tag.match(/sfw/) || tag.length <= 2) - return { - success: false, - message: "nope." - }; + const total = (await db` + select distinct on (items.id) + count(*) as total + from items + left join tags_assign on tags_assign.item_id = items.id + left join tags on tags.id = tags_assign.tag_id + left join favorites on favorites.item_id = items.id + left join "user" on "user".id = favorites.user_id + left join tags_assign ta on ta.item_id = items.id and (ta.tag_id = 1 or ta.tag_id = 2) + where + ${ db.unsafe(modequery) } + ${ tag ? db`and tags.normalized ilike ${'%'+tag+'%'}` : db`` } + ${ o.fav ? db`and "user".user ilike ${'%'+user+'%'}` : db`` } + ${ user ? db`and items.username ilike ${'%'+user+'%'}` : db`` } + ${ mime ? db`and items.mime ilike ${smime}` : db`` } + and items.id not in (select item_id from tags_assign where item_id = items.id and tag_id = 9912) --public filter + group by items.id, tags.tag, ta.tag_id + `)?.[0]?.total || 0; - total = await db` - select count(*) as total - from items - inner join ( - select tags_assign.item_id, tags.tag - from tags - left join tags_assign on tags_assign.tag_id = tags.id - where tags.tag ilike ${'%' + (tag ? tag : '') + '%'} - group by tags_assign.item_id, tags.tag - ) as st on st.item_id = items.id - where ${db.unsafe(modequery)} - group by st.tag, st.item_id`; - - total = total?.length; - } - else { - if(!o.fav) { - total = await db` - select count(*) as total - from items - where ${db.unsafe(modequery)} - and items.mime ilike ${smime} - and items.username ilike ${user ? user : '%'} - `; - total = total[0].total; - } - else { - total = await db` - select count(*) as total - from "favorites" - left join "user" on "user".id = "favorites".user_id - left join "tags_assign" on "tags_assign".item_id = "favorites".item_id - left join "tags" on "tags".id = "tags_assign".tag_id - left join "items" on "items".id = "favorites".item_id - where ${db.unsafe(modequery)} - and "items".mime ilike ${smime} - and "user".user ilike ${user} - group by "items".id - `; - total = total[0]?.total ?? 0; - } - } - - if(!total || total.length === 0) + if(!total || total.length === 0) { return { success: false, message: "404 - no f0cks given" }; - + } + const pages = +Math.ceil(total / cfg.websrv.eps); const act_page = Math.min(pages, page || 1); const offset = Math.max(0, (act_page - 1) * cfg.websrv.eps); - let rows; + const rows = await db` + select distinct on (items.id) + items.id, + items.mime, + tags.tag, + ta.tag_id + from items + left join tags_assign on tags_assign.item_id = items.id + left join tags on tags.id = tags_assign.tag_id + left join favorites on favorites.item_id = items.id + left join "user" on "user".id = favorites.user_id + left join tags_assign ta on ta.item_id = items.id and (ta.tag_id = 1 or ta.tag_id = 2) + where + ${ db.unsafe(modequery) } + ${ tag ? db`and tags.normalized ilike ${'%'+tag+'%'}` : db`` } + ${ o.fav ? db`and "user".user ilike ${'%'+user+'%'}` : db`` } + ${ user ? db`and items.username ilike ${'%'+user+'%'}` : db`` } + ${ mime ? db`and items.mime ilike ${smime}` : db`` } + and items.id not in (select item_id from tags_assign where item_id = items.id and tag_id = 9912) --public filter + group by items.id, tags.tag, ta.tag_id + order by items.id desc + offset ${offset} + limit ${cfg.websrv.eps} + `; - if(!o.fav) { - rows = db` - select "items".id, "items".mime, "tags_assign".tag_id - from "items" - left join "tags_assign" on "tags_assign".item_id = "items".id and ("tags_assign".tag_id = 1 or "tags_assign".tag_id = 2) - ${tag - ? db` - inner join ( - select "tags_assign".item_id, "tags".tag - from "tags" - left join "tags_assign" on "tags_assign".tag_id = "tags".id - where "tags".tag ilike ${'%' + tag + '%'} - group by "tags_assign".item_id, "tags".tag - ) as st on st.item_id = "items".id - ` - : db`` - } - where ${db.unsafe(modequery)} - and "items".mime ilike ${smime} - and "items".username ilike ${user ? user : '%'} - ${tag - ? db`group by st.item_id, "items".id, "tags_assign".tag_id` - : db`` - } - order by "items".id desc - offset ${offset} - limit ${cfg.websrv.eps} - `; - } - else { - rows = db` - select "items".id, "items".mime, ta.tag_id - from "favorites" - left join "user" on "user".id = "favorites".user_id - left join "tags_assign" on "tags_assign".item_id = "favorites".item_id - left join "tags" on "tags".id = "tags_assign".tag_id - left join "items" on "items".id = "favorites".item_id - left join "tags_assign" as ta on ta.item_id = "items".id and (ta.tag_id = 1 or ta.tag_id = 2) - ${ tag - ? db` - inner join ( - select "tags_assign".item_id, "tags".tag - from "tags" - left join "tags_assign" on "tags_assign".tag_id = "tags".id - where "tags".tag ilike ${'%' + tag + '%'} - group by "tags_assign".item_id, "tags".tag - ) as st on st.item_id = "items".id` - : db`` - } - where ${db.unsafe(modequery)} - and "items".mime ilike ${smime} - and "user".user ilike ${user} - ${tag - ? db`group by st.item_id, "items".id, "tags_assign".tag_id` - : db`` - } - group by "items".id, ta.tag_id - order by "items".id desc - offset ${offset} - limit ${cfg.websrv.eps} - `; - } - - rows = await rows; - - if(rows.length === 0) - return { - success: false, - message: "oopsi woopsi" - }; - - /*rows.forEach(e => { - if(!fs.existsSync(`public/t/${e.id}.png`)) - fs.copyFileSync("public/s/img/broken.png", `public/t/${e.id}.png`); - });*/ - const cheat = []; for(let i = Math.max(1, act_page - 3); i <= Math.min(act_page + 3, pages); i++) cheat.push(i); const link = lib.genLink({ user, tag, mime, type: o.fav ? 'favs' : 'f0cks', path: 'p/' }); - data = { + return { success: true, items: rows, pagination: { @@ -177,7 +90,6 @@ export default { link, tmp }; - return data; }, getf0ck: async (o = ({ user, tag, mime, itemid, mode })) => { const user = o.user ? decodeURI(o.user) : null; From d0f8cb5acb03ca6d2a6a654711472d352a94c413 Mon Sep 17 00:00:00 2001 From: Flummi Date: Sat, 21 May 2022 15:16:04 +0200 Subject: [PATCH 4/6] fix pagination --- src/inc/routeinc/f0cklib.mjs | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/inc/routeinc/f0cklib.mjs b/src/inc/routeinc/f0cklib.mjs index a17c76e..4392f19 100644 --- a/src/inc/routeinc/f0cklib.mjs +++ b/src/inc/routeinc/f0cklib.mjs @@ -17,13 +17,12 @@ export default { const total = (await db` select distinct on (items.id) - count(*) as total + count(items.id) as total from items left join tags_assign on tags_assign.item_id = items.id left join tags on tags.id = tags_assign.tag_id left join favorites on favorites.item_id = items.id left join "user" on "user".id = favorites.user_id - left join tags_assign ta on ta.item_id = items.id and (ta.tag_id = 1 or ta.tag_id = 2) where ${ db.unsafe(modequery) } ${ tag ? db`and tags.normalized ilike ${'%'+tag+'%'}` : db`` } @@ -31,10 +30,10 @@ export default { ${ user ? db`and items.username ilike ${'%'+user+'%'}` : db`` } ${ mime ? db`and items.mime ilike ${smime}` : db`` } and items.id not in (select item_id from tags_assign where item_id = items.id and tag_id = 9912) --public filter - group by items.id, tags.tag, ta.tag_id - `)?.[0]?.total || 0; + group by items.id, tags.tag + `)?.length || 0; - if(!total || total.length === 0) { + if(!total || total === 0) { return { success: false, message: "404 - no f0cks given" From af4c48f351d5a3ae4f884413353bf744357e9568 Mon Sep 17 00:00:00 2001 From: Flummi Date: Sat, 21 May 2022 16:39:24 +0200 Subject: [PATCH 5/6] hide tags from the public --- config_example.json | 1 + src/inc/routeinc/f0cklib.mjs | 177 +++++++++-------------------------- src/inc/routes/index.mjs | 9 +- 3 files changed, 53 insertions(+), 134 deletions(-) diff --git a/config_example.json b/config_example.json index 59ab748..c67bd3f 100644 --- a/config_example.json +++ b/config_example.json @@ -14,6 +14,7 @@ }, "allowedModes": [ "sfw", "nsfw", "untagged", "all" ], "allowedMimes": [ "audio", "image", "video" ], + "nsfp": [], "websrv": { "port": "8080", "paths": { diff --git a/src/inc/routeinc/f0cklib.mjs b/src/inc/routeinc/f0cklib.mjs index 4392f19..93654b9 100644 --- a/src/inc/routeinc/f0cklib.mjs +++ b/src/inc/routeinc/f0cklib.mjs @@ -4,8 +4,10 @@ import cfg from "../config.mjs"; import fs from "fs"; import url from "url"; +const globalfilter = cfg.nsfp.map(n => `tag_id = ${n}`).join(' or '); + export default { - getf0cks: async (o = { user, tag, mime, page, mode, fav }) => { + getf0cks: async (o = { user, tag, mime, page, mode, fav, session }) => { const user = o.user ? decodeURI(o.user) : null; const tag = lib.parseTag(o.tag ?? null); const mime = o.mime ?? null; @@ -29,7 +31,7 @@ export default { ${ o.fav ? db`and "user".user ilike ${'%'+user+'%'}` : db`` } ${ user ? db`and items.username ilike ${'%'+user+'%'}` : db`` } ${ mime ? db`and items.mime ilike ${smime}` : db`` } - and items.id not in (select item_id from tags_assign where item_id = items.id and tag_id = 9912) --public filter + ${ !o.session ? db`and items.id not in (select item_id from tags_assign where item_id = items.id and (${db.unsafe(globalfilter)}))` : db`` } group by items.id, tags.tag `)?.length || 0; @@ -62,7 +64,7 @@ export default { ${ o.fav ? db`and "user".user ilike ${'%'+user+'%'}` : db`` } ${ user ? db`and items.username ilike ${'%'+user+'%'}` : db`` } ${ mime ? db`and items.mime ilike ${smime}` : db`` } - and items.id not in (select item_id from tags_assign where item_id = items.id and tag_id = 9912) --public filter + ${ !o.session ? db`and items.id not in (select item_id from tags_assign where item_id = items.id and (${db.unsafe(globalfilter)}))` : db`` } group by items.id, tags.tag, ta.tag_id order by items.id desc offset ${offset} @@ -90,7 +92,7 @@ export default { tmp }; }, - getf0ck: async (o = ({ user, tag, mime, itemid, mode })) => { + getf0ck: async (o = ({ user, tag, mime, itemid, mode, session })) => { const user = o.user ? decodeURI(o.user) : null; const tag = lib.parseTag(o.tag ?? null); const mime = (o.mime ?? ""); @@ -108,75 +110,26 @@ export default { }; } - let items; - - if(o.fav) { - items = db` - select "items".* - from "favorites" - left join "items" on "items".id = "favorites".item_id - left join "user" on "user".id = "favorites".user_id - ${ tag - ? db` - inner join ( - select "tags_assign".item_id, "tags".tag - from "tags" - left join "tags_assign" on "tags_assign".tag_id = "tags".id - where "tags".tag ilike ${'%' + tag + '%'} - group by "tags_assign".item_id, "tags".tag - ) as st on st.item_id = "items".id` - : db`` - } - where ${db.unsafe(modequery)} - and "user".user ilike ${user} - ${ mime - ? db`and "items".mime ilike ${mime + '/%'}` - : db`` - } - ${ tag - ? db`group by st.tag, st.item_id, "items".id` - : db`group by "items".id, "favorites".user_id, "favorites".item_id, "user".id` - } - order by "items".id desc - `; - } - else { - items = db` - select "items".* - from "items" - ${ tag - ? db` - inner join ( - select "tags_assign".item_id, "tags_assign".tag_id, "tags".tag - from "tags" - left join "tags_assign" on "tags_assign".tag_id = "tags".id - where "tags".tag ilike ${'%' + tag + '%'} - group by "tags_assign".item_id, "tags".tag, "tags_assign".tag_id - ) as st on st.item_id = "items".id` - : db`` - } - where ${db.unsafe(modequery)} - ${ user - ? db`and "items".username ilike ${'%' + user + '%'}` - : db`` - } - ${ mime - ? db`and "items".mime ilike ${mime + '/%'}` - : db`` - } - ${ tag - ? db`group by st.item_id, "items".id, st.tag_id` - : db`group by "items".id` - } - order by "items".id desc - `; - } + const items = await db` + select distinct on (items.id) + items.* + from items + left join tags_assign on tags_assign.item_id = items.id + left join tags on tags.id = tags_assign.tag_id + left join favorites on favorites.item_id = items.id + left join "user" on "user".id = favorites.user_id + left join tags_assign ta on ta.item_id = items.id and (ta.tag_id = 1 or ta.tag_id = 2) + where + ${ db.unsafe(modequery) } + ${ tag ? db`and tags.normalized ilike ${'%'+tag+'%'}` : db`` } + ${ o.fav ? db`and "user".user ilike ${'%'+user+'%'}` : db`` } + ${ user ? db`and items.username ilike ${'%'+user+'%'}` : db`` } + ${ mime ? db`and items.mime ilike ${smime}` : db`` } + ${ !o.session ? db`and items.id not in (select item_id from tags_assign where item_id = items.id and (${db.unsafe(globalfilter)}))` : db`` } + group by items.id, tags.tag, ta.tag_id + order by items.id desc + `; - items = await items; - - if(tag) - items = items.filter((v, i, s) => i === s.findIndex(t => t.id === v.id)); - const item = items.findIndex(i => i.id === itemid); const actitem = items[item]; @@ -245,71 +198,33 @@ export default { }; return data; }, - getRandom: async (o = ({ user, tag, mime, mode })) => { + getRandom: async (o = ({ user, tag, mime, mode, session })) => { const user = o.user ? decodeURI(o.user) : null; const tag = lib.parseTag(o.tag ?? null); const mime = (o.mime ?? ""); + const smime = cfg.allowedMimes.includes(mime) ? mime + "/%" : mime === "" ? "%" : "%"; const modequery = mime == "audio" ? lib.getMode(0) : lib.getMode(o.mode ?? 0); - let item; - if(o.fav) { // dood lol - item = db` - select "items".* - from "favorites" - left join "items" on "items".id = "favorites".item_id - left join "user" on "user".id = "favorites".user_id - ${ tag - ? db` - inner join ( - select "tags_assign".item_id, "tags".tag - from "tags" - left join "tags_assign" on "tags_assign".tag_id = "tags".id - where "tags".tag ilike ${'%' + tag + '%'} - group by "tags_assign".item_id, "tags".tag - ) as st on st.item_id = "items".id` - : db`` - } - where ${db.unsafe(modequery)} - and "user".user ilike ${user} - ${ mime - ? db`and "items".mime ilike ${mime + '/%'}` - : db`` - } - order by random() - limit 1 - `; - } - else { - item = db` - select * - from "items" - ${ tag - ? db` - inner join ( - select "tags_assign".item_id, "tags".tag - from "tags" - left join "tags_assign" on "tags_assign".tag_id = "tags".id - where "tags".tag ilike ${'%' + tag + '%'} - group by "tags_assign".item_id, "tags".tag - ) as st on st.item_id = "items".id` - : db`` - } - where ${db.unsafe(modequery)} - ${ user - ? db`and "items".username ilike ${'%' + user + '%'}` - : db`` - } - ${ mime - ? db`and "items".mime ilike ${mime + '/%'}` - : db`` - } - order by random() - limit 1 - `; - } - - item = await item; + const item = await db` + select + items.id + from items + left join tags_assign on tags_assign.item_id = items.id + left join tags on tags.id = tags_assign.tag_id + left join favorites on favorites.item_id = items.id + left join "user" on "user".id = favorites.user_id + where + ${ db.unsafe(modequery) } + ${ tag ? db`and tags.normalized ilike ${'%'+tag+'%'}` : db`` } + ${ o.fav ? db`and "user".user ilike ${'%'+user+'%'}` : db`` } + ${ user ? db`and items.username ilike ${'%'+user+'%'}` : db`` } + ${ mime ? db`and items.mime ilike ${smime}` : db`` } + ${ !o.session ? db`and items.id not in (select item_id from tags_assign where item_id = items.id and (${db.unsafe(globalfilter)}))` : db`` } + group by items.id, tags.tag + order by random() + limit 1 + `; if(item.length === 0) { return { diff --git a/src/inc/routes/index.mjs b/src/inc/routes/index.mjs index 324f32f..5e5a6cc 100644 --- a/src/inc/routes/index.mjs +++ b/src/inc/routes/index.mjs @@ -34,12 +34,14 @@ export default (router, tpl) => { const f0cks = await f0cklib.getf0cks({ user: user, mode: req.session.mode, - fav: false + fav: false, + session: !!req.session }); const favs = await f0cklib.getf0cks({ user: user, mode: req.session.mode, - fav: true + fav: true, + session: !!req.session }); if('items' in f0cks) @@ -66,7 +68,8 @@ export default (router, tpl) => { page: req.params.page, itemid: req.params.itemid, fav: req.params.mode == 'favs', - mode: req.session.mode + mode: req.session.mode, + session: !!req.session }); if(!data.success) { return res.reply({ From 74431a2a29e354020a3da49ffb7710a0edff5ceb Mon Sep 17 00:00:00 2001 From: Flummi Date: Sat, 21 May 2022 16:40:59 +0200 Subject: [PATCH 6/6] lel --- src/inc/routes/random.mjs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/inc/routes/random.mjs b/src/inc/routes/random.mjs index c4917ae..6af00c1 100644 --- a/src/inc/routes/random.mjs +++ b/src/inc/routes/random.mjs @@ -19,7 +19,8 @@ export default (router, tpl) => { mime: opts.mime, page: opts.page, fav: opts.mode == 'favs', - mode: req.session.mode + mode: req.session.mode, + session: !!req.session }); if(!data.success) {