File tree Expand file tree Collapse file tree 2 files changed +36
-0
lines changed
Expand file tree Collapse file tree 2 files changed +36
-0
lines changed Original file line number Diff line number Diff line change 1+ from icalendar import Calendar as iCalendar
2+ from icalendar import Event as iEvent
3+
4+ from .event import Event as ZeusEvent
5+
6+
7+ def to_ical (zevent : ZeusEvent ) -> iEvent :
8+ """Converts a Zeus event to an ical Event (sub)object"""
9+ ievent = iEvent ()
10+ ievent ['uid' ] = zevent .id
11+ ievent ['summary' ] = zevent .title # FIXME: Moar words
12+ ievent ['dtstart' ] = zevent .date
13+ return ievent
14+
15+
16+ def generate_calendar (ievents : list [iEvent ]) -> iCalendar :
17+ """Aggregates given ical events into a calendar object"""
18+ cal = iCalendar ()
19+ for ievent in ievents :
20+ cal .add_component (event )
21+ return cal
22+
23+
24+ def create_ical_file (ical : iCalendar , filepath : str ):
25+ with open (filepath , 'w' ) as ical_file :
26+ ical_file .write (ical .to_ical ())
27+ ical_file .write ("\n " ) # End of file newline
28+
29+ if __name__ == '__main__' :
30+ # Fetch a few zeus events, left up to the reader:
31+ # events: list[ZeusEvent] = magic_event_fetcher()
32+ zevents = []
33+ ievents = [to_ical (zevent ) for zevent in in zevents ]
34+ cal = generate_calendar (ievents )
35+ create_ical_file ("zeus_events.ics" )
Original file line number Diff line number Diff line change 11discord.py >= 1.3.4
22pyyaml
3+ icalendar
You can’t perform that action at this time.
0 commit comments