From 113565e0fbce43798f7dabcd6e90a96f3977f4a2 Mon Sep 17 00:00:00 2001 From: Jon Staab Date: Wed, 5 Nov 2025 11:35:21 -0800 Subject: [PATCH] Fix member removal --- zooid/groups.go | 6 +++--- zooid/util.go | 7 +++++++ 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/zooid/groups.go b/zooid/groups.go index 1ee0243..aad2af3 100644 --- a/zooid/groups.go +++ b/zooid/groups.go @@ -186,9 +186,9 @@ func (g *GroupStore) GetMembers(h string) []nostr.PubKey { members := make([]nostr.PubKey, 0) - for event := range g.Events.QueryEvents(filter, 0) { - for hex := range event.Tags.FindAll("p") { - if pubkey, err := nostr.PubKeyFromHex(hex[1]); err == nil { + for _, event := range Reversed(slices.Collect(g.Events.QueryEvents(filter, 0))) { + for tag := range event.Tags.FindAll("p") { + if pubkey, err := nostr.PubKeyFromHex(tag[1]); err == nil { if event.Kind == nostr.KindSimpleGroupPutUser { members = append(members, pubkey) } else { diff --git a/zooid/util.go b/zooid/util.go index 949d18d..4067d62 100644 --- a/zooid/util.go +++ b/zooid/util.go @@ -3,6 +3,7 @@ package zooid import ( "fiatjaf.com/nostr" "math/rand" + "slices" "strings" ) @@ -58,6 +59,12 @@ func Remove[T comparable](slice []T, element T) []T { return slice } +func Reversed[T any](slice []T) []T { + slices.Reverse(slice) + + return slice +} + const letters = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ" func RandomString(n int) string {