26 lines
384 B
Go
26 lines
384 B
Go
package grasp
|
|
|
|
import (
|
|
"net/url"
|
|
"strings"
|
|
|
|
"fiatjaf.com/nostr/nip19"
|
|
)
|
|
|
|
func IsGraspURL(u string) bool {
|
|
parsed, err := url.Parse(u)
|
|
if err != nil {
|
|
return false
|
|
}
|
|
|
|
if strings.Count(parsed.Path, "/") != 2 || len(parsed.Path) < 65 {
|
|
return false
|
|
}
|
|
|
|
if prefix, _, err := nip19.Decode(parsed.Path[1:64]); err != nil || prefix != "npub" {
|
|
return false
|
|
}
|
|
|
|
return true
|
|
}
|