userprofiles test

This commit is contained in:
Flummi 2022-05-17 14:57:32 +00:00 committed by schrumpel
parent 6f71101b9e
commit 6eddad7e0e
3 changed files with 77 additions and 2 deletions

View File

@ -65,7 +65,7 @@ export default {
and "user".user ilike ${user}
group by "items".id
`;
total = total[0].total;
total = total[0]?.total ?? 0;
}
}

View File

@ -10,6 +10,53 @@ const auth = async (req, res, next) => {
};
export default (router, tpl) => {
router.get(/\/user\/(?<user>.*)/, async (req, res) => {
const user = req.params.user;
const query = await db`
select "user".user, user_options.*
from user_options
left join "user" on "user".id = user_options.user_id
where "user".user ilike ${user}
limit 1
`;
if(!query.length) {
return res.reply({
code: 404,
body: tpl.render('error', {
message: 'this user does not exists',
tmp: null
}, req)
});
}
const f0cks = await f0cklib.getf0cks({
user: user,
mode: req.session.mode,
fav: false
});
const favs = await f0cklib.getf0cks({
user: user,
mode: req.session.mode,
fav: true
});
if('items' in f0cks)
f0cks.items = f0cks.items.slice(0, 50);
if('items' in favs)
favs.items = favs.items.slice(0, 50);
const data = {
user: query[0],
f0cks,
favs,
tmp: null
};
return res.reply({ body: tpl.render('user', data, req) });
});
router.get(/^\/?(?:\/tag\/(?<tag>.+?))?(?:\/user\/(?<user>.+?)\/(?<mode>f0cks|favs))?(?:\/(?<mime>image|audio|video))?(?:\/p\/(?<page>\d+))?(?:\/(?<itemid>\d+))?$/, async (req, res) => {
const mode = req.params.itemid ? 'item' : 'index';
const data = await (req.params.itemid ? f0cklib.getf0ck : f0cklib.getf0cks)({
@ -44,7 +91,7 @@ export default (router, tpl) => {
const mode = +req.url.split[1];
let referertmp = req.headers.referer;
let referer = "";
if(referertmp?.match(/f0ck\.me/))
referer = referertmp.split("/").slice(3).join("/");

28
views/user.html Normal file
View File

@ -0,0 +1,28 @@
@include(snippets/header)
<h1>{{ user.user }}</h1>
<h2>f0cks:</h2>
@if('items' in f0cks)
<a href="{{ f0cks.link.main }}">show all f0cks</a>
<div id="posts">
@each(f0cks.items as item)
<a href="{{ f0cks.link.main }}{{ item.id }}" data-mime="{{ item.mime }}" data-mode="{{ item.tag_id ? ['','sfw','nsfw'][item.tag_id] : 'null' }}" style="background-image: url('/t/{{ item.id }}.webp')"><p></p></a>
@endeach
</div>
@else
no f0cks given
@endif
<h2>favs:</h2>
@if('items' in favs)
<a href="{{ favs.link.main }}">show all favs</a>
<div id="posts">
@each(favs.items as item)
<a href="{{ favs.link.main }}{{ item.id }}" data-mime="{{ item.mime }}" data-mode="{{ item.tag_id ? ['','sfw','nsfw'][item.tag_id] : 'null' }}" style="background-image: url('/t/{{ item.id }}.webp')"><p></p></a>
@endeach
</div>
@else
no favorites
@endif
@include(snippets/footer)