diff --git a/imap2asana.go b/imap2asana.go index 8ec6ba3..51ee156 100644 --- a/imap2asana.go +++ b/imap2asana.go @@ -2,10 +2,15 @@ package main import ( "fmt" + "log" + "math/rand" "os" + "time" ) func main() { + rand.Seed(time.Now().UnixNano()) + ic, err := NewImapClient( os.Getenv("IMAP_HOST"), os.Getenv("IMAP_USERNAME"), @@ -19,13 +24,18 @@ func main() { defer ic.Close() - tasks, err := ic.Poll() + err = Poll(ic) if err != nil { - panic(err) + log.Printf("%s", err) } - for _, task := range tasks { - fmt.Printf("%#v\n", task) + for { + time.Sleep(time.Duration(rand.Intn(60)) * time.Second) + + err := Poll(ic) + if err != nil { + log.Printf("%s", err) + } } } @@ -33,3 +43,16 @@ type Task struct { Name string HtmlNotes string } + +func Poll(ic *ImapClient) error { + tasks, err := ic.Poll() + if err != nil { + return err + } + + for _, task := range tasks { + fmt.Printf("%#v\n", task) + } + + return nil +}