This commit is contained in:
Flummi
2021-12-29 05:48:04 +01:00
parent 5fc0c1cf36
commit a87273cea0
12 changed files with 63 additions and 44 deletions

View File

@ -68,8 +68,7 @@ export default new class {
parseTag(tag) {
if(!tag)
return null;
return tag
.replace(/%20/g, " ");
return decodeURI(tag);
}
// async funcs
@ -103,8 +102,20 @@ export default new class {
.leftJoin("tags", "tags.id", "tags_assign.tag_id")
.leftJoin("user", "user.id", "tags_assign.user_id")
.where("tags_assign.item_id", itemid);
for(let t = 0; t < tags.length; t++)
tags[t].tag = tags[t].tag.replace(/[\u00A0-\u9999<>\&]/g, i => '&#'+i.charCodeAt(0)+';');
for(let t = 0; t < tags.length; t++) {
if(tags[t].tag.startsWith(">"))
tags[t].badge = "badge-greentext badge-light";
else if(/[а-яА-ЯЁё]/.test(tags[t].tag) || tags[t].tag.match(/russia/))
tags[t].badge = "badge-russia badge-light";
else if(tags[t].tag.match(/german/))
tags[t].badge = "badge-german badge-light";
else if(tags[t].tag === "sfw")
tags[t].badge = "badge-success";
else if(tags[t].tag === "nsfw")
tags[t].badge = "badge-danger";
else
tags[t].badge = "badge-light";
}
return tags;
};

View File

@ -13,7 +13,7 @@ const auth = async (req, res, next) => {
export default (router, tpl) => {
router.get(/^\/?(?:tag\/(?<tag>.+?))?(?:user\/(?<user>.+?))?(?:\/(?<mime>image|audio|video))?(?:\/p\/(?<page>\d+))?(?:\/(?<itemid>\d+))?$/, async (req, res) => {
const user = req.params.user ?? null;
const user = req.params.user ? decodeURI(req.params.user) : null;
const tag = lib.parseTag(req.params.tag ?? null);
const mime = (req.params.mime ?? "");
const smime = allowedMimes.includes(mime) ? mime + "/%" : mime === "" ? "%" : "%";