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

Indicate division between days in calendar widget

Also Clean up gcal's contentFrom() function
This commit is contained in:
Chris Cummer 2018-04-05 09:12:34 -07:00 committed by Chris Cummer
parent 3c30bc4732
commit 32b395a19e
2 changed files with 43 additions and 13 deletions

View File

@ -10,7 +10,7 @@ wtf:
git: git:
commitCount: 10 commitCount: 10
refreshInterval: 8 refreshInterval: 8
repository: "/Users/chris/Documents/Lendesk/core-api" repository: "/Users/chris/go/src/github.com/senorprogrammer/wtf"
github: github:
refreshInterval: 900 refreshInterval: 900
repo: "core-api" repo: "core-api"

View File

@ -65,24 +65,53 @@ func (widget *Widget) contentFrom(events *calendar.Events) string {
return "" return ""
} }
str := "\n" var prevEvent *calendar.Event
str := ""
for _, event := range events.Items { for _, event := range events.Items {
startTime, _ := time.Parse(time.RFC3339, event.Start.DateTime) str = str + fmt.Sprintf(
timestamp := startTime.Format("Mon, Jan 2, 15:04") "%s\n [%s]%s[white]\n [%s]%s %s[white]\n",
until := widget.until(startTime) widget.dayDivider(event, prevEvent),
widget.titleColor(event),
widget.eventSummary(event),
widget.descriptionColor(event),
widget.eventTimestamp(event),
widget.until(event),
)
summary := event.Summary prevEvent = event
if widget.eventIsNow(event) {
summary = "🔥 " + summary
}
str = str + fmt.Sprintf(" [%s]%s[white]\n [%s]%s %s[white]\n\n", widget.titleColor(event), summary, widget.descriptionColor(event), timestamp, until)
} }
return str return str
} }
func (widget *Widget) dayDivider(event, prevEvent *calendar.Event) string {
if prevEvent != nil {
prevStartTime, _ := time.Parse(time.RFC3339, prevEvent.Start.DateTime)
currStartTime, _ := time.Parse(time.RFC3339, event.Start.DateTime)
if currStartTime.Day() != prevStartTime.Day() {
return "[green]⎯[white]"
}
}
return ""
}
func (widget *Widget) eventSummary(event *calendar.Event) string {
summary := event.Summary
if widget.eventIsNow(event) {
summary = "🔥 " + summary
}
return summary
}
func (widget *Widget) eventTimestamp(event *calendar.Event) string {
startTime, _ := time.Parse(time.RFC3339, event.Start.DateTime)
return startTime.Format("Mon, Jan 2, 15:04")
}
// 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
func (widget *Widget) eventIsNow(event *calendar.Event) bool { func (widget *Widget) eventIsNow(event *calendar.Event) bool {
startTime, _ := time.Parse(time.RFC3339, event.Start.DateTime) startTime, _ := time.Parse(time.RFC3339, event.Start.DateTime)
@ -119,8 +148,9 @@ func (widget *Widget) titleColor(event *calendar.Event) string {
// until returns the number of hours or days until the event // until returns the number of hours or days until the event
// If the event is in the past, returns nil // If the event is in the past, returns nil
func (widget *Widget) until(start time.Time) string { func (widget *Widget) until(event *calendar.Event) string {
duration := time.Until(start) startTime, _ := time.Parse(time.RFC3339, event.Start.DateTime)
duration := time.Until(startTime)
duration = duration.Round(time.Minute) duration = duration.Round(time.Minute)