mirror of
https://github.com/nbd-wtf/go-nostr.git
synced 2025-03-17 13:22:56 +01:00
validate and normalize relay urls received from kind 3 and 10002.
This commit is contained in:
parent
82a51f149a
commit
c0c20b8401
@ -56,6 +56,11 @@ func ParseRelaysFromKind10002(evt *nostr.Event) []Relay {
|
||||
result := make([]Relay, 0, len(evt.Tags))
|
||||
for _, tag := range evt.Tags {
|
||||
if u := tag.Value(); u != "" && tag[0] == "r" {
|
||||
if !nostr.IsValidRelayURL(u) {
|
||||
continue
|
||||
}
|
||||
u := nostr.NormalizeURL(u)
|
||||
|
||||
relay := Relay{
|
||||
URL: u,
|
||||
}
|
||||
@ -88,6 +93,11 @@ func ParseRelaysFromKind3(evt *nostr.Event) []Relay {
|
||||
results := make([]Relay, len(items))
|
||||
i := 0
|
||||
for u, item := range items {
|
||||
if !nostr.IsValidRelayURL(u) {
|
||||
continue
|
||||
}
|
||||
u := nostr.NormalizeURL(u)
|
||||
|
||||
relay := Relay{
|
||||
URL: u,
|
||||
}
|
||||
|
15
utils.go
15
utils.go
@ -1,6 +1,7 @@
|
||||
package nostr
|
||||
|
||||
import (
|
||||
"net/url"
|
||||
"strings"
|
||||
|
||||
"golang.org/x/exp/constraints"
|
||||
@ -129,3 +130,17 @@ func InsertEventIntoDescendingList(sortedArray []*Event, event *Event) []*Event
|
||||
|
||||
return sortedArray
|
||||
}
|
||||
|
||||
func IsValidRelayURL(u string) bool {
|
||||
parsed, err := url.Parse(u)
|
||||
if err != nil {
|
||||
return false
|
||||
}
|
||||
if parsed.Scheme != "wss" && parsed.Scheme != "ws" {
|
||||
return false
|
||||
}
|
||||
if len(strings.Split(parsed.Host, ".")) < 2 {
|
||||
return false
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user