huo
This commit is contained in:
@@ -558,24 +558,19 @@ export default router => {
|
|||||||
group.get(/\/orakel\/user$/, async (req, res) => {
|
group.get(/\/orakel\/user$/, async (req, res) => {
|
||||||
try {
|
try {
|
||||||
const now = ~~(Date.now() / 1000);
|
const now = ~~(Date.now() / 1000);
|
||||||
const thirtyDaysAgo = now - 2592000; // 30 days in seconds
|
const sevenDaysAgo = now - 604800; // 7 days in seconds
|
||||||
|
|
||||||
// Tiered selection from user.last_seen (updated fire-and-forget on every authenticated request):
|
// Flat random pick from all users seen in the last 7 days.
|
||||||
// Tier 0 — active in last 15 minutes
|
// No tiered bias — gives a proper pool of recently-active users
|
||||||
// Tier 1 — active in last 24 hours
|
// rather than always favouring whoever is online right now.
|
||||||
// Tier 2 — active in last 30 days (includes lurkers — anyone who visited the site)
|
|
||||||
// Banned users are always excluded.
|
// Banned users are always excluded.
|
||||||
let activeUsers = await db`
|
let activeUsers = await db`
|
||||||
SELECT "user"."user", "user".id, uo.display_name
|
SELECT "user"."user", "user".id, uo.display_name
|
||||||
FROM "user"
|
FROM "user"
|
||||||
LEFT JOIN user_options uo ON uo.user_id = "user".id
|
LEFT JOIN user_options uo ON uo.user_id = "user".id
|
||||||
WHERE "user".last_seen > ${thirtyDaysAgo}
|
WHERE "user".last_seen > ${sevenDaysAgo}
|
||||||
AND "user".banned = false
|
AND "user".banned = false
|
||||||
ORDER BY (CASE
|
ORDER BY RANDOM()
|
||||||
WHEN "user".last_seen > ${now - 900} THEN 0
|
|
||||||
WHEN "user".last_seen > ${now - 86400} THEN 1
|
|
||||||
ELSE 2
|
|
||||||
END), RANDOM()
|
|
||||||
LIMIT 1
|
LIMIT 1
|
||||||
`;
|
`;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user