to internal logger for levels, all encompassing path

This commit is contained in:
bel
2022-01-17 18:16:23 -07:00
parent e660f2ef9f
commit 73ccc22fd5
9 changed files with 179 additions and 55 deletions

64
main.go
View File

@@ -7,8 +7,8 @@ import (
"local/storage"
"local/truckstop/broker"
"local/truckstop/config"
"local/truckstop/logtr"
"local/truckstop/message"
"log"
"net/http"
"net/url"
"regexp"
@@ -34,12 +34,12 @@ func main() {
for {
time.Sleep(config.Get().Interval.Input.Get())
if err := config.Refresh(); err != nil {
log.Println(err)
logtr.Errorf("failed parsing config: %v", err)
} else {
if config.Get().Message.Matrix.ReceiveEnabled {
lock.Lock()
if err := matrixrecv(); err != nil {
log.Print(err)
logtr.Errorf("failed receiving and parsing matrix: %v", err)
}
lock.Unlock()
}
@@ -53,15 +53,15 @@ func main() {
}
func matrixrecv() error {
log.Printf("checking matrix...")
defer log.Printf("/checking matrix...")
logtr.Debugf("checking matrix...")
defer logtr.Debugf("/checking matrix...")
sender := message.NewMatrix()
messages, err := sender.Receive()
if err != nil {
return err
}
func() {
log.Printf("looking for help")
logtr.Debugf("looking for help")
printed := false
for _, msg := range messages {
if !strings.HasPrefix(msg.Content, "!help") {
@@ -71,26 +71,26 @@ func matrixrecv() error {
db := config.Get().DB()
if !printed {
if _, err := db.Get(key); err == storage.ErrNotFound {
log.Printf("sending help")
logtr.Debugf("sending help")
help := fmt.Sprintf("commands:\n...`!help` print this help\n...`!state nc NC nC Nc` set states for self\n...`!available 2022-12-31` set date self is available for work\n\nrun a command for someone else: `!state ga @caleb`")
if err := sender.Send(help); err != nil {
log.Printf("failed to send help: %v", err)
logtr.Errorf("failed to send help: %v", err)
} else {
printed = true
if err := db.Set(key, []byte{'k'}); err != nil {
log.Printf("failed to mark help given @%s: %v", key, err)
logtr.Errorf("failed to mark help given @%s: %v", key, err)
}
}
}
} else {
if err := db.Set(key, []byte{'k'}); err != nil {
log.Printf("failed to mark help given @%s: %v", key, err)
logtr.Errorf("failed to mark help given @%s: %v", key, err)
}
}
}
}()
func() {
log.Printf("looking for states")
logtr.Debugf("looking for states")
db := config.Get().DB()
states := map[string]map[config.State]struct{}{}
for _, msg := range messages {
@@ -108,13 +108,13 @@ func matrixrecv() error {
}
}
if err := db.Set(key, []byte{'k'}); err != nil {
log.Printf("failed to mark state gathered @%s: %v", key, err)
logtr.Errorf("failed to mark state gathered @%s: %v", key, err)
}
}
setNewStates(states)
}()
func() {
log.Printf("looking for pauses")
logtr.Debugf("looking for pauses")
db := config.Get().DB()
pauses := map[string]time.Time{}
for _, msg := range messages {
@@ -136,7 +136,7 @@ func matrixrecv() error {
}
}
if err := db.Set(key, []byte{'k'}); err != nil {
log.Printf("failed to mark state gathered @%s: %v", key, err)
logtr.Errorf("failed to mark state gathered @%s: %v", key, err)
}
}
setNewPauses(pauses)
@@ -149,7 +149,7 @@ func setNewPauses(pauses map[string]time.Time) {
if len(pauses) == 0 {
return
}
log.Printf("set new pauses: %+v", pauses)
logtr.Debugf("set new pauses: %+v", pauses)
conf := *config.Get()
changed := map[string]time.Time{}
for client, pause := range pauses {
@@ -164,11 +164,11 @@ func setNewPauses(pauses map[string]time.Time) {
if len(changed) == 0 {
return
}
log.Printf("updating config new pauses: %+v", conf)
logtr.Infof("updating config new pauses: %+v", conf)
config.Set(conf)
for client, pause := range changed {
if err := sendNewPause(client, pause); err != nil {
log.Printf("failed to send new pause %s/%+v: %v", client, pause, err)
logtr.Errorf("failed to send new pause %s/%+v: %v", client, pause, err)
}
}
}
@@ -199,11 +199,11 @@ func setNewStates(states map[string]map[config.State]struct{}) {
if len(changed) == 0 {
return
}
log.Printf("updating config new states: %+v", conf)
logtr.Infof("updating config new states: %+v", conf)
config.Set(conf)
for client, states := range changed {
if err := sendNewStates(client, states); err != nil {
log.Printf("failed to send new states %s/%+v: %v", client, states, err)
logtr.Errorf("failed to send new states %s/%+v: %v", client, states, err)
}
}
}
@@ -230,7 +230,7 @@ func _main() error {
for {
err := _mainOne()
if err != nil {
log.Println(err)
logtr.Errorf("failed _main: %v", err)
}
if config.Get().Once {
time.Sleep(time.Second)
@@ -246,15 +246,15 @@ func _main() error {
}
func _mainOne() error {
log.Println("config.refreshing...")
logtr.Debugf("config.refreshing...")
if err := config.Refresh(); err != nil {
return err
}
log.Println("once...")
logtr.Debugf("once...")
if err := once(); err != nil {
return err
}
log.Println("/_mainOne")
logtr.Debugf("/_mainOne")
return nil
}
@@ -263,26 +263,26 @@ func once() error {
if err != nil {
return err
}
log.Printf("once: all jobs: %+v", alljobs)
logtr.Debugf("once: all jobs: %+v", alljobs)
newjobs, err := dropStaleJobs(alljobs)
if err != nil {
return err
}
log.Printf("once: new jobs: %+v", newjobs)
logtr.Debugf("once: new jobs: %+v", newjobs)
jobs, err := dropBanlistJobs(newjobs)
if err != nil {
return err
}
log.Printf("once: loading job secrets: %+v", jobs)
logtr.Debugf("once: loading job secrets: %+v", jobs)
for i := range jobs {
jobs[i].Secrets()
}
log.Printf("once: sending jobs: %+v", jobs)
logtr.Infof("once: sending jobs: %+v", jobs)
for i := range jobs {
if ok, err := sendJob(jobs[i]); err != nil {
return err
} else if ok {
log.Println("sent job", jobs[i])
logtr.Debugf("sent job", jobs[i])
if err := config.Get().DB().Set(jobs[i].ID, []byte(`sent`)); err != nil {
return err
}
@@ -327,7 +327,7 @@ func dropBanlistJobs(jobs []broker.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)
logtr.Debugf("once: send job %s if nonzero: %s", job.String(), payload)
if len(payload) == 0 {
return false, nil
}
@@ -390,7 +390,7 @@ func sendJob(job broker.Job) (bool, error) {
if maxLat-minLat <= maps.Pathed.Zoom.AcceptableLatLngDelta && maxLng-minLng <= maps.Pathed.Zoom.AcceptableLatLngDelta {
uri = fmt.Sprintf("%s&zoom=%d", uri, maps.Pathed.Zoom.Override)
}
log.Printf("sending pathed image: %s", uri)
logtr.Debugf("sending pathed image: %s", uri)
if err := sender.SendImage(uri); err != nil {
return true, err
}
@@ -398,14 +398,14 @@ func sendJob(job broker.Job) (bool, error) {
}
if maps.Pickup {
uri := fmt.Sprintf(maps.URIFormat, pickup, pickup)
log.Printf("sending pickup image: %s", uri)
logtr.Debugf("sending pickup image: %s", uri)
if err := sender.SendImage(uri); err != nil {
return true, err
}
}
if maps.Dropoff {
uri := fmt.Sprintf(maps.URIFormat, dropoff, dropoff)
log.Printf("sending dropoff image: %s", uri)
logtr.Debugf("sending dropoff image: %s", uri)
if err := sender.SendImage(uri); err != nil {
return true, err
}