multi-client but one ntg search, nontrivial config.json change
This commit is contained in:
@@ -1,6 +1,12 @@
|
||||
package broker
|
||||
|
||||
import "local/truckstop/config"
|
||||
import (
|
||||
"local/truckstop/config"
|
||||
|
||||
"golang.org/x/time/rate"
|
||||
)
|
||||
|
||||
var limiter = rate.NewLimiter(rate.Limit(0.3), 1)
|
||||
|
||||
type Broker interface {
|
||||
Search([]config.State) ([]Job, error)
|
||||
|
||||
@@ -3,6 +3,8 @@ package broker
|
||||
import (
|
||||
"fmt"
|
||||
"local/truckstop/config"
|
||||
"log"
|
||||
"strings"
|
||||
"time"
|
||||
)
|
||||
|
||||
@@ -37,15 +39,29 @@ func (j JobLocation) String() string {
|
||||
}
|
||||
|
||||
func (j Job) FormatMultilineText() string {
|
||||
return fmt.Sprintf(
|
||||
"--- %s: %s => %s ---\nPickup: %s\nDropoff: %s\nNotes: %d lbs, %d miles, %s",
|
||||
config.Get().Name,
|
||||
j.Pickup.State,
|
||||
j.Dropoff.State,
|
||||
j.Pickup.String(),
|
||||
j.Dropoff.String(),
|
||||
j.Weight,
|
||||
j.Miles,
|
||||
j.Meta,
|
||||
)
|
||||
foo := func(client string) string {
|
||||
return fmt.Sprintf(
|
||||
"--- %s: %s => %s ---\nPickup: %s\nDropoff: %s\nNotes: %d lbs, %d miles, %s",
|
||||
client,
|
||||
j.Pickup.State,
|
||||
j.Dropoff.State,
|
||||
j.Pickup.String(),
|
||||
j.Dropoff.String(),
|
||||
j.Weight,
|
||||
j.Miles,
|
||||
j.Meta,
|
||||
)
|
||||
}
|
||||
out := ""
|
||||
clients := config.Get().Clients
|
||||
for k := range clients {
|
||||
log.Printf("job multiline: %+v contains %s then use %v", clients[k].States, j.Pickup.State, k)
|
||||
if strings.Contains(fmt.Sprint(clients[k].States), j.Pickup.State) {
|
||||
if len(out) > 0 {
|
||||
out += "\n\n"
|
||||
}
|
||||
out += foo(k)
|
||||
}
|
||||
}
|
||||
return out
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user