only mark job as sent if it is sent

master v0.1.2
Bel LaPointe 2022-01-13 17:18:04 -05:00
parent 2a93e52b0b
commit cc379c52ad
3 changed files with 17 additions and 13 deletions

View File

@ -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",

23
main.go
View File

@ -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 {

View File

@ -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