From c68d9fa90e37c71bb9296ddae80a291e9943479a Mon Sep 17 00:00:00 2001 From: Sapnil Aditya Ayman Date: Fri, 31 Oct 2025 13:11:59 +0100 Subject: [PATCH 1/6] Add python script for adjusting event time for Oslo and add this to CI-file --- .github/workflows/ci.yml | 8 ++++++++ script/adjust_event_time.py | 21 +++++++++++++++++++++ 2 files changed, 29 insertions(+) create mode 100644 script/adjust_event_time.py diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ab2812c4..4e5703c7 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -6,6 +6,11 @@ on: pull_request: workflow_dispatch: +env: + daylight_start: "2025-03-30T02:00:00" + daylight_end: "2025-0-26T03:00:00" + timezone: "Europe/Oslo" + permissions: contents: read pages: write @@ -30,6 +35,9 @@ jobs: - name: Fetch Events from Peoply API run: node .github/fetch-events.js + - name: Adjust Event Times For DST + run: python script/adjust_event_time.py "$daylight_start" "$daylight_end" "$timezone" + - name: Setup Ruby uses: ruby/setup-ruby@v1 with: diff --git a/script/adjust_event_time.py b/script/adjust_event_time.py new file mode 100644 index 00000000..c38921e6 --- /dev/null +++ b/script/adjust_event_time.py @@ -0,0 +1,21 @@ +import sys +import json +from datetime import datetime +from zoneinfo import ZoneInfo + +daylight_start = datetime.fromisoformat(sys.argv[1]) +daylight_end = datetime.fromisoformat(sys.argv[2]) +timezone = ZoneInfo(sys.argv[3]) + +with open('_data/events.json', 'r') as event_file: + events = json.load(event_file) + +for event in events: + event_time = event['startDate'].replace('Z', '+00:00') + utc_time = datetime.fromisoformat(event_time) + oslo_time = utc_time.astimezone(timezone) + + event['startDate'] = oslo_time.isoformat() + +with open('_data/events.json', 'w', encoding='utf-8') as event_file: + json.dump(events, event_file, indent=2, ensure_ascii=False) \ No newline at end of file From e8b1a9b68de4a1d2a1d457e875dc6162e6e8fa98 Mon Sep 17 00:00:00 2001 From: Sapnil Aditya Ayman Date: Fri, 31 Oct 2025 13:15:13 +0100 Subject: [PATCH 2/6] Add comment on python script --- script/adjust_event_time.py | 1 + 1 file changed, 1 insertion(+) diff --git a/script/adjust_event_time.py b/script/adjust_event_time.py index c38921e6..295b932c 100644 --- a/script/adjust_event_time.py +++ b/script/adjust_event_time.py @@ -10,6 +10,7 @@ with open('_data/events.json', 'r') as event_file: events = json.load(event_file) +# Update the event time for each event to follow timezone in Oslo for event in events: event_time = event['startDate'].replace('Z', '+00:00') utc_time = datetime.fromisoformat(event_time) From 263c94892c7c63f834d48e51bc4b361c97762afb Mon Sep 17 00:00:00 2001 From: Sapnil Aditya Ayman Date: Fri, 31 Oct 2025 13:21:17 +0100 Subject: [PATCH 3/6] Fix typo --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4e5703c7..3a1d75b4 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -8,7 +8,7 @@ on: env: daylight_start: "2025-03-30T02:00:00" - daylight_end: "2025-0-26T03:00:00" + daylight_end: "2025-10-26T03:00:00" timezone: "Europe/Oslo" permissions: From 73d25e882b59071fcec665b93d18394cc1f163ed Mon Sep 17 00:00:00 2001 From: Sapnil Aditya Ayman Date: Fri, 31 Oct 2025 13:36:46 +0100 Subject: [PATCH 4/6] Script dont need summertime start and end dates, delete parameters from CI-file --- .github/workflows/ci.yml | 7 +------ script/adjust_event_time.py | 4 +--- 2 files changed, 2 insertions(+), 9 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3a1d75b4..1eedf0cc 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -6,11 +6,6 @@ on: pull_request: workflow_dispatch: -env: - daylight_start: "2025-03-30T02:00:00" - daylight_end: "2025-10-26T03:00:00" - timezone: "Europe/Oslo" - permissions: contents: read pages: write @@ -36,7 +31,7 @@ jobs: run: node .github/fetch-events.js - name: Adjust Event Times For DST - run: python script/adjust_event_time.py "$daylight_start" "$daylight_end" "$timezone" + run: python script/adjust_event_time.py - name: Setup Ruby uses: ruby/setup-ruby@v1 diff --git a/script/adjust_event_time.py b/script/adjust_event_time.py index 295b932c..9cbf67bb 100644 --- a/script/adjust_event_time.py +++ b/script/adjust_event_time.py @@ -3,9 +3,7 @@ from datetime import datetime from zoneinfo import ZoneInfo -daylight_start = datetime.fromisoformat(sys.argv[1]) -daylight_end = datetime.fromisoformat(sys.argv[2]) -timezone = ZoneInfo(sys.argv[3]) +timezone = ZoneInfo("Europe/Oslo") with open('_data/events.json', 'r') as event_file: events = json.load(event_file) From 82ce8b5eab76935cc68835291a887948e6c9f72f Mon Sep 17 00:00:00 2001 From: Sapnil Aditya Ayman Date: Fri, 31 Oct 2025 14:31:09 +0100 Subject: [PATCH 5/6] Delete scripts for adjusting time for events, instead adjust before writing to _data/events.json --- .github/fetch-events.js | 9 +++++++++ .github/workflows/ci.yml | 3 --- script/adjust_event_time.py | 20 -------------------- 3 files changed, 9 insertions(+), 23 deletions(-) delete mode 100644 script/adjust_event_time.py diff --git a/.github/fetch-events.js b/.github/fetch-events.js index 5d08c69b..bcc2db0c 100644 --- a/.github/fetch-events.js +++ b/.github/fetch-events.js @@ -14,6 +14,15 @@ fetch(url) .then((res) => res.json()) .then((data) => { console.log("Fetched events:", data); + + // Adjust event time to follow timezone in Norway: + data.forEach(event => { + const date = new Date(event.startDate); + event.startDate = date.toLocaleString("nb-NO", { + timeZone: "Europe/Oslo" + }); + }); + fs.writeFileSync("_data/events.json", JSON.stringify(data, 2)); console.log("Events written to _data/events.json"); }) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1eedf0cc..ab2812c4 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -30,9 +30,6 @@ jobs: - name: Fetch Events from Peoply API run: node .github/fetch-events.js - - name: Adjust Event Times For DST - run: python script/adjust_event_time.py - - name: Setup Ruby uses: ruby/setup-ruby@v1 with: diff --git a/script/adjust_event_time.py b/script/adjust_event_time.py deleted file mode 100644 index 9cbf67bb..00000000 --- a/script/adjust_event_time.py +++ /dev/null @@ -1,20 +0,0 @@ -import sys -import json -from datetime import datetime -from zoneinfo import ZoneInfo - -timezone = ZoneInfo("Europe/Oslo") - -with open('_data/events.json', 'r') as event_file: - events = json.load(event_file) - -# Update the event time for each event to follow timezone in Oslo -for event in events: - event_time = event['startDate'].replace('Z', '+00:00') - utc_time = datetime.fromisoformat(event_time) - oslo_time = utc_time.astimezone(timezone) - - event['startDate'] = oslo_time.isoformat() - -with open('_data/events.json', 'w', encoding='utf-8') as event_file: - json.dump(events, event_file, indent=2, ensure_ascii=False) \ No newline at end of file From 4451b0e25af61673956d68139d58097cdb9ccb50 Mon Sep 17 00:00:00 2001 From: Sapnil Aditya Ayman Date: Fri, 31 Oct 2025 15:12:08 +0100 Subject: [PATCH 6/6] Use map instead of forEach and create new data-object with updated start date --- .github/fetch-events.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/fetch-events.js b/.github/fetch-events.js index bcc2db0c..0a60a329 100644 --- a/.github/fetch-events.js +++ b/.github/fetch-events.js @@ -16,14 +16,14 @@ fetch(url) console.log("Fetched events:", data); // Adjust event time to follow timezone in Norway: - data.forEach(event => { + const updatedData = data.map(event => { const date = new Date(event.startDate); - event.startDate = date.toLocaleString("nb-NO", { - timeZone: "Europe/Oslo" - }); - }); + const updatedStartDate = date.toLocaleString("no-NB", { timeZone: "Europe/Oslo" }); - fs.writeFileSync("_data/events.json", JSON.stringify(data, 2)); + return {...event, startDate: updatedStartDate }; + }) + + fs.writeFileSync("_data/events.json", JSON.stringify(updatedData, 2)); console.log("Events written to _data/events.json"); }) .catch((err) => {