diff --git a/assets/public/widget.html b/assets/public/widget.html
index 7893d88..dade4cc 100644
--- a/assets/public/widget.html
+++ b/assets/public/widget.html
@@ -63,14 +63,6 @@
diff --git "a/src/api/routes/guilds/\043guild_id/widget.json.ts" "b/src/api/routes/guilds/\043guild_id/widget.json.ts"
index 619bdb6..05c3087 100644
--- "a/src/api/routes/guilds/\043guild_id/widget.json.ts"
+++ "b/src/api/routes/guilds/\043guild_id/widget.json.ts"
@@ -100,17 +100,18 @@
// Fetch members
// TODO: Understand how Discord's max 100 random member sample works, and apply to here (see top of this file)
const members = await Member.find({ where: { guild_id: guild_id }, relations: { user: { sessions: true } } });
- const memberData = members.map((x) => {
+ const onlineMembers = members.filter((m) => m.user.sessions.filter((s) => (s.last_seen?.getTime() ?? 0) > Date.now() - 1000 * 60));
+ const memberData = onlineMembers.map((x) => {
return {
id: x.id,
username: x.user.username,
discriminator: x.user.discriminator,
- avatar: x.user.avatar,
+ avatar: null,
status: "online", // TODO
avatar_url: x.avatar
? `${Config.get().cdn.endpointPublic}/guilds/${guild_id}/users/${x.id}/avatars/${x.avatar}.png`
: x.user.avatar
- ? `${Config.get().cdn.endpointPublic}/avatars/${x.id}/${x.avatar}.png`
+ ? `${Config.get().cdn.endpointPublic}/avatars/${x.id}/${x.user.avatar}.png`
: `${Config.get().cdn.endpointPublic}/embed/avatars/${BigInt(x.id) % 6n}.png`,
};
});
@@ -122,7 +123,8 @@
instant_invite: invite?.code,
channels: channels,
members: memberData,
- presence_count: guild.presence_count || members.filter((m) => m.user.sessions.filter((s) => (s.last_seen?.getTime() ?? 0) > Date.now() - 1000 * 60)).length,
+ member_count: members.length,
+ presence_count: guild.presence_count || onlineMembers.length,
};
res.set("Cache-Control", "public, max-age=300");