38 lines
616 B
Go
38 lines
616 B
Go
package nostr
|
|
|
|
import (
|
|
"cmp"
|
|
"encoding/hex"
|
|
"net/url"
|
|
"strings"
|
|
)
|
|
|
|
func IsValidRelayURL(u string) bool {
|
|
parsed, err := url.Parse(u)
|
|
if err != nil {
|
|
return false
|
|
}
|
|
if parsed.Scheme != "wss" && parsed.Scheme != "ws" {
|
|
return false
|
|
}
|
|
return true
|
|
}
|
|
|
|
func IsValid32ByteHex(thing string) bool {
|
|
if strings.ToLower(thing) != thing {
|
|
return false
|
|
}
|
|
if len(thing) != 64 {
|
|
return false
|
|
}
|
|
_, err := hex.DecodeString(thing)
|
|
return err == nil
|
|
}
|
|
|
|
func CompareEvent(a, b Event) int {
|
|
if a.CreatedAt == b.CreatedAt {
|
|
return strings.Compare(a.ID, b.ID)
|
|
}
|
|
return cmp.Compare(a.CreatedAt, b.CreatedAt)
|
|
}
|