only mark job as sent if it is sent

This commit is contained in:
Bel LaPointe
2022-01-13 17:18:04 -05:00
parent 2a93e52b0b
commit cc379c52ad
3 changed files with 17 additions and 13 deletions

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 {