Add WhenDayOfWeek()
This commit is contained in:
11
main.go
11
main.go
@@ -14,6 +14,7 @@ func main() {
|
|||||||
InWorkspace("flamingcow.io").
|
InWorkspace("flamingcow.io").
|
||||||
InMyTasksSections("Recently Assigned", "Today", "Meetings", "Maybe Today", "Upcoming", "Later", "Someday").
|
InMyTasksSections("Recently Assigned", "Today", "Meetings", "Maybe Today", "Upcoming", "Later", "Someday").
|
||||||
WhenBetween("America/Los_Angeles", "03:00:00", "17:00:00").
|
WhenBetween("America/Los_Angeles", "03:00:00", "17:00:00").
|
||||||
|
WhenDayOfWeek("America/Los_Angeles", WeekDays).
|
||||||
OnlyIncomplete().
|
OnlyIncomplete().
|
||||||
DueInDays(0).
|
DueInDays(0).
|
||||||
WithTagsAnyOf("section=Tonight").
|
WithTagsAnyOf("section=Tonight").
|
||||||
@@ -23,6 +24,16 @@ func main() {
|
|||||||
InWorkspace("flamingcow.io").
|
InWorkspace("flamingcow.io").
|
||||||
InMyTasksSections("Recently Assigned", "Meetings", "Maybe Today", "Tonight", "Upcoming", "Later", "Someday").
|
InMyTasksSections("Recently Assigned", "Meetings", "Maybe Today", "Tonight", "Upcoming", "Later", "Someday").
|
||||||
WhenBetween("America/Los_Angeles", "17:00:00", "03:00:00").
|
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().
|
OnlyIncomplete().
|
||||||
DueInDays(0).
|
DueInDays(0).
|
||||||
WithTagsAnyOf("section=Tonight").
|
WithTagsAnyOf("section=Tonight").
|
||||||
|
|||||||
@@ -26,6 +26,31 @@ type periodic struct {
|
|||||||
taskActors []taskActor
|
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{}
|
var periodics = []*periodic{}
|
||||||
|
|
||||||
func Loop() {
|
func Loop() {
|
||||||
@@ -84,6 +109,27 @@ func (p *periodic) WhenBetween(tz, start, end string) *periodic {
|
|||||||
return p
|
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
|
// Query mutators
|
||||||
func (p *periodic) InMyTasksSections(names ...string) *periodic {
|
func (p *periodic) InMyTasksSections(names ...string) *periodic {
|
||||||
p.queryMutators = append(p.queryMutators, func(wc *client.WorkspaceClient, q *client.SearchQuery) error {
|
p.queryMutators = append(p.queryMutators, func(wc *client.WorkspaceClient, q *client.SearchQuery) error {
|
||||||
|
|||||||
Reference in New Issue
Block a user