forked from Decentrala/website
		
	add ical page
This commit is contained in:
		
							
								
								
									
										36
									
								
								prep.py
									
									
									
									
									
								
							
							
						
						
									
										36
									
								
								prep.py
									
									
									
									
									
								
							@@ -45,6 +45,35 @@ def build_html(events: list[dict], dayNames: list[str]) -> str:
 | 
			
		||||
        events_html.append(f"\n<div class='event'>{event_html}</div>")
 | 
			
		||||
    return events_html
 | 
			
		||||
 | 
			
		||||
def build_ical(events: list[dict]) -> str:
 | 
			
		||||
    today = datetime.today().now()
 | 
			
		||||
    # Header
 | 
			
		||||
    events_ical = ""
 | 
			
		||||
    with open("template/head.ical", "r") as file:
 | 
			
		||||
        events_ical += file.read()
 | 
			
		||||
    # Events
 | 
			
		||||
    for event in events:
 | 
			
		||||
        title = event["title"]
 | 
			
		||||
        location = event["location"]
 | 
			
		||||
        date = event["date"]
 | 
			
		||||
        date = str(date.year) + str(date.month).zfill(2) + str(date.day).zfill(2) 
 | 
			
		||||
        created = str(today.year) + str(today.month).zfill(2) + str(today.day).zfill(2) + "T" + str(today.hour).zfill(2) + str(today.minute).zfill(2) + str(today.second).zfill(2) + "Z"
 | 
			
		||||
        time = event["time"]
 | 
			
		||||
        date = date + "T" + time.replace(":", "") + "00"
 | 
			
		||||
 | 
			
		||||
        event_template = ""
 | 
			
		||||
        with open("template/event.ical", "r") as file:
 | 
			
		||||
            event_template += file.read()
 | 
			
		||||
        event_template = event_template.replace("<!--CREATED-->", created)
 | 
			
		||||
        event_template = event_template.replace("<!--DATE-->", date)
 | 
			
		||||
        event_template = event_template.replace("<!--TITLE-->", title)
 | 
			
		||||
 | 
			
		||||
        events_ical += event_template
 | 
			
		||||
    # Footer
 | 
			
		||||
    with open("template/end.ical", "r") as file:
 | 
			
		||||
        events_ical += file.read()
 | 
			
		||||
    return events_ical
 | 
			
		||||
 | 
			
		||||
events = sorted(load_events("dogadjaji.csv"), key=lambda e: e["date"])
 | 
			
		||||
 | 
			
		||||
today = datetime.today().date()
 | 
			
		||||
@@ -87,3 +116,10 @@ with open("pages/en/events_archive.html", "r") as file:
 | 
			
		||||
 | 
			
		||||
with open("pages/en/events_archive.html", "w") as file:
 | 
			
		||||
    file.writelines(page_template + past_events_html)
 | 
			
		||||
 | 
			
		||||
new_events_ical = build_ical(new_events)
 | 
			
		||||
 | 
			
		||||
# Build ical
 | 
			
		||||
with open("site/events.ical", "w") as file:
 | 
			
		||||
    file.write(build_ical)
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										1
									
								
								template/end.ical
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								template/end.ical
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
END:VCALENDAR
 | 
			
		||||
							
								
								
									
										13
									
								
								template/event.ical
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								template/event.ical
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,13 @@
 | 
			
		||||
BEGIN:VEVENT
 | 
			
		||||
UID:calendar.462701.field_date_time.0@dmz.rs
 | 
			
		||||
DTSTAMP:<!--CREATED-->
 | 
			
		||||
CREATED:<!--CREATED-->
 | 
			
		||||
DTSTART;TZID=Europe/Belgrade:<!--DATE-->
 | 
			
		||||
DTEND;TZID=Europe/Belgrade:<!--DATE-->
 | 
			
		||||
GEO:+44.805613;+20.479234
 | 
			
		||||
LAST-MODIFIED:20240102T222415Z
 | 
			
		||||
LOCATION:DC Krov\, Kraljice Marije 47\, 6\, Beograd\, Serbia
 | 
			
		||||
STATUS:CONFIRMED
 | 
			
		||||
SUMMARY:<!--TITLE-->
 | 
			
		||||
URL;TYPE=URI:https://dmz.rs
 | 
			
		||||
END:VEVENT
 | 
			
		||||
							
								
								
									
										20
									
								
								template/head.ical
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								template/head.ical
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,20 @@
 | 
			
		||||
BEGIN:VCALENDAR
 | 
			
		||||
VERSION:2.0
 | 
			
		||||
PRODID:-//Date iCal v3.8//NONSGML kigkonsult.se iCalcreator 2.20.2//
 | 
			
		||||
METHOD:PUBLISH
 | 
			
		||||
X-WR-CALNAME;VALUE=TEXT:Decentrala events
 | 
			
		||||
BEGIN:VTIMEZONE
 | 
			
		||||
TZID:Europe/Belgrade
 | 
			
		||||
BEGIN:STANDARD
 | 
			
		||||
DTSTART:20231029T030000
 | 
			
		||||
TZOFFSETFROM:+0200
 | 
			
		||||
TZOFFSETTO:+0100
 | 
			
		||||
TZNAME:CET
 | 
			
		||||
END:STANDARD
 | 
			
		||||
BEGIN:DAYLIGHT
 | 
			
		||||
DTSTART:20240331T020000
 | 
			
		||||
TZOFFSETFROM:+0100
 | 
			
		||||
TZOFFSETTO:+0200
 | 
			
		||||
TZNAME:CEST
 | 
			
		||||
END:DAYLIGHT
 | 
			
		||||
END:VTIMEZONE
 | 
			
		||||
		Reference in New Issue
	
	Block a user