it never ends.

This commit is contained in:
fiatjaf
2025-04-16 02:59:47 -03:00
parent cb0dd45a32
commit 5b8954461f
53 changed files with 396 additions and 673 deletions
+7 -9
View File
@@ -5,8 +5,8 @@ import (
"fmt"
"os"
"github.com/urfave/cli/v3"
"fiatjaf.com/nostr"
"github.com/urfave/cli/v3"
)
var delete_ = &cli.Command{
@@ -17,17 +17,15 @@ var delete_ = &cli.Command{
Action: func(ctx context.Context, c *cli.Command) error {
hasError := false
for line := range getStdinLinesOrFirstArgument(c) {
f := nostr.Filter{IDs: []string{line}}
ch, err := db.QueryEvents(ctx, f)
id, err := nostr.IDFromHex(line)
if err != nil {
fmt.Fprintf(os.Stderr, "error querying for %s: %s\n", f, err)
fmt.Fprintf(os.Stderr, "invalid id '%s': %s\n", line, err)
hasError = true
}
for evt := range ch {
if err := db.DeleteEvent(ctx, evt); err != nil {
fmt.Fprintf(os.Stderr, "error deleting %s: %s\n", evt, err)
hasError = true
}
if err := db.DeleteEvent(id); err != nil {
fmt.Fprintf(os.Stderr, "error deleting '%s': %s\n", id.Hex(), err)
hasError = true
}
}
+1 -1
View File
@@ -96,7 +96,7 @@ var app = &cli.Command{
if err := json.Unmarshal(scanner.Bytes(), &evt); err != nil {
log.Printf("invalid event read at line %d: %s (`%s`)\n", i, err, scanner.Text())
}
db.SaveEvent(ctx, &evt)
db.SaveEvent(evt)
i++
}
}()
+11 -18
View File
@@ -6,8 +6,8 @@ import (
"fmt"
"os"
"github.com/urfave/cli/v3"
"fiatjaf.com/nostr"
"github.com/urfave/cli/v3"
)
// this is the default command when no subcommands are given, we will just try everything
@@ -21,16 +21,14 @@ var queryOrSave = &cli.Command{
re := &nostr.ReqEnvelope{}
e := &nostr.Event{}
f := &nostr.Filter{}
if json.Unmarshal([]byte(line), ee) == nil && ee.Event.ID != "" {
e = &ee.Event
return doSave(ctx, line, e)
if json.Unmarshal([]byte(line), ee) == nil && ee.Event.ID != nostr.ZeroID {
return doSave(ctx, line, ee.Event)
}
if json.Unmarshal([]byte(line), e) == nil && e.ID != "" {
return doSave(ctx, line, e)
if json.Unmarshal([]byte(line), e) == nil && e.ID != nostr.ZeroID {
return doSave(ctx, line, *e)
}
if json.Unmarshal([]byte(line), re) == nil && len(re.Filters) > 0 {
f = &re.Filters[0]
return doQuery(ctx, f)
if json.Unmarshal([]byte(line), re) == nil {
return doQuery(ctx, &re.Filter)
}
if json.Unmarshal([]byte(line), f) == nil && len(f.String()) > 2 {
return doQuery(ctx, f)
@@ -40,21 +38,16 @@ var queryOrSave = &cli.Command{
},
}
func doSave(ctx context.Context, line string, e *nostr.Event) error {
if err := db.SaveEvent(ctx, e); err != nil {
func doSave(ctx context.Context, line string, evt nostr.Event) error {
if err := db.SaveEvent(evt); err != nil {
return fmt.Errorf("failed to save event '%s': %s", line, err)
}
fmt.Fprintf(os.Stderr, "saved %s", e.ID)
fmt.Fprintf(os.Stderr, "saved %s", evt.ID)
return nil
}
func doQuery(ctx context.Context, f *nostr.Filter) error {
ch, err := db.QueryEvents(ctx, *f)
if err != nil {
return fmt.Errorf("error querying: %w", err)
}
for evt := range ch {
for evt := range db.QueryEvents(*f) {
fmt.Println(evt)
}
return nil