From 0c39530d575ce0270ed434f867230a506372e7e8 Mon Sep 17 00:00:00 2001 From: fiatjaf Date: Sat, 26 Nov 2022 19:32:03 -0300 Subject: [PATCH] QuerySync() relay method. --- relay.go | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/relay.go b/relay.go index c8154af..f98d246 100644 --- a/relay.go +++ b/relay.go @@ -222,6 +222,21 @@ func (r *Relay) Subscribe(filters Filters) *Subscription { return sub } +func (r *Relay) QuerySync(filter Filter, timeout time.Duration) []Event { + sub := r.Subscribe(Filters{filter}) + var events []Event + for { + select { + case evt := <-sub.Events: + events = append(events, evt) + case <-sub.EndOfStoredEvents: + return events + case <-time.After(timeout): + return events + } + } +} + func (r *Relay) PrepareSubscription() *Subscription { random := make([]byte, 7) rand.Read(random)