From 54351c29b33576a895e12f5451b76dcb48ea0395 Mon Sep 17 00:00:00 2001 From: Tobias Date: Thu, 21 Aug 2025 18:05:31 +0200 Subject: [PATCH 1/4] allow specifying request headers --- lib/ical_filter_proxy/calendar.rb | 7 ++++--- lib/ical_filter_proxy/calendar_builder.rb | 3 ++- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/lib/ical_filter_proxy/calendar.rb b/lib/ical_filter_proxy/calendar.rb index 1cba542..c4179a4 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, headers_array&.reduce({}, :merge) || {}).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 From 968a5013cdbdf2b85218385367a6fde3961ed62d Mon Sep 17 00:00:00 2001 From: Tobias Date: Thu, 21 Aug 2025 18:12:04 +0200 Subject: [PATCH 2/4] add documentation --- README.md | 2 ++ 1 file changed, 2 insertions(+) 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: From 8489d7179f63d08f298ee4fb1038965370f94e15 Mon Sep 17 00:00:00 2001 From: Tobias Date: Thu, 21 Aug 2025 18:31:10 +0200 Subject: [PATCH 3/4] forgot to rename the variable in one location --- lib/ical_filter_proxy/calendar.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/ical_filter_proxy/calendar.rb b/lib/ical_filter_proxy/calendar.rb index c4179a4..69e899a 100644 --- a/lib/ical_filter_proxy/calendar.rb +++ b/lib/ical_filter_proxy/calendar.rb @@ -59,7 +59,7 @@ def original_ics end def raw_original_ical - URI.open(ical_url, headers_array&.reduce({}, :merge) || {}).read + URI.open(ical_url, request_headers&.reduce({}, :merge) || {}).read end end end From 834a2c952ede14fe728e7a147d8b8cf9b1831ba6 Mon Sep 17 00:00:00 2001 From: Tobias Date: Mon, 29 Dec 2025 21:49:32 +0100 Subject: [PATCH 4/4] implement codestyle suggestions from darkphnx --- lib/ical_filter_proxy/calendar.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/ical_filter_proxy/calendar.rb b/lib/ical_filter_proxy/calendar.rb index 69e899a..f9f4619 100644 --- a/lib/ical_filter_proxy/calendar.rb +++ b/lib/ical_filter_proxy/calendar.rb @@ -2,11 +2,11 @@ module IcalFilterProxy class Calendar attr_accessor :ical_url, :api_key, :timezone, :filter_rules, :clear_existing_alarms, :alarm_triggers, :request_headers - def initialize(ical_url, api_key, timezone = 'UTC', request_headers={}) + 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.request_headers = request_headers self.filter_rules = [] self.clear_existing_alarms = false @@ -59,7 +59,7 @@ def original_ics end def raw_original_ical - URI.open(ical_url, request_headers&.reduce({}, :merge) || {}).read + URI.open(ical_url, request_headers || {}).read end end end