diff --git a/Public/assets/festival.js b/Public/assets/festival.js
index 891a996..bab49d8 100644
--- a/Public/assets/festival.js
+++ b/Public/assets/festival.js
@@ -47,7 +47,7 @@ function catchErrors(error) {
}
async function performRequest(name, path) {
- let text = await fetch("festival/api/" + path, {
+ let text = await fetch("/festival/api/" + path, {
method: 'POST',
body: name
}).then(handleErrors).catch(catchErrors);
@@ -59,6 +59,6 @@ async function performRequest(name, path) {
return false;
}
-function downloadEvent(file) {
- window.location= "files/" + file
-}
\ No newline at end of file
+function download(file) {
+ window.location = file
+}
diff --git a/Public/festival-en.html b/Public/festival-en.html
index 22b7bef..4e23c27 100644
--- a/Public/festival-en.html
+++ b/Public/festival-en.html
@@ -17,7 +17,7 @@
-
+
@@ -54,10 +54,10 @@
Registration failed
Registration successful
Invitation declined
-
Add to calendar
+
Add to calendar
diff --git a/Public/festival-en.ics b/Public/festival-en.ics
new file mode 100644
index 0000000..0f46817
--- /dev/null
+++ b/Public/festival-en.ics
@@ -0,0 +1,35 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//christophhagen.de
+CALSCALE:GREGORIAN
+BEGIN:VTIMEZONE
+TZID:Europe/Berlin
+LAST-MODIFIED:20201011T015911Z
+TZURL:http://tzurl.org/zoneinfo-outlook/Europe/Berlin
+X-LIC-LOCATION:Europe/Berlin
+BEGIN:DAYLIGHT
+TZNAME:CEST
+TZOFFSETFROM:+0100
+TZOFFSETTO:+0200
+DTSTART:19700329T020000
+RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
+END:DAYLIGHT
+BEGIN:STANDARD
+TZNAME:CET
+TZOFFSETFROM:+0200
+TZOFFSETTO:+0100
+DTSTART:19701025T030000
+RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
+END:STANDARD
+END:VTIMEZONE
+BEGIN:VEVENT
+DTSTAMP:20211002T121707Z
+UID:20211002T121707Z-230813577@christophhagen.de
+DTSTART;TZID=Europe/Berlin:20220730T140000
+DTEND;TZID=Europe/Berlin:20220731T120000
+SUMMARY:CC Festival
+URL:https://christophhagen.de/festival-en
+DESCRIPTION:A summer party
+LOCATION:Scheinfelder Straße 10\, 96160 Geiselwind, Germany
+END:VEVENT
+END:VCALENDAR
\ No newline at end of file
diff --git a/Public/festival.html b/Public/festival.html
index 5512490..cd66fe8 100644
--- a/Public/festival.html
+++ b/Public/festival.html
@@ -17,7 +17,7 @@
-
+
@@ -54,10 +54,10 @@
Registrierung fehlgeschlagen
Registrierung erfolgreich
Einladung abgelehnt
-
Kalendereintrag
+
Kalendereintrag
diff --git a/Public/festival.ics b/Public/festival.ics
new file mode 100644
index 0000000..f774016
--- /dev/null
+++ b/Public/festival.ics
@@ -0,0 +1,35 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//christophhagen.de
+CALSCALE:GREGORIAN
+BEGIN:VTIMEZONE
+TZID:Europe/Berlin
+LAST-MODIFIED:20201011T015911Z
+TZURL:http://tzurl.org/zoneinfo-outlook/Europe/Berlin
+X-LIC-LOCATION:Europe/Berlin
+BEGIN:DAYLIGHT
+TZNAME:CEST
+TZOFFSETFROM:+0100
+TZOFFSETTO:+0200
+DTSTART:19700329T020000
+RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
+END:DAYLIGHT
+BEGIN:STANDARD
+TZNAME:CET
+TZOFFSETFROM:+0200
+TZOFFSETTO:+0100
+DTSTART:19701025T030000
+RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
+END:STANDARD
+END:VTIMEZONE
+BEGIN:VEVENT
+DTSTAMP:20211002T121707Z
+UID:20211002T121707Z-230813577@christophhagen.de
+DTSTART;TZID=Europe/Berlin:20220730T140000
+DTEND;TZID=Europe/Berlin:20220731T120000
+SUMMARY:CC Festival
+URL:https://christophhagen.de/festival
+DESCRIPTION:A summer party
+LOCATION:Scheinfelder Straße 10\, 96160 Geiselwind
+END:VEVENT
+END:VCALENDAR
\ No newline at end of file
diff --git a/Public/since77.mp3 b/Public/since77.mp3
new file mode 100644
index 0000000..c2bba1b
Binary files /dev/null and b/Public/since77.mp3 differ
diff --git a/Resources/paths.conf b/Resources/paths.conf
index fc59537..cf607b4 100755
--- a/Resources/paths.conf
+++ b/Resources/paths.conf
@@ -1,3 +1 @@
/data/logs/festival/server.log
-/data/public/festival/lists
-
diff --git a/Sources/App/configure.swift b/Sources/App/configure.swift
index 9bf4800..7a76982 100755
--- a/Sources/App/configure.swift
+++ b/Sources/App/configure.swift
@@ -96,15 +96,11 @@ public func configure(_ app: Application) throws {
let configFile = URL(fileURLWithPath: app.directory.resourcesDirectory)
.appendingPathComponent("paths.conf")
- let configData = try String(contentsOf: configFile)
- .components(separatedBy: "\n")
- .map { $0.trimmingCharacters(in: .whitespaces) }
- .filter { !$0.isEmpty }
- guard configData.count == 2 else {
- throw FestivalError.invalidConfiguration
- }
- let logFile = URL(fileURLWithPath: configData[0])
- let listDirectory = URL(fileURLWithPath: configData[1])
+ let logPath = try String(contentsOf: configFile)
+ .trimmingCharacters(in: .whitespaces)
+ let logFile = URL(fileURLWithPath: logPath)
+ let listDirectory = URL(fileURLWithPath: app.directory.publicDirectory)
+ .appendingPathComponent("lists")
try Log.set(logFile: logFile.path)