diff --git a/broker/job.go b/broker/job.go index 7e050cc..76d08d4 100644 --- a/broker/job.go +++ b/broker/job.go @@ -53,7 +53,7 @@ func (j Job) FormatMultilineText() string { ) } out := "" - clients := config.Clients() + clients := config.Clients(j.Pickup.Date) 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) { diff --git a/config.json b/config.json index 80a36a4..cdd2a4d 100644 --- a/config.json +++ b/config.json @@ -29,7 +29,7 @@ "IDs": { "Matrix": "@belandbroc:matrix.org" }, - "PauseUntil": 5642107200 + "Available": 5642107200 }, "caleb": { "States": [ @@ -38,7 +38,7 @@ "IDs": { "Matrix": "@belandbroc:matrix.org" }, - "PauseUntil": -62135596800 + "Available": -62135596800 }, "pa": { "States": [ @@ -47,7 +47,7 @@ "IDs": { "Matrix": "@belandbroc:matrix.org" }, - "PauseUntil": -62135596800 + "Available": -62135596800 } }, "Storage": [ diff --git a/config/config.go b/config/config.go index 38298c2..98636a1 100644 --- a/config/config.go +++ b/config/config.go @@ -63,7 +63,7 @@ type Client struct { IDs struct { Matrix string } - PauseUntil Time + Available Time } var live Config @@ -76,11 +76,11 @@ func configPath() string { return p } -func Clients() map[string]Client { +func Clients(t time.Time) map[string]Client { clients := Get().Clients result := map[string]Client{} for k := range clients { - if clients[k].PauseUntil.Get().IsZero() || time.Now().After(clients[k].PauseUntil.Get()) { + if clients[k].Available.Get().IsZero() || t.After(clients[k].Available.Get()) { result[k] = clients[k] } } @@ -89,7 +89,7 @@ func Clients() map[string]Client { func AllStates() []State { statem := map[State]struct{}{} - for _, v := range Clients() { + for _, v := range Clients(time.Now().Add(time.Hour * 24 * 365)) { for _, state := range v.States { statem[state] = struct{}{} } diff --git a/main.go b/main.go index dfa296a..7498534 100644 --- a/main.go +++ b/main.go @@ -77,12 +77,12 @@ func matrixrecv() error { if _, ok := pauses[msg.Sender]; ok { continue } - if !strings.HasPrefix(msg.Content, "pause until") { + if !strings.HasPrefix(msg.Content, "!available ") { continue } t, err := time.ParseInLocation( "2006-01-02", - strings.TrimSpace(strings.TrimPrefix(msg.Content, "pause until")), + strings.TrimSpace(strings.TrimPrefix(msg.Content, "!available ")), time.Local, ) if err == nil { @@ -103,10 +103,10 @@ func setNewPauses(pauses map[string]time.Time) { changed := map[string]time.Time{} for client, pause := range pauses { clientconf := conf.Clients[client] - if clientconf.PauseUntil.Get().Unix() == pause.Unix() { + if clientconf.Available.Get().Unix() == pause.Unix() { continue } - clientconf.PauseUntil = config.Time(pause) + clientconf.Available = config.Time(pause) conf.Clients[client] = clientconf changed[client] = pause } diff --git a/message/matrix.go b/message/matrix.go index 63f7dcf..841e492 100644 --- a/message/matrix.go +++ b/message/matrix.go @@ -43,7 +43,7 @@ func (m Matrix) Receive() ([]Message, error) { for k := range config.Get().Clients { messages = append(messages, Message{Sender: k, Content: "OH"}) if k == "broc" { - messages = append(messages, Message{Sender: k, Content: "pause until 2148-10-" + fmt.Sprint(time.Now().Unix()%28)}) + messages = append(messages, Message{Sender: k, Content: "!available 2148-10-" + fmt.Sprint(time.Now().Unix()%28)}) } } return messages, nil