From 3d3538e681cc87c471d98c4f9160bd28b80fb114 Mon Sep 17 00:00:00 2001 From: Todd Morse Date: Thu, 5 Oct 2023 10:50:39 -0400 Subject: [PATCH] event deletions and name prefix --- google_calendar.py | 13 +++++++------ main.py | 18 ++++++++++++++---- 2 files changed, 21 insertions(+), 10 deletions(-) diff --git a/google_calendar.py b/google_calendar.py index 197922f..5dcfe94 100644 --- a/google_calendar.py +++ b/google_calendar.py @@ -49,11 +49,6 @@ def next_n_events(n=100): def upsert_event(calendar_id: str, summary: str, start: datetime, end: datetime, description: str, existing_event: Dict[str, any] | None): - if existing_event: - existing_event['description'] = description - service.events().update(calendarId=CALENDAR_ID, eventId=existing_event['id'], body=existing_event).execute() - return - event = { 'summary': summary, 'start': { @@ -80,4 +75,10 @@ def upsert_event(calendar_id: str, summary: str, start: datetime, end: datetime, if description: event['description'] = description - service.events().insert(calendarId=CALENDAR_ID, body=event).execute() + if existing_event: + return service.events().update(calendarId=CALENDAR_ID, eventId=existing_event['id'], body=event).execute() + + return service.events().insert(calendarId=CALENDAR_ID, body=event).execute() + +def delete_event(existing_event: Dict[str, any]): + service.events().delete(calendarId=CALENDAR_ID, eventId=existing_event['id']).execute() diff --git a/main.py b/main.py index 1984baf..9685ae2 100644 --- a/main.py +++ b/main.py @@ -10,7 +10,7 @@ import aiohttp import markdown import pdfplumber -from google_calendar import upsert_event, next_n_events +from google_calendar import delete_event, upsert_event, next_n_events from transformers import GPT2Tokenizer @@ -168,11 +168,21 @@ async def main(): for event in events: existing_meeting = meetings.get(event.id) + if existing_meeting and 'CANCELLED' in event.name: + logger.info(f"Deleting: '{event.name}' {event.start_time}") + delete_event(existing_meeting) + continue + + if 'CANCELLED' in event.name: + logger.info(f"Skipping: '{event.name}' {event.start_time}") + continue + if not existing_meeting or not existing_meeting.get('description') or (DEFAULT_DESCRIPTION in existing_meeting['description'] and event.description != DEFAULT_DESCRIPTION): - upsert_event(event.id, event.name, event.start_time, event.end_time, event.description, existing_meeting) + upsert_event(event.id, f"City of Portland: {event.name}", event.start_time, event.end_time, event.description, existing_meeting) logging.info(f"updating: '{event.name}' {event.start_time}") - else: - logging.info(f"skipping: '{event.name}' {event.start_time}") + continue + + logging.info(f"skipping: '{event.name}' {event.start_time}") if __name__ == "__main__":