Add WhenDayOfWeek()

This commit is contained in:
Ian Gulliver
2022-09-24 21:24:14 +00:00
parent 29c0db7aca
commit 5ae9c89b07
2 changed files with 57 additions and 0 deletions

View File

@@ -26,6 +26,31 @@ type periodic struct {
taskActors []taskActor
}
type Weekday = time.Weekday
const (
Sunday = time.Sunday
Monday = time.Monday
Tuesday = time.Tuesday
Wednesday = time.Wednesday
Thursday = time.Thursday
Friday = time.Friday
Saturday = time.Saturday
)
var WeekDays = []Weekday{
Monday,
Tuesday,
Wednesday,
Thursday,
Friday,
}
var WeekendDays = []Weekday{
Saturday,
Sunday,
}
var periodics = []*periodic{}
func Loop() {
@@ -84,6 +109,27 @@ func (p *periodic) WhenBetween(tz, start, end string) *periodic {
return p
}
func (p *periodic) WhenDayOfWeek(tz string, days []Weekday) *periodic {
p.gates = append(p.gates, func(wc *client.WorkspaceClient) (bool, error) {
loc, err := time.LoadLocation(tz)
if err != nil {
return false, err
}
wd := time.Now().In(loc).Weekday()
for _, d := range days {
if wd == d {
return true, nil
}
}
return false, nil
})
return p
}
// Query mutators
func (p *periodic) InMyTasksSections(names ...string) *periodic {
p.queryMutators = append(p.queryMutators, func(wc *client.WorkspaceClient, q *client.SearchQuery) error {