From 5847335506debbb4ff1674820dd36a389d1f78e9 Mon Sep 17 00:00:00 2001 From: fiatjaf Date: Tue, 31 Oct 2023 15:22:55 -0300 Subject: [PATCH] sdk: return store event along with ProfileMetadata. --- sdk/metadata.go | 2 ++ sdk/system.go | 11 ++++++++--- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/sdk/metadata.go b/sdk/metadata.go index bbd0d56..3f7c4e0 100644 --- a/sdk/metadata.go +++ b/sdk/metadata.go @@ -11,6 +11,7 @@ import ( type ProfileMetadata struct { pubkey string + event *nostr.Event Name string `json:"name,omitempty"` DisplayName string `json:"display_name,omitempty"` @@ -47,6 +48,7 @@ func FetchProfileMetadata(ctx context.Context, pool *nostr.SimplePool, pubkey st for ie := range ch { if m, err := ParseMetadata(ie.Event); err == nil { m.pubkey = pubkey + m.event = ie.Event return *m } } diff --git a/sdk/system.go b/sdk/system.go index 12bfa48..60d4181 100644 --- a/sdk/system.go +++ b/sdk/system.go @@ -46,9 +46,14 @@ func (sys System) FetchProfileMetadata(ctx context.Context, pubkey string) Profi return v } - ctx, cancel := context.WithTimeout(ctx, time.Second*5) - defer cancel() - res := FetchProfileMetadata(ctx, sys.Pool, pubkey, sys.MetadataRelays...) + ctxRelays, cancel := context.WithTimeout(ctx, time.Second*2) + relays := sys.FetchOutboxRelays(ctxRelays, pubkey) + cancel() + + ctx, cancel = context.WithTimeout(ctx, time.Second*3) + res := FetchProfileMetadata(ctx, sys.Pool, pubkey, append(relays, sys.MetadataRelays...)...) + cancel() + sys.MetadataCache.SetWithTTL(pubkey, res, time.Hour*6) return res }