much more colors everywhere and everything is prettier.

This commit is contained in:
fiatjaf
2025-04-03 14:50:25 -03:00
parent 7ae2e686cb
commit 703c186958
11 changed files with 207 additions and 118 deletions

36
req.go
View File

@@ -9,7 +9,6 @@ import (
"github.com/fatih/color"
"github.com/mailru/easyjson"
"github.com/nbd-wtf/go-nostr"
"github.com/nbd-wtf/go-nostr/nip19"
"github.com/nbd-wtf/go-nostr/nip77"
"github.com/urfave/cli/v3"
)
@@ -79,44 +78,21 @@ example:
relayUrls := c.Args().Slice()
if len(relayUrls) > 0 {
// this is used both for the normal AUTH (after "auth-required:" is received) or forced pre-auth
authSigner := func(ctx context.Context, log func(s string, args ...any), authEvent nostr.RelayEvent) (err error) {
defer func() {
if err != nil {
log("%s failed: %s",
authEvent.Tags.Find("relay")[1],
err,
)
}
}()
if !c.Bool("auth") && !c.Bool("force-pre-auth") {
return fmt.Errorf("auth required, but --auth flag not given")
}
kr, _, err := gatherKeyerFromArguments(ctx, c)
if err != nil {
return err
}
pk, _ := kr.GetPublicKey(ctx)
npub, _ := nip19.EncodePublicKey(pk)
log("authenticating as %s... ", color.YellowString("%s…%s", npub[0:7], npub[58:]))
return kr.SignEvent(ctx, authEvent.Event)
}
// connect to all relays we expect to use in this call in parallel
forcePreAuthSigner := authSigner
if !c.Bool("force-pre-auth") {
forcePreAuthSigner = nil
}
relays := connectToAllRelays(ctx,
relays := connectToAllRelays(
ctx,
c,
relayUrls,
forcePreAuthSigner,
nostr.WithAuthHandler(func(ctx context.Context, authEvent nostr.RelayEvent) error {
return authSigner(ctx, func(s string, args ...any) {
return authSigner(ctx, c, func(s string, args ...any) {
if strings.HasPrefix(s, "authenticating as") {
url := authEvent.Tags.Find("relay")[1]
s = "authenticating to " + color.CyanString(url) + " as" + s[len("authenticating as"):]
cleanUrl, _ := strings.CutPrefix(authEvent.Relay.URL, "wss://")
s = "authenticating to " + color.CyanString(cleanUrl) + " as" + s[len("authenticating as"):]
}
log(s+"\n", args...)
}, authEvent)