From cc379c52ad0a3379fd20876538a3ffc345500426 Mon Sep 17 00:00:00 2001 From: Bel LaPointe Date: Thu, 13 Jan 2022 17:18:04 -0500 Subject: [PATCH] only mark job as sent if it is sent --- config.json | 6 ++++-- main.go | 23 ++++++++++++----------- todo.yaml | 1 + 3 files changed, 17 insertions(+), 13 deletions(-) diff --git a/config.json b/config.json index 21578c4..97332fd 100644 --- a/config.json +++ b/config.json @@ -22,7 +22,9 @@ }, "Clients": { "bel": { - "States": [], + "States": [ + "NC" + ], "IDs": { "Matrix": "@bel:m.bltrucks.top" }, @@ -56,7 +58,7 @@ "Matrix": { "ReceiveEnabled": true, "Mock": false, - "Continuation": "190", + "Continuation": "210", "Homeserver": "https://m.bltrucks.top", "Username": "@bot.m.bltrucks.top", "Token": "mvDWB96KXMF8XhOam8EC5XVdQvSEw0CDeClcSWocBcYkwZX3FPNWZ5uOnQk2EmT1cjpzfeuD7gDYPPjOuyZlI3bE9TE35UjNOlZgi0Tugm25s91iVsbIF6kMZsCIhVMSmEf6w3jxX6wQYOWvmDZ4mu6f5c8wr221EMDcOpEzQV09d1zuBSWgKLBgjqAkYHJZ5dTRIWpEDpPgujhOFZa2ld1HiAOxrJKlIrlfDBN0CUsTlGOGplujDAr4VtpFzNRS", diff --git a/main.go b/main.go index c857a22..3a8d22b 100644 --- a/main.go +++ b/main.go @@ -278,12 +278,13 @@ func once() error { } log.Printf("once: sending jobs: %+v", jobs) for i := range jobs { - if err := sendJob(jobs[i]); err != nil { - return err - } - log.Println("sent job", jobs[i]) - if err := config.Get().DB().Set(jobs[i].ID, []byte(`sent`)); err != nil { + if ok, err := sendJob(jobs[i]); err != nil { return err + } else if ok { + log.Println("sent job", jobs[i]) + if err := config.Get().DB().Set(jobs[i].ID, []byte(`sent`)); err != nil { + return err + } } } return nil @@ -325,15 +326,15 @@ func dropBanlistJobs(jobs []broker.Job) ([]broker.Job, error) { return jobs, nil } -func sendJob(job broker.Job) error { +func sendJob(job broker.Job) (bool, error) { sender := message.NewMatrix() payload := job.FormatMultilineText() log.Printf("once: send job %s if nonzero: %s", job.String(), payload) if len(payload) == 0 { - return nil + return false, nil } if err := sender.Send(payload); err != nil { - return err + return false, err } maps := config.Get().Maps if maps.Pickup { @@ -341,7 +342,7 @@ func sendJob(job broker.Job) error { uri := fmt.Sprintf(maps.URIFormat, pickup, pickup) log.Printf("sending pickup image: %s", uri) if err := sender.SendImage(uri); err != nil { - return err + return true, err } } if maps.Dropoff { @@ -349,10 +350,10 @@ func sendJob(job broker.Job) error { uri := fmt.Sprintf(maps.URIFormat, dropoff, dropoff) log.Printf("sending dropoff image: %s", uri) if err := sender.SendImage(uri); err != nil { - return err + return true, err } } - return nil + return true, nil } func sendNewStates(client string, states []config.State) error { diff --git a/todo.yaml b/todo.yaml index c03f05b..9ec10f5 100644 --- a/todo.yaml +++ b/todo.yaml @@ -1,4 +1,5 @@ todo: +- write-as for clients so ma can write to pa by default - link to view more - map with to-from line - continuation is garbo, but I can still do better client side to avoid get-set high level