1
0
mirror of https://github.com/taigrr/wtf synced 2025-01-18 04:03:14 -08:00

Fixing merge conflict with master and multi-gcal

This commit is contained in:
Chris Cummer 2018-06-17 08:10:36 -07:00
commit c08a594d56
3 changed files with 55 additions and 6 deletions

51
gcal/client.go Normal file → Executable file
View File

@ -16,6 +16,7 @@ import (
"os" "os"
"os/user" "os/user"
"path/filepath" "path/filepath"
"sort"
"time" "time"
"github.com/senorprogrammer/wtf/wtf" "github.com/senorprogrammer/wtf/wtf"
@ -47,14 +48,56 @@ func Fetch() (*calendar.Events, error) {
return nil, err return nil, err
} }
startTime := fromMidnight().Format(time.RFC3339) // Get all user calendars with at the least writing access
eventLimit := int64(wtf.Config.UInt("wtf.mods.gcal.eventCount", 10)) pageToken := ""
events, err := srv.Events.List("primary").ShowDeleted(false).SingleEvents(true).TimeMin(startTime).MaxResults(eventLimit).OrderBy("startTime").Do() var calendarIds []string
for {
calendarList, err := srv.CalendarList.List().ShowHidden(false).MinAccessRole("writer").PageToken(pageToken).Do()
for _, calendarListItem := range calendarList.Items {
calendarIds = append(calendarIds, calendarListItem.Id)
}
pageToken = calendarList.NextPageToken
if err != nil || pageToken == "" {
break
}
}
if err != nil { if err != nil {
return nil, err return nil, err
} }
return events, err // Get calendar events
var events calendar.Events
startTime := fromMidnight().Format(time.RFC3339)
eventLimit := int64(wtf.Config.UInt("wtf.mods.gcal.eventCount", 10))
for _, calendarId := range calendarIds {
calendarEvents, err := srv.Events.List(calendarId).ShowDeleted(false).TimeMin(startTime).MaxResults(eventLimit).SingleEvents(true).OrderBy("startTime").Do()
if err != nil {
break
}
events.Items = append(events.Items, calendarEvents.Items...)
}
if err != nil {
return nil, err
}
// Sort events
timeDateChooser := func(event *calendar.Event) (time.Time, error) {
if len(event.Start.Date) > 0 {
return time.Parse("2006-01-02", event.Start.Date)
} else {
return time.Parse(time.RFC3339, event.Start.DateTime)
}
}
sort.Slice(events.Items, func(i, j int) bool {
dateA, _ := timeDateChooser(events.Items[i])
dateB, _ := timeDateChooser(events.Items[j])
return dateA.Before(dateB)
})
return &events, err
} }
/* -------------------- Unexported Functions -------------------- */ /* -------------------- Unexported Functions -------------------- */

9
gcal/widget.go Normal file → Executable file
View File

@ -129,8 +129,13 @@ func (widget *Widget) eventSummary(event *calendar.Event, conflict bool) string
} }
func (widget *Widget) eventTimestamp(event *calendar.Event) string { func (widget *Widget) eventTimestamp(event *calendar.Event) string {
startTime, _ := time.Parse(time.RFC3339, event.Start.DateTime) if len(event.Start.Date) > 0 {
return startTime.Format(wtf.FriendlyDateTimeFormat) startTime, _ := time.Parse("2006-01-02", event.Start.Date)
return startTime.Format(wtf.FriendlyDateFormat)
} else {
startTime, _ := time.Parse(time.RFC3339, event.Start.DateTime)
return startTime.Format(wtf.FriendlyDateTimeFormat)
}
} }
// eventIsNow returns true if the event is happening now, false if it not // eventIsNow returns true if the event is happening now, false if it not

1
wtf/utils.go Normal file → Executable file
View File

@ -13,6 +13,7 @@ import (
const SimpleDateFormat = "Jan 2" const SimpleDateFormat = "Jan 2"
const SimpleTimeFormat = "15:04 MST" const SimpleTimeFormat = "15:04 MST"
const FriendlyDateFormat = "Mon, Jan 2"
const FriendlyDateTimeFormat = "Mon, Jan 2, 15:04" const FriendlyDateTimeFormat = "Mon, Jan 2, 15:04"
const TimestampFormat = "2006-01-02T15:04:05-0700" const TimestampFormat = "2006-01-02T15:04:05-0700"