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

Merge pull request #612 from wtfutil/WTF-611-gcal-color-highlighting

WTF-611 Fix gCal color highlighting
This commit is contained in:
Chris Cummer 2019-09-06 03:39:38 -07:00 committed by GitHub
commit 7fed7577ea
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 9 additions and 6 deletions

View File

@ -171,7 +171,7 @@ func (widget *Widget) timeUntil(calEvent *CalEvent) string {
func (widget *Widget) titleColor(calEvent *CalEvent) string { func (widget *Widget) titleColor(calEvent *CalEvent) string {
color := widget.settings.colors.title color := widget.settings.colors.title
for _, untypedArr := range widget.settings.highlights { for _, untypedArr := range widget.settings.colors.highlights {
highlightElements := utils.ToStrs(untypedArr.([]interface{})) highlightElements := utils.ToStrs(untypedArr.([]interface{}))
match, _ := regexp.MatchString( match, _ := regexp.MatchString(

View File

@ -16,6 +16,7 @@ type colors struct {
highlights []interface{} `help:"A list of arrays that define a regular expression pattern and a color. If a calendar event title matches a regular expression, the title will be drawn in that colour. Over-rides the default title colour." values:"An array of a valid regular expression, any X11 color name." optional:"true"` highlights []interface{} `help:"A list of arrays that define a regular expression pattern and a color. If a calendar event title matches a regular expression, the title will be drawn in that colour. Over-rides the default title colour." values:"An array of a valid regular expression, any X11 color name." optional:"true"`
} }
// Settings defines the configuration options for this module
type Settings struct { type Settings struct {
colors colors
common *cfg.Common common *cfg.Common
@ -26,13 +27,14 @@ type Settings struct {
email string `help:"The email address associated with your Google account. Necessary for determining 'responseStatus'." values:"A valid email address string."` email string `help:"The email address associated with your Google account. Necessary for determining 'responseStatus'." values:"A valid email address string."`
eventCount int `help:"The number of calendar events to display." values:"A positive integer, 0..n." optional:"true"` eventCount int `help:"The number of calendar events to display." values:"A positive integer, 0..n." optional:"true"`
multiCalendar bool `help:"Whether or not to display your primary calendar or all calendars you have access to." values:"true or false" optional:"true"` multiCalendar bool `help:"Whether or not to display your primary calendar or all calendars you have access to." values:"true or false" optional:"true"`
secretFile string `help:"Your Google client secret JSON file." values:"A string representing a file path to the JSON secret file."` secretFile string `help:"Your Google client secret JSON file." values:"A string representing a file path to the JSON secret file."`
showDeclined bool `help:"Whether or not to display events youve declined to attend." values:"true or false" optional:"true"` showDeclined bool `help:"Whether or not to display events youve declined to attend." values:"true or false" optional:"true"`
withLocation bool `help:"Whether or not to show the location of the appointment." values:"true or false"` withLocation bool `help:"Whether or not to show the location of the appointment." values:"true or false"`
timezone string `help:"The time zone used to display calendar event times." values:"A valid TZ database time zone string" optional:"true"` timezone string `help:"The time zone used to display calendar event times." values:"A valid TZ database time zone string" optional:"true"`
calendarReadLevel string `help:"The calender read level specifies level you want to read events. Default: writer " values:"reader, writer", optional: "true"` calendarReadLevel string `help:"The calender read level specifies level you want to read events. Default: writer " values:"reader, writer" optional:"true"`
} }
// NewSettingsFromYAML creates and returns an instance of Settings with configuration options populated
func NewSettingsFromYAML(name string, ymlConfig *config.Config, globalConfig *config.Config) *Settings { func NewSettingsFromYAML(name string, ymlConfig *config.Config, globalConfig *config.Config) *Settings {
settings := Settings{ settings := Settings{
@ -53,6 +55,7 @@ func NewSettingsFromYAML(name string, ymlConfig *config.Config, globalConfig *co
settings.colors.day = ymlConfig.UString("colors.day", "forestgreen") settings.colors.day = ymlConfig.UString("colors.day", "forestgreen")
settings.colors.description = ymlConfig.UString("colors.description", "white") settings.colors.description = ymlConfig.UString("colors.description", "white")
settings.colors.highlights = ymlConfig.UList("colors.highlights")
settings.colors.past = ymlConfig.UString("colors.past", "gray") settings.colors.past = ymlConfig.UString("colors.past", "gray")
settings.colors.title = ymlConfig.UString("colors.title", "white") settings.colors.title = ymlConfig.UString("colors.title", "white")