intermittent commit
This commit is contained in:
@@ -153,6 +153,18 @@ def events_to_ics(events: list[Any]) -> str:
|
||||
|
||||
def event_to_component(event: Any) -> Event:
|
||||
component = Event()
|
||||
add_event_identity_and_time(component, event)
|
||||
add_event_status_fields(component, event)
|
||||
add_event_optional_text_fields(component, event)
|
||||
add_event_recurrence_and_parties(component, event)
|
||||
add_event_raw_records(component, event)
|
||||
add_preserved_properties(component, getattr(event, "icalendar", None) or {})
|
||||
for alarm in alarms_for_export(event):
|
||||
component.add_component(alarm)
|
||||
return component
|
||||
|
||||
|
||||
def add_event_identity_and_time(component: Event, event: Any) -> None:
|
||||
component.add("uid", event.uid)
|
||||
component.add("dtstamp", datetime.now(timezone.utc))
|
||||
component.add("dtstart", event_temporal_value(event.start_at, all_day=event.all_day, timezone_id=event.timezone))
|
||||
@@ -164,23 +176,35 @@ def event_to_component(event: Any) -> Event:
|
||||
component.add("duration", timedelta(seconds=int(event.duration_seconds)))
|
||||
if getattr(event, "recurrence_id", None):
|
||||
add_recurrence_id(component, str(event.recurrence_id))
|
||||
|
||||
|
||||
def add_event_status_fields(component: Event, event: Any) -> None:
|
||||
component.add("summary", event.summary)
|
||||
component.add("sequence", int(event.sequence or 0))
|
||||
component.add("status", event.status)
|
||||
component.add("transp", event.transparency)
|
||||
component.add("class", event.classification)
|
||||
|
||||
|
||||
def add_event_optional_text_fields(component: Event, event: Any) -> None:
|
||||
if event.description:
|
||||
component.add("description", event.description)
|
||||
if event.location:
|
||||
component.add("location", event.location)
|
||||
if event.categories:
|
||||
component.add("categories", list(event.categories))
|
||||
|
||||
|
||||
def add_event_recurrence_and_parties(component: Event, event: Any) -> None:
|
||||
if event.rrule:
|
||||
component.add("rrule", normalized_rrule_for_export(event.rrule))
|
||||
if event.organizer:
|
||||
component.add("organizer", party_for_export(event.organizer))
|
||||
for attendee in event.attendees or []:
|
||||
component.add("attendee", party_for_export(attendee))
|
||||
|
||||
|
||||
def add_event_raw_records(component: Event, event: Any) -> None:
|
||||
for record in getattr(event, "rdate", None) or []:
|
||||
add_raw_property(component, "RDATE", record)
|
||||
for record in getattr(event, "exdate", None) or []:
|
||||
@@ -190,11 +214,6 @@ def event_to_component(event: Any) -> Event:
|
||||
for record in getattr(event, "related_to", None) or []:
|
||||
add_raw_property(component, "RELATED-TO", record)
|
||||
|
||||
add_preserved_properties(component, getattr(event, "icalendar", None) or {})
|
||||
for alarm in alarms_for_export(event):
|
||||
component.add_component(alarm)
|
||||
return component
|
||||
|
||||
|
||||
def expand_event_occurrences(event: Any, range_start: datetime, range_end: datetime, *, limit: int = 1000) -> list[dict[str, Any]]:
|
||||
"""Expand an event's recurrence primitives within a range.
|
||||
|
||||
Reference in New Issue
Block a user