package nostr import ( "encoding/json" "fmt" ) type ProfileMetadata struct { Name string `json:"name,omitempty"` DisplayName string `json:"display_name,omitempty"` About string `json:"about,omitempty"` Website string `json:"website,omitempty"` Picture string `json:"picture,omitempty"` Banner string `json:"banner,omitempty"` NIP05 string `json:"nip05,omitempty"` LUD16 string `json:"lud16,omitempty"` } 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 if err := json.Unmarshal([]byte(event.Content), &meta); 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 }