search shmearch

This commit is contained in:
Flummi
2022-05-06 14:20:11 +02:00
parent b54250f2fb
commit c0669602dd
7 changed files with 130 additions and 72 deletions

View File

@ -1,7 +1,6 @@
import db from "../sql.mjs";
import lib from "../lib.mjs";
import { exec } from "child_process";
import search from "../routeinc/search.mjs";
const auth = async (req, res, next) => {
if(!req.session) {
@ -120,43 +119,6 @@ export default (router, tpl) => {
}, req)
});
});
router.get(/^\/admin\/test(\/)?$/, auth, async (req, res) => {
let ret;
if(Object.keys(req.url.qs).length > 0) {
let tag = req.url.qs.tag;
let rows;
if(tag.startsWith('src:')) {
tag = tag.substring(4);
ret = await db`
select *
from "items"
where src ilike ${'%' + tag + '%'}
limit 500
`;
}
else {
rows = await db`
select "items".id, "items".username, "tags".tag
from "tags"
left join "tags_assign" on "tags_assign".tag_id = "tags".id
left join "items" on "items".id = "tags_assign".item_id
where "tags".tag ilike ${'%' + tag + '%'}
limit 500
`;
ret = search(rows, tag);
}
}
res.reply({
body: tpl.render("admin/search", {
result: ret,
totals: await lib.countf0cks(),
session: req.session
}, req)
});
});
router.get(/^\/admin\/log(\/)?$/, auth, async (req, res) => {
exec("journalctl -qeu f0ck --no-pager", (err, stdout) => {

44
src/inc/routes/search.mjs Normal file
View File

@ -0,0 +1,44 @@
import db from "../sql.mjs";
import lib from "../lib.mjs";
import search from "../routeinc/search.mjs";
export default (router, tpl) => {
router.get(/^\/search(\/)?$/, lib.auth, async (req, res) => {
let ret;
let tag = req.url.qs?.tag;
if(Object.keys(req.url.qs).length > 0) {
let rows;
if(tag.startsWith('src:')) {
tag = tag.substring(4);
ret = await db`
select *
from "items"
where src ilike ${'%' + tag + '%'}
limit 500
`;
}
else {
rows = await db`
select "items".id, "items".username, "items".mime, "tags".tag
from "tags"
left join "tags_assign" on "tags_assign".tag_id = "tags".id
left join "items" on "items".id = "tags_assign".item_id
where "tags".tag ilike ${'%' + tag + '%'}
limit 500
`;
ret = search(rows, tag);
}
}
res.reply({
body: tpl.render("search", {
result: ret,
totals: await lib.countf0cks(),
searchstring: tag,
session: req.session,
tmp: null
}, req)
});
});
};