Mercurial > code > home > repos > gcalendarwatch
diff gcalendarwatch.py @ 21:9eb6b4806272
timmzone fixes, especially on GET /events
author | drewp@bigasterisk.com |
---|---|
date | Mon, 08 Feb 2021 16:40:47 -0800 |
parents | 8c7af0d1b118 |
children | 8122ff3b0fe5 |
line wrap: on
line diff
--- a/gcalendarwatch.py Thu Oct 29 23:48:35 2020 -0700 +++ b/gcalendarwatch.py Mon Feb 08 16:40:47 2021 -0800 @@ -270,6 +270,8 @@ self.collection = collection def getEvents(self, t1, t2): + if t1.tzinfo is None or t2.tzinfo is None: + raise TypeError("tz-naive datetimes") for doc in self.collection.find({"startTime": {"$gte": t1, "$lt": t2}}).sort([("startTime", 1)]): doc['uri'] = doc.pop('_id') if 'feedId' in doc: @@ -341,9 +343,12 @@ upcoming events as JSON-LD """ arg = self.get_argument - t1 = parse(arg('t1')) if arg('t1', default=None) else datetime.datetime.now().replace(hour=0, minute=0, second=0) - t2 = parse(arg('t2')) if arg('t2', - default=None) else datetime.datetime.now() + datetime.timedelta(days=int(arg('days')) if arg('days', default=None) else 2) + t1, t2 = dayRange(int(arg('days', default='2'))) + if arg('t1', default=None): + t1 = parse(arg('t1'), tzinfo=tzlocal()) + if arg('t2', default=None): + t2 = parse(arg('t2'), tzinfo=tzlocal()) + log.info(f'get /events local t1={t1} t2={t2}') if 0: self.set_header("content-type", "application/ld+json") self.write(asJsonLd(self.settings.read.getEvents(t1, t2)))