diff --git a/README.md b/README.md index 08da6ae..e82b5a9 100644 --- a/README.md +++ b/README.md @@ -15,6 +15,8 @@ In addition, display alarms can be created or cleared. ```yaml my_calendar_name: ical_url: https://source-calendar.com/my_calendar.ics # Source calendar + request_headers: # (optional) add headers send when requesting the ical url + - User-Agent: 'Mozilla/5.0 (X11; Linux x86_64; rv:128.0) Gecko/20100101 Firefox/128.0' api_key: myapikey # (optional) append ?key=myapikey to your URL to grant access timezone: Europe/London # (optional) ensure all time comparisons are done in this TZ rules: diff --git a/lib/ical_filter_proxy/calendar.rb b/lib/ical_filter_proxy/calendar.rb index 1cba542..f9f4619 100644 --- a/lib/ical_filter_proxy/calendar.rb +++ b/lib/ical_filter_proxy/calendar.rb @@ -1,11 +1,12 @@ module IcalFilterProxy class Calendar - attr_accessor :ical_url, :api_key, :timezone, :filter_rules, :clear_existing_alarms, :alarm_triggers + attr_accessor :ical_url, :api_key, :timezone, :filter_rules, :clear_existing_alarms, :alarm_triggers, :request_headers - def initialize(ical_url, api_key, timezone = 'UTC') + def initialize(ical_url, api_key, timezone = 'UTC', request_headers = {}) self.ical_url = ical_url self.api_key = api_key self.timezone = timezone + self.request_headers = request_headers self.filter_rules = [] self.clear_existing_alarms = false @@ -58,7 +59,7 @@ def original_ics end def raw_original_ical - URI.open(ical_url).read + URI.open(ical_url, request_headers || {}).read end end end diff --git a/lib/ical_filter_proxy/calendar_builder.rb b/lib/ical_filter_proxy/calendar_builder.rb index 8d17260..da06054 100644 --- a/lib/ical_filter_proxy/calendar_builder.rb +++ b/lib/ical_filter_proxy/calendar_builder.rb @@ -20,7 +20,8 @@ def build def create_calendar @calendar = Calendar.new(calendar_config["ical_url"], calendar_config["api_key"], - calendar_config["timezone"]) + calendar_config["timezone"], + calendar_config["request_headers"]) end def add_rules