diff --git a/add-event.go b/add-event.go index b2fbe5e..518fde1 100644 --- a/add-event.go +++ b/add-event.go @@ -86,7 +86,11 @@ func (rl *Relay) AddEvent(ctx context.Context, evt *nostr.Event) error { } } + for _, ovw := range rl.OverwriteResponseEvent { + ovw(ctx, evt) + } notifyListeners(evt) + return nil } diff --git a/handlers.go b/handlers.go index 4829477..ce9d3a3 100644 --- a/handlers.go +++ b/handlers.go @@ -236,6 +236,9 @@ func (rl *Relay) HandleWebsocket(w http.ResponseWriter, r *http.Request) { go func(ch chan *nostr.Event) { for event := range ch { + for _, ovw := range rl.OverwriteResponseEvent { + ovw(ctx, event) + } ws.WriteJSON(nostr.EventEnvelope{SubscriptionID: &id, Event: *event}) } eose.Done() diff --git a/relay.go b/relay.go index 06c6214..e8be0dc 100644 --- a/relay.go +++ b/relay.go @@ -45,6 +45,7 @@ type Relay struct { RejectFilter []func(ctx context.Context, filter nostr.Filter) (reject bool, msg string) RejectCountFilter []func(ctx context.Context, filter nostr.Filter) (reject bool, msg string) OverwriteDeletionOutcome []func(ctx context.Context, target *nostr.Event, deletion *nostr.Event) (acceptDeletion bool, msg string) + OverwriteResponseEvent []func(ctx context.Context, event *nostr.Event) StoreEvent []func(ctx context.Context, event *nostr.Event) error DeleteEvent []func(ctx context.Context, event *nostr.Event) error QueryEvents []func(ctx context.Context, filter nostr.Filter) (chan *nostr.Event, error)