From dbb2c34416212f8caf4afd6d6dd58429b98a05a0 Mon Sep 17 00:00:00 2001 From: highperfocused Date: Tue, 30 Dec 2025 22:19:00 +0100 Subject: [PATCH] improve event deletion logic to handle non-existent events gracefully --- main.go | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/main.go b/main.go index 07683fc..43bb77e 100644 --- a/main.go +++ b/main.go @@ -350,21 +350,25 @@ func main() { return err } - // Query and delete the event from the main event store + // Query and delete the event from the main event store (if it exists) for _, query := range relay.QueryEvents { ch, err := query(ctx, nostr.Filter{IDs: []string{id}}) if err != nil { continue } - evt := <-ch - if evt != nil { - for _, deleter := range relay.DeleteEvent { - if err := deleter(ctx, evt); err != nil { - return fmt.Errorf("failed to delete event: %w", err) + + // Read all events from the channel and delete them + for evt := range ch { + if evt != nil { + for _, deleter := range relay.DeleteEvent { + if err := deleter(ctx, evt); err != nil { + return fmt.Errorf("failed to delete event: %w", err) + } } } - break } + // Event successfully deleted or didn't exist - either way, ban is in place + break } return nil