From b36f4c741c4b77ecefd9c182c75cbf52492ada85 Mon Sep 17 00:00:00 2001 From: Valentin Ochs Date: Sat, 18 Jul 2020 15:03:00 +0200 Subject: [PATCH] Cache event list for faster presence checks --- sync.py | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/sync.py b/sync.py index 8ac387c..abb8a2e 100644 --- a/sync.py +++ b/sync.py @@ -19,18 +19,16 @@ for login, content in auth['logins'].items(): logins[login] = caldav.DAVClient(url=content['url'], username=content['user'], password=content['password']) cals = [] +cal_evts = {} for cal in auth['cals']: cals.append(caldav.Calendar(client = logins[cal['login']], url = cal['url'])) + cal_evts[cals[-1].canonical_url] = [ evt.vobject_instance.vevent.uid.value for evt in cals[-1].events() ] changed = {} deleted = {} def cal_contains_uid(cal, uid): - try: - event = cal.event_by_uid(uid) - return True - except caldav.lib.error.NotFoundError: - return False + return uid in cal_evts[cal.canonical_url] for cal in cals: print("Checking %s" % (cal.canonical_url,))