Add CCC events
All checks were successful
docker-image / docker (push) Successful in 10m3s

This commit is contained in:
Stefan Bethke 2025-06-16 09:40:08 +02:00
commit 3ad796ffb2
2 changed files with 8 additions and 2 deletions

View file

@ -1,3 +1,4 @@
import datetime
import logging
from buba.animations.charset import BubaCharset
@ -30,7 +31,11 @@ def setup_animations(config, animator: BubaAnimator):
ccchh_events = IcalEvents(animator.buba,
url="https://cloud.hamburg.ccc.de/remote.php/dav/public-calendars/QJAdExziSnNJEz5g?export",
title="CCCHH Events")
ccc_events = IcalEvents(animator.buba,
url="https://events.ccc.de/calendar/events.ics",
title="CCC Events", range=datetime.timedelta(weeks=8))
animator.add(ccchh_events)
animator.add(ccc_events)
ccchh_spaceapi = Spaceapi(animator.buba, "https://spaceapi.hamburg.ccc.de", "CCCHH")
animator.add(ccchh_spaceapi)

View file

@ -11,17 +11,18 @@ from buba.bubacmd import BubaCmd
class IcalEvents(BubaAnimation):
def __init__(self, buba, url, title):
def __init__(self, buba, url, title, range=timedelta(weeks=2)):
super().__init__(buba)
self.url = url
self.title = title
self.range = range
def __repr__(self):
return f"<{type(self).__name__}, {self.url}>"
def update(self):
tz = timezone(os.getenv("TZ", "Europe/Berlin"))
events = icalevents.icalevents.events(self.url, tzinfo=tz, sort=True, end=datetime.now(tz) + timedelta(days=14))
events = icalevents.icalevents.events(self.url, tzinfo=tz, sort=True, end=datetime.now(tz) + self.range)
for event in events:
event.start = event.start.astimezone(tz)
self.rows = [[e.summary, self.countdown(e.start)] for e in events]