diff --git a/main.go b/main.go index 56c8192..e701dea 100644 --- a/main.go +++ b/main.go @@ -18,6 +18,7 @@ var app = &cli.App{ decode, encode, verify, + relay, }, Flags: []cli.Flag{ &cli.BoolFlag{ diff --git a/relay.go b/relay.go new file mode 100644 index 0000000..11d3a65 --- /dev/null +++ b/relay.go @@ -0,0 +1,38 @@ +package main + +import ( + "encoding/json" + "fmt" + "strings" + + "github.com/nbd-wtf/go-nostr/nip11" + "github.com/urfave/cli/v2" +) + +var relay = &cli.Command{ + Name: "relay", + Usage: "gets the relay information document for the given relay, as JSON", + Description: `example: + nak relay nostr.wine +`, + ArgsUsage: "", + Action: func(c *cli.Context) error { + url := c.Args().First() + if url == "" { + return fmt.Errorf("specify the ") + } + + if !strings.HasPrefix(url, "wss://") && !strings.HasPrefix(url, "ws://") { + url = "wss://" + url + } + + info, err := nip11.Fetch(c.Context, url) + if err != nil { + return fmt.Errorf("failed to fetch '%s' information document: %w", url, err) + } + + pretty, _ := json.MarshalIndent(info, "", " ") + fmt.Println(string(pretty)) + return nil + }, +}