🔊 improve logging
This commit is contained in:
parent
bab3ef6ec0
commit
16984bdbb4
|
|
@ -1,4 +1,5 @@
|
|||
import email.utils
|
||||
import json
|
||||
import os
|
||||
import re
|
||||
import smtplib
|
||||
|
|
@ -30,9 +31,6 @@ class DavEvent:
|
|||
organizer: str
|
||||
calendar: Calendar
|
||||
obj: CalendarObjectResource
|
||||
is_cancelled: bool
|
||||
is_recurring: bool
|
||||
is_prioritized: bool
|
||||
missing_required_fields: list
|
||||
|
||||
def __init__(self, event: CalendarObjectResource):
|
||||
|
|
@ -164,7 +162,7 @@ class DavEvent:
|
|||
:return:
|
||||
"""
|
||||
self.obj.icalendar_component["status"] = "CANCELLED"
|
||||
self.obj.save(no_create=True)
|
||||
self.obj.save(no_create=True, increase_seqno=False)
|
||||
|
||||
def serialize(self) -> dict[str, str | datetime | timedelta]:
|
||||
"""
|
||||
|
|
@ -188,6 +186,28 @@ class DavEvent:
|
|||
"missing_required_fields": self.missing_required_fields,
|
||||
}
|
||||
|
||||
def dumps(self, indent=4, datetime_format="%Y-%m-%d %X") -> str:
|
||||
"""
|
||||
Dump a json string with the event data.
|
||||
:return: string with json data
|
||||
"""
|
||||
return json.dumps({
|
||||
"uid": self.uid,
|
||||
"name": self.name,
|
||||
"start": self.start.strftime(datetime_format),
|
||||
"end": self.end.strftime(datetime_format),
|
||||
"duration": self.duration.total_seconds(),
|
||||
"created": self.created.strftime(datetime_format),
|
||||
"status": self.status,
|
||||
"organizer": self.organizer,
|
||||
"calendar_id": self.calendar.id,
|
||||
"calendar_name": self.calendar.name,
|
||||
"is_cancelled": self.is_cancelled,
|
||||
"is_recurring": self.is_recurring,
|
||||
"is_prioritized": self.is_prioritized,
|
||||
"missing_required_fields": self.missing_required_fields,
|
||||
}, indent=indent)
|
||||
|
||||
@staticmethod
|
||||
def _handle_date(date_value: datetime | date) -> datetime:
|
||||
"""
|
||||
|
|
@ -195,10 +215,8 @@ class DavEvent:
|
|||
"""
|
||||
if isinstance(date_value, datetime):
|
||||
date_value = date_value.astimezone(tz)
|
||||
elif isinstance(date_value, date):
|
||||
date_value = tz.localize(datetime.combine(date_value, datetime.min.time()))
|
||||
else:
|
||||
raise ValueError(f"date_value must be a datetime or date object, {type(date_value)} given.")
|
||||
date_value = tz.localize(datetime.combine(date_value, datetime.min.time()))
|
||||
|
||||
return date_value
|
||||
|
||||
|
|
@ -296,6 +314,8 @@ def clear(target_calendars: list, is_test: bool=False) -> dict:
|
|||
|
||||
# Find overlapping events
|
||||
overlapping_events = find_overlapping_events(events)
|
||||
overlapping_events_json = json.dumps([json.loads(o.get("event").dumps()) for _, o in overlapping_events.items()], indent=2)
|
||||
print(f"Found overlapping events:\n{overlapping_events_json}")
|
||||
|
||||
# Delete overlapping events and send emails to organizers
|
||||
for overlap in overlapping_events.values():
|
||||
|
|
|
|||
Loading…
Reference in New Issue