Files
nostrlib/nip65/nip65.go
2025-09-26 09:41:25 -03:00

34 lines
770 B
Go

package nip65
import "fiatjaf.com/nostr"
// ParseRelayList parses a NIP-65 relay list event (kind 10002) and returns
// separate lists of read and write relays based on the "r" tags.
func ParseRelayList(event nostr.Event) (readRelays []string, writeRelays []string) {
for tag := range event.Tags.FindAll("r") {
if len(tag) < 2 {
continue
}
relayURL := tag[1]
if !nostr.IsValidRelayURL(relayURL) {
continue
}
normalizedURL := nostr.NormalizeURL(relayURL)
var marker string
if len(tag) > 2 {
marker = tag[2]
}
if marker == "" || marker == "read" {
readRelays = append(readRelays, normalizedURL)
}
if marker == "" || marker == "write" {
writeRelays = append(writeRelays, normalizedURL)
}
}
return readRelays, writeRelays
}