Add WhenDayOfWeek()
This commit is contained in:
11
main.go
11
main.go
@@ -14,6 +14,7 @@ func main() {
|
||||
InWorkspace("flamingcow.io").
|
||||
InMyTasksSections("Recently Assigned", "Today", "Meetings", "Maybe Today", "Upcoming", "Later", "Someday").
|
||||
WhenBetween("America/Los_Angeles", "03:00:00", "17:00:00").
|
||||
WhenDayOfWeek("America/Los_Angeles", WeekDays).
|
||||
OnlyIncomplete().
|
||||
DueInDays(0).
|
||||
WithTagsAnyOf("section=Tonight").
|
||||
@@ -23,6 +24,16 @@ func main() {
|
||||
InWorkspace("flamingcow.io").
|
||||
InMyTasksSections("Recently Assigned", "Meetings", "Maybe Today", "Tonight", "Upcoming", "Later", "Someday").
|
||||
WhenBetween("America/Los_Angeles", "17:00:00", "03:00:00").
|
||||
WhenDayOfWeek("America/Los_Angeles", WeekDays).
|
||||
OnlyIncomplete().
|
||||
DueInDays(0).
|
||||
WithTagsAnyOf("section=Tonight").
|
||||
PrintTasks().
|
||||
MoveToMyTasksSection("Today")
|
||||
|
||||
InWorkspace("flamingcow.io").
|
||||
InMyTasksSections("Recently Assigned", "Meetings", "Maybe Today", "Tonight", "Upcoming", "Later", "Someday").
|
||||
WhenDayOfWeek("America/Los_Angeles", WeekendDays).
|
||||
OnlyIncomplete().
|
||||
DueInDays(0).
|
||||
WithTagsAnyOf("section=Tonight").
|
||||
|
||||
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user