Merge pull request #1 from mgrove36/feat-change-published-calendar-name

[FEAT] Allow changing published name of calendar
This commit is contained in:
2024-08-25 18:29:49 +01:00
committed by GitHub
2 changed files with 11 additions and 4 deletions

View File

@@ -90,6 +90,7 @@ calendars:
# basic example
- name: example # used as slug in URL - e.g. ical-filter-proxy:8080/calendars/example/feed?token=changeme
publish_name: "My Calendar" # the published name of the calendar - uses upstream value if this line is skipped
token: "changeme" # token used to pull iCal feed - authentication is disabled when blank
feed_url: "https://my-upstream-calendar.url/feed.ics" # URL for the upstream iCal feed
filters: # optional - if no filters defined the upstream calendar is proxied as parsed
@@ -105,6 +106,7 @@ calendars:
# example: removing noise from an Office 365 calendar
- name: outlook
publish_name: "My Outlook Calendar" # the published name of the calendar - uses upstream value if this line is skipped
token: "changeme"
feed_url: "https://outlook.office365.com/owa/calendar/.../reachcalendar.ics"
filters:

View File

@@ -16,10 +16,11 @@ import (
// CalendarConfig definition
type CalendarConfig struct {
Name string `yaml:"name"`
Token string `yaml:"token"`
FeedURL string `yaml:"feed_url"`
Filters []Filter `yaml:"filters"`
Name string `yaml:"name"`
PublishName string `yaml:"publish_name"`
Token string `yaml:"token"`
FeedURL string `yaml:"feed_url"`
Filters []Filter `yaml:"filters"`
}
// Downloads iCal feed from the URL and applies filtering rules
@@ -44,6 +45,10 @@ func (calendarConfig CalendarConfig) fetch() ([]byte, error) {
return nil, err
}
if (calendarConfig.PublishName != "") {
cal.SetName(calendarConfig.PublishName)
}
// process filters
if len(calendarConfig.Filters) > 0 {
slog.Debug("Processing filters", "calendar", calendarConfig.Name)