From ea15550039d8f07f2e60d74efa10008ffaf3024c Mon Sep 17 00:00:00 2001 From: fiatjaf Date: Sat, 26 Nov 2022 19:32:16 -0300 Subject: [PATCH] kind-0 metadata helper type. --- metadata.go | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 metadata.go diff --git a/metadata.go b/metadata.go new file mode 100644 index 0000000..f2b18f6 --- /dev/null +++ b/metadata.go @@ -0,0 +1,31 @@ +package nostr + +import ( + "encoding/json" + "fmt" +) + +type ProfileMetadata struct { + Name string `json:"name"` + About string `json:"about"` + Picture string `json:"picture"` + NIP05 string `json:"nip05"` +} + +func ParseMetadata(event Event) (*ProfileMetadata, error) { + if event.Kind != 0 { + return nil, fmt.Errorf("event %s is kind %d, not 0", event.ID, event.Kind) + } + + var meta ProfileMetadata + err := json.Unmarshal([]byte(event.Content), &meta) + if err != nil { + cont := event.Content + if len(cont) > 100 { + cont = cont[0:99] + } + return nil, fmt.Errorf("failed to parse metadata (%s) from event %s: %w", cont, event.ID, err) + } + + return &meta, nil +}