From dcb2d17e21a852101831d73b47bc2cc14ae2eda6 Mon Sep 17 00:00:00 2001 From: Rory& Date: Wed, 24 Jun 2026 06:46:16 +0200 Subject: [PATCH] op14: deduplicate group adding code --- .../Controllers/Op14Controller.cs | 54 +++++++------------ 1 file changed, 20 insertions(+), 34 deletions(-) diff --git a/extra/admin-api/Spacebar.Offload/Controllers/Op14Controller.cs b/extra/admin-api/Spacebar.Offload/Controllers/Op14Controller.cs index 30eb399f3..9b676bad9 100644 --- a/extra/admin-api/Spacebar.Offload/Controllers/Op14Controller.cs +++ b/extra/admin-api/Spacebar.Offload/Controllers/Op14Controller.cs @@ -15,6 +15,8 @@ using Spacebar.Models.Gateway; using Spacebar.Models.Generic; using Spacebar.Models.Generic.Constants; using Spacebar.Offload.Extensions; +using Member = Spacebar.Models.Db.Models.Member; +using Role = Spacebar.Models.Db.Models.Role; namespace Spacebar.GatewayOffload.Controllers; @@ -122,9 +124,21 @@ public class Op14Controller(ILogger logger, SpacebarAspNetAuthen .ThenInclude(x => x.Sessions.Where(s => s.Status != "offline" && s.Status != "invisible" && s.Status != "unknown")) .Include(x => x.Roles) .OrderBy(x => x.Nick ?? x.IdNavigation.Username) - .Where(x=>x.GuildId == guildId); - - + .Where(x => x.GuildId == guildId); + + void AddGroupIfNonEmpty(string groupId, string groupName, List members) + { + logger.LogInformation("Got {count} potential members for group {group} ({groupName}): {members}", + members.Count, groupId, groupName, string.Join(", ", members.Take(10).Select(x => $"{x.Id} {x.Nick ?? x.IdNavigation.Tag}")) + ); + + if (members.Count > 0) + { + memberList.Add(new GuildMemberListSyncItem.RoleEntry() { Group = new() { Id = groupId, Count = members.Count } }); + memberList.AddRange(members.Select(m => new GuildMemberListSyncItem.MemberEntry() { Member = m.ToPublicMemberWithPresence() })); + } + } + foreach (var roleObj in hoistedRoles) { var role = roleObj.Id; @@ -136,16 +150,7 @@ public class Op14Controller(ILogger logger, SpacebarAspNetAuthen && x.IdNavigation.Sessions.Any(s => s.Status != "offline" && s.Status != "invisible" && s.Status != "unknown") ).ToListAsync(); - logger.LogInformation("Got {count} potential members for group {group} ({groupName}): {members}", - members.Count, role, roleObj.Name, string.Join(", ", members.Take(10).Select(x => $"{x.Id} {x.Nick ?? x.IdNavigation.Tag}")) - ); - - if (members.Count > 0) - { - memberList.Add(new GuildMemberListSyncItem.RoleEntry() { Group = new() { Id = role.ToString(), Count = members.Count } }); - memberList.AddRange(members.Select(m => new GuildMemberListSyncItem.MemberEntry() { Member = m.ToPublicMemberWithPresence() })); - } - + AddGroupIfNonEmpty(roleObj.Id.ToString(), roleObj.Name, members); handledRoles.Add(role); } @@ -157,15 +162,7 @@ public class Op14Controller(ILogger logger, SpacebarAspNetAuthen && x.IdNavigation.Sessions.Any(s => s.Status != "offline" && s.Status != "invisible" && s.Status != "unknown") ).ToListAsync(); - logger.LogInformation("Got {count} potential members for group {group} ({groupName}): {members}", - onlineMembers.Count, "online", "online", string.Join(", ", onlineMembers.Take(10).Select(x => $"{x.Id} {x.Nick ?? x.IdNavigation.Tag}")) - ); - - if (onlineMembers.Count > 0) - { - memberList.Add(new GuildMemberListSyncItem.RoleEntry() { Group = new() { Id = "online", Count = onlineMembers.Count } }); - memberList.AddRange(onlineMembers.Select(m => new GuildMemberListSyncItem.MemberEntry() { Member = m.ToPublicMemberWithPresence() })); - } + AddGroupIfNonEmpty("online", "online", onlineMembers); if (memberList.Count < 2000) { @@ -177,18 +174,7 @@ public class Op14Controller(ILogger logger, SpacebarAspNetAuthen && (x.IdNavigation.Sessions.All(s => s.Status == "offline" || s.Status == "invisible" || s.Status == "unknown") || !x.IdNavigation.Sessions.Any()) ).ToListAsync(); - logger.LogInformation("Got {count} potential members for group {group} ({groupName}): {members}", - offlineMembers.Count, "offline", "offline", string.Join(", ", offlineMembers.Take(10).Select(x => $"{x.Id} {x.Nick ?? x.IdNavigation.Tag}")) - ); - - if (offlineMembers.Count > 0) - { - memberList.Add(new GuildMemberListSyncItem.RoleEntry() - { - Group = new() { Id = "offline", Count = offlineMembers.Count } - }); - memberList.AddRange(offlineMembers.Select(m => new GuildMemberListSyncItem.MemberEntry() { Member = m.ToPublicMemberWithPresence() })); - } + AddGroupIfNonEmpty("offline", "offline", offlineMembers); } logger.LogInformation("Got member list with {count} total nodes", memberList.Count);