mirror of
https://github.com/fiatjaf/nak.git
synced 2024-10-30 09:09:08 -04:00
fetch with optional --relay flags.
This commit is contained in:
parent
757a6eb313
commit
ffa41046fd
20
encode.go
20
encode.go
|
@ -3,7 +3,6 @@ package main
|
||||||
import (
|
import (
|
||||||
"encoding/hex"
|
"encoding/hex"
|
||||||
"fmt"
|
"fmt"
|
||||||
"net/url"
|
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/nbd-wtf/go-nostr/nip19"
|
"github.com/nbd-wtf/go-nostr/nip19"
|
||||||
|
@ -220,22 +219,3 @@ func validate32BytesHex(target string) error {
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func validateRelayURLs(wsurls []string) error {
|
|
||||||
for _, wsurl := range wsurls {
|
|
||||||
u, err := url.Parse(wsurl)
|
|
||||||
if err != nil {
|
|
||||||
return fmt.Errorf("invalid relay url '%s': %s", wsurl, err)
|
|
||||||
}
|
|
||||||
|
|
||||||
if u.Scheme != "ws" && u.Scheme != "wss" {
|
|
||||||
return fmt.Errorf("relay url must use wss:// or ws:// schemes, got '%s'", wsurl)
|
|
||||||
}
|
|
||||||
|
|
||||||
if u.Host == "" {
|
|
||||||
return fmt.Errorf("relay url '%s' is missing the hostname", wsurl)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
17
fetch.go
17
fetch.go
|
@ -12,8 +12,16 @@ import (
|
||||||
var fetch = &cli.Command{
|
var fetch = &cli.Command{
|
||||||
Name: "fetch",
|
Name: "fetch",
|
||||||
Usage: "fetches events related to the given nip19 code from the included relay hints",
|
Usage: "fetches events related to the given nip19 code from the included relay hints",
|
||||||
Description: ``,
|
Description: `example usage:
|
||||||
Flags: []cli.Flag{},
|
nak fetch nevent1qqsxrwm0hd3s3fddh4jc2574z3xzufq6qwuyz2rvv3n087zvym3dpaqprpmhxue69uhhqatzd35kxtnjv4kxz7tfdenju6t0xpnej4
|
||||||
|
echo npub1h8spmtw9m2huyv6v2j2qd5zv956z2zdugl6mgx02f2upffwpm3nqv0j4ps | nak fetch --relay wss://relay.nostr.band`,
|
||||||
|
Flags: []cli.Flag{
|
||||||
|
&cli.StringSliceFlag{
|
||||||
|
Name: "relay",
|
||||||
|
Aliases: []string{"r"},
|
||||||
|
Usage: "also use these relays to fetch from",
|
||||||
|
},
|
||||||
|
},
|
||||||
ArgsUsage: "[nip19code]",
|
ArgsUsage: "[nip19code]",
|
||||||
Action: func(c *cli.Context) error {
|
Action: func(c *cli.Context) error {
|
||||||
filter := nostr.Filter{}
|
filter := nostr.Filter{}
|
||||||
|
@ -24,7 +32,10 @@ var fetch = &cli.Command{
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
var relays []string
|
relays := c.StringSlice("relay")
|
||||||
|
if err := validateRelayURLs(relays); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
var authorHint string
|
var authorHint string
|
||||||
|
|
||||||
switch prefix {
|
switch prefix {
|
||||||
|
|
21
helpers.go
21
helpers.go
|
@ -2,7 +2,9 @@ package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
|
"fmt"
|
||||||
"io"
|
"io"
|
||||||
|
"net/url"
|
||||||
"os"
|
"os"
|
||||||
|
|
||||||
"github.com/urfave/cli/v2"
|
"github.com/urfave/cli/v2"
|
||||||
|
@ -27,3 +29,22 @@ func getStdinOrFirstArgument(c *cli.Context) string {
|
||||||
}
|
}
|
||||||
return getStdin()
|
return getStdin()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func validateRelayURLs(wsurls []string) error {
|
||||||
|
for _, wsurl := range wsurls {
|
||||||
|
u, err := url.Parse(wsurl)
|
||||||
|
if err != nil {
|
||||||
|
return fmt.Errorf("invalid relay url '%s': %s", wsurl, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if u.Scheme != "ws" && u.Scheme != "wss" {
|
||||||
|
return fmt.Errorf("relay url must use wss:// or ws:// schemes, got '%s'", wsurl)
|
||||||
|
}
|
||||||
|
|
||||||
|
if u.Host == "" {
|
||||||
|
return fmt.Errorf("relay url '%s' is missing the hostname", wsurl)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user