favorites beta
This commit is contained in:
@ -190,6 +190,32 @@ export default (router, tpl) => {
|
||||
})});
|
||||
});
|
||||
|
||||
group.get(/\/admin\/togglefav\/\d+$/, auth, async (req, res) => {
|
||||
const itemid = +req.url.split[4];
|
||||
|
||||
let favs = await sql('favorites').select('user_id').where('item_id', itemid);
|
||||
|
||||
if(Object.values(favs).filter(u => u.user_id === req.session.id)[0]) {
|
||||
// del fav
|
||||
await sql('favorites').where('user_id', req.session.id).andWhere('item_id', itemid).del();
|
||||
}
|
||||
else {
|
||||
// add fav
|
||||
await sql('favorites').insert({
|
||||
item_id: itemid,
|
||||
user_id: req.session.id
|
||||
});
|
||||
}
|
||||
|
||||
favs = await sql('favorites').select('user_id').where('item_id', itemid);
|
||||
|
||||
res.reply({ body: JSON.stringify({
|
||||
success: true,
|
||||
itemid: itemid,
|
||||
favs: favs
|
||||
})});
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
return router;
|
||||
|
@ -136,7 +136,10 @@ export default {
|
||||
};
|
||||
}
|
||||
|
||||
let items = sql("items").select("*").orderBy("items.id", "desc").whereRaw(modequery);
|
||||
let items = sql("items")
|
||||
.select("*")
|
||||
.orderBy("items.id", "desc")
|
||||
.whereRaw(modequery);
|
||||
|
||||
if(tag) {
|
||||
items = items.innerJoin(
|
||||
@ -169,6 +172,11 @@ export default {
|
||||
const tags = await lib.getTags(itemid);
|
||||
const cheat = items.slice(Math.max(0, item - 3), item + 4).map(i => i.id);
|
||||
const link = lib.genLink({ user, tag, mime, act_page: itemid });
|
||||
const favorites = await sql('favorites')
|
||||
.select('user.user', 'user_options.avatar')
|
||||
.leftJoin('user', 'user.id', 'favorites.user_id')
|
||||
.leftJoin('user_options', 'user_options.user_id', 'favorites.user_id')
|
||||
.where('favorites.item_id', itemid);
|
||||
|
||||
const data = {
|
||||
success: true,
|
||||
@ -192,6 +200,7 @@ export default {
|
||||
timeago: lib.timeAgo(new Date(actitem.stamp * 1e3).toISOString()),
|
||||
timefull: new Date(actitem.stamp * 1e3).toISOString()
|
||||
},
|
||||
favorites: favorites,
|
||||
tags: tags
|
||||
},
|
||||
title: `${actitem.id} - f0ck.me`,
|
||||
@ -204,8 +213,8 @@ export default {
|
||||
cheat: cheat,
|
||||
uff: true
|
||||
},
|
||||
link: link,
|
||||
phrase: cfg.websrv.phrases[~~(Math.random() * cfg.websrv.phrases.length)],
|
||||
link: link,
|
||||
tmp: tmp
|
||||
};
|
||||
return data;
|
||||
|
@ -65,7 +65,7 @@ import flummpress from "flummpress";
|
||||
|
||||
if(req.cookies.session) {
|
||||
const user = await sql("user_sessions") // get user
|
||||
.select("user.id", "user.login", "user.user", "user.level", "user_sessions.id as sess_id", "user_options.mode", "user_options.theme")
|
||||
.select("user.id", "user.login", "user.user", "user.level", "user_sessions.id as sess_id", "user_options.mode", "user_options.theme", "user_options.avatar")
|
||||
.where("user_sessions.session", lib.md5(req.cookies.session))
|
||||
.leftJoin("user", "user.id", "user_sessions.user_id")
|
||||
.leftJoin("user_options", "user_options.user_id", "user_sessions.user_id")
|
||||
|
Reference in New Issue
Block a user