Mercurial > code > home > repos > gcalendarwatch
annotate gcalendarwatch.py @ 48:f2dd88b9964c
rm dead code
author | drewp@bigasterisk.com |
---|---|
date | Mon, 19 Aug 2024 11:28:04 -0700 |
parents | e53a1bc87f99 |
children | 5f7ae444ecae |
rev | line source |
---|---|
0
e40034f22c69
moved from pimscreen, upgrade to py3. Redo google auth.
drewp@bigasterisk.com
parents:
diff
changeset
|
1 """ |
45
e53a1bc87f99
cleanup and some fixes to starred event graph
drewp@bigasterisk.com
parents:
43
diff
changeset
|
2 sync google calendar into mongodb, return a few preset queries as RDF graphs |
0
e40034f22c69
moved from pimscreen, upgrade to py3. Redo google auth.
drewp@bigasterisk.com
parents:
diff
changeset
|
3 |
e40034f22c69
moved from pimscreen, upgrade to py3. Redo google auth.
drewp@bigasterisk.com
parents:
diff
changeset
|
4 gcalendarwatch.conf looks like this: |
e40034f22c69
moved from pimscreen, upgrade to py3. Redo google auth.
drewp@bigasterisk.com
parents:
diff
changeset
|
5 { |
e40034f22c69
moved from pimscreen, upgrade to py3. Redo google auth.
drewp@bigasterisk.com
parents:
diff
changeset
|
6 "minutes_between_polls" : 60 |
e40034f22c69
moved from pimscreen, upgrade to py3. Redo google auth.
drewp@bigasterisk.com
parents:
diff
changeset
|
7 "mongo" : {"host" : "h1", "port" : 27017, "database" : "dbname", "collection" : "pim"}, |
e40034f22c69
moved from pimscreen, upgrade to py3. Redo google auth.
drewp@bigasterisk.com
parents:
diff
changeset
|
8 } |
e40034f22c69
moved from pimscreen, upgrade to py3. Redo google auth.
drewp@bigasterisk.com
parents:
diff
changeset
|
9 |
e40034f22c69
moved from pimscreen, upgrade to py3. Redo google auth.
drewp@bigasterisk.com
parents:
diff
changeset
|
10 This should be updated to use |
e40034f22c69
moved from pimscreen, upgrade to py3. Redo google auth.
drewp@bigasterisk.com
parents:
diff
changeset
|
11 http://googledevelopers.blogspot.com/2013/07/google-calendar-api-push-notifications.html |
e40034f22c69
moved from pimscreen, upgrade to py3. Redo google auth.
drewp@bigasterisk.com
parents:
diff
changeset
|
12 and update faster with less polling |
e40034f22c69
moved from pimscreen, upgrade to py3. Redo google auth.
drewp@bigasterisk.com
parents:
diff
changeset
|
13 """ |
16
a87969972d85
lib updates, auth update and cleanup, reformat
drewp@bigasterisk.com
parents:
15
diff
changeset
|
14 import datetime |
28
e2209226b001
rewrite with starlette and background_loop
drewp@bigasterisk.com
parents:
23
diff
changeset
|
15 import functools |
16
a87969972d85
lib updates, auth update and cleanup, reformat
drewp@bigasterisk.com
parents:
15
diff
changeset
|
16 import json |
28
e2209226b001
rewrite with starlette and background_loop
drewp@bigasterisk.com
parents:
23
diff
changeset
|
17 import logging |
16
a87969972d85
lib updates, auth update and cleanup, reformat
drewp@bigasterisk.com
parents:
15
diff
changeset
|
18 import time |
a87969972d85
lib updates, auth update and cleanup, reformat
drewp@bigasterisk.com
parents:
15
diff
changeset
|
19 import traceback |
45
e53a1bc87f99
cleanup and some fixes to starred event graph
drewp@bigasterisk.com
parents:
43
diff
changeset
|
20 from typing import Iterable, cast |
0
e40034f22c69
moved from pimscreen, upgrade to py3. Redo google auth.
drewp@bigasterisk.com
parents:
diff
changeset
|
21 |
29 | 22 import background_loop |
42
7d9609edcf9c
track calendar feed summary/description text and emit them in graphs
drewp@bigasterisk.com
parents:
39
diff
changeset
|
23 import pymongo.collection |
0
e40034f22c69
moved from pimscreen, upgrade to py3. Redo google auth.
drewp@bigasterisk.com
parents:
diff
changeset
|
24 from dateutil.tz import tzlocal |
28
e2209226b001
rewrite with starlette and background_loop
drewp@bigasterisk.com
parents:
23
diff
changeset
|
25 from patchablegraph import PatchableGraph |
e2209226b001
rewrite with starlette and background_loop
drewp@bigasterisk.com
parents:
23
diff
changeset
|
26 from patchablegraph.handler import GraphEvents, StaticGraph |
0
e40034f22c69
moved from pimscreen, upgrade to py3. Redo google auth.
drewp@bigasterisk.com
parents:
diff
changeset
|
27 from pymongo import MongoClient |
45
e53a1bc87f99
cleanup and some fixes to starred event graph
drewp@bigasterisk.com
parents:
43
diff
changeset
|
28 from rdflib import Namespace, URIRef |
28
e2209226b001
rewrite with starlette and background_loop
drewp@bigasterisk.com
parents:
23
diff
changeset
|
29 from starlette.applications import Starlette |
e2209226b001
rewrite with starlette and background_loop
drewp@bigasterisk.com
parents:
23
diff
changeset
|
30 from starlette.requests import Request |
45
e53a1bc87f99
cleanup and some fixes to starred event graph
drewp@bigasterisk.com
parents:
43
diff
changeset
|
31 from starlette.responses import HTMLResponse, PlainTextResponse |
28
e2209226b001
rewrite with starlette and background_loop
drewp@bigasterisk.com
parents:
23
diff
changeset
|
32 from starlette.routing import Route |
e2209226b001
rewrite with starlette and background_loop
drewp@bigasterisk.com
parents:
23
diff
changeset
|
33 from starlette_exporter import PrometheusMiddleware, handle_metrics |
0
e40034f22c69
moved from pimscreen, upgrade to py3. Redo google auth.
drewp@bigasterisk.com
parents:
diff
changeset
|
34 |
45
e53a1bc87f99
cleanup and some fixes to starred event graph
drewp@bigasterisk.com
parents:
43
diff
changeset
|
35 from datetimemath import dayRange |
28
e2209226b001
rewrite with starlette and background_loop
drewp@bigasterisk.com
parents:
23
diff
changeset
|
36 from graphconvert import asGraph |
e2209226b001
rewrite with starlette and background_loop
drewp@bigasterisk.com
parents:
23
diff
changeset
|
37 from ingest import SyncToMongo |
e2209226b001
rewrite with starlette and background_loop
drewp@bigasterisk.com
parents:
23
diff
changeset
|
38 from localtypes import Conf, Record |
16
a87969972d85
lib updates, auth update and cleanup, reformat
drewp@bigasterisk.com
parents:
15
diff
changeset
|
39 |
39 | 40 logging.basicConfig(level=logging.INFO) |
28
e2209226b001
rewrite with starlette and background_loop
drewp@bigasterisk.com
parents:
23
diff
changeset
|
41 log = logging.getLogger() |
0
e40034f22c69
moved from pimscreen, upgrade to py3. Redo google auth.
drewp@bigasterisk.com
parents:
diff
changeset
|
42 |
e40034f22c69
moved from pimscreen, upgrade to py3. Redo google auth.
drewp@bigasterisk.com
parents:
diff
changeset
|
43 EV = Namespace("http://bigasterisk.com/event#") |
e40034f22c69
moved from pimscreen, upgrade to py3. Redo google auth.
drewp@bigasterisk.com
parents:
diff
changeset
|
44 """ |
e40034f22c69
moved from pimscreen, upgrade to py3. Redo google auth.
drewp@bigasterisk.com
parents:
diff
changeset
|
45 example: |
e40034f22c69
moved from pimscreen, upgrade to py3. Redo google auth.
drewp@bigasterisk.com
parents:
diff
changeset
|
46 { |
e40034f22c69
moved from pimscreen, upgrade to py3. Redo google auth.
drewp@bigasterisk.com
parents:
diff
changeset
|
47 'id': 'l640999999999999999999999c', |
e40034f22c69
moved from pimscreen, upgrade to py3. Redo google auth.
drewp@bigasterisk.com
parents:
diff
changeset
|
48 'summary': 'sec.......', |
e40034f22c69
moved from pimscreen, upgrade to py3. Redo google auth.
drewp@bigasterisk.com
parents:
diff
changeset
|
49 'start': {'timeZone': 'America/Los_Angeles', 'dateTime': '2014-09-25T16:00:00-07:00'}, |
e40034f22c69
moved from pimscreen, upgrade to py3. Redo google auth.
drewp@bigasterisk.com
parents:
diff
changeset
|
50 'end': {'timeZone': 'America/Los_Angeles', 'dateTime': '2014-09-25T17:00:00-07:00'}, |
e40034f22c69
moved from pimscreen, upgrade to py3. Redo google auth.
drewp@bigasterisk.com
parents:
diff
changeset
|
51 'endTimeUnspecified': True, |
e40034f22c69
moved from pimscreen, upgrade to py3. Redo google auth.
drewp@bigasterisk.com
parents:
diff
changeset
|
52 'created': '2014-09-08T20:39:00.000Z', |
e40034f22c69
moved from pimscreen, upgrade to py3. Redo google auth.
drewp@bigasterisk.com
parents:
diff
changeset
|
53 'creator': {'self': True, 'displayName': '...', 'email': '...'}, |
e40034f22c69
moved from pimscreen, upgrade to py3. Redo google auth.
drewp@bigasterisk.com
parents:
diff
changeset
|
54 'etag': '"2829999999999000"', |
e40034f22c69
moved from pimscreen, upgrade to py3. Redo google auth.
drewp@bigasterisk.com
parents:
diff
changeset
|
55 'htmlLink': 'https://www.google.com/calendar/event?eid=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbEBt', |
e40034f22c69
moved from pimscreen, upgrade to py3. Redo google auth.
drewp@bigasterisk.com
parents:
diff
changeset
|
56 'iCalUID': 'l640998888888888888888888888888888com', |
e40034f22c69
moved from pimscreen, upgrade to py3. Redo google auth.
drewp@bigasterisk.com
parents:
diff
changeset
|
57 'kind': 'calendar#event', |
e40034f22c69
moved from pimscreen, upgrade to py3. Redo google auth.
drewp@bigasterisk.com
parents:
diff
changeset
|
58 'organizer': {'self': True, 'displayName': '...', 'email': '...'}, |
e40034f22c69
moved from pimscreen, upgrade to py3. Redo google auth.
drewp@bigasterisk.com
parents:
diff
changeset
|
59 'reminders': {'useDefault': True}, |
e40034f22c69
moved from pimscreen, upgrade to py3. Redo google auth.
drewp@bigasterisk.com
parents:
diff
changeset
|
60 'sequence': 0, |
e40034f22c69
moved from pimscreen, upgrade to py3. Redo google auth.
drewp@bigasterisk.com
parents:
diff
changeset
|
61 'status': 'confirmed', |
e40034f22c69
moved from pimscreen, upgrade to py3. Redo google auth.
drewp@bigasterisk.com
parents:
diff
changeset
|
62 'updated': '2014-09-17T04:28:56.997Z', |
e40034f22c69
moved from pimscreen, upgrade to py3. Redo google auth.
drewp@bigasterisk.com
parents:
diff
changeset
|
63 }""" |
16
a87969972d85
lib updates, auth update and cleanup, reformat
drewp@bigasterisk.com
parents:
15
diff
changeset
|
64 |
a87969972d85
lib updates, auth update and cleanup, reformat
drewp@bigasterisk.com
parents:
15
diff
changeset
|
65 |
0
e40034f22c69
moved from pimscreen, upgrade to py3. Redo google auth.
drewp@bigasterisk.com
parents:
diff
changeset
|
66 class ReadMongoEvents(object): |
e40034f22c69
moved from pimscreen, upgrade to py3. Redo google auth.
drewp@bigasterisk.com
parents:
diff
changeset
|
67 """read events from mongodb""" |
16
a87969972d85
lib updates, auth update and cleanup, reformat
drewp@bigasterisk.com
parents:
15
diff
changeset
|
68 |
42
7d9609edcf9c
track calendar feed summary/description text and emit them in graphs
drewp@bigasterisk.com
parents:
39
diff
changeset
|
69 def __init__(self, collection: pymongo.collection.Collection): |
0
e40034f22c69
moved from pimscreen, upgrade to py3. Redo google auth.
drewp@bigasterisk.com
parents:
diff
changeset
|
70 self.collection = collection |
e40034f22c69
moved from pimscreen, upgrade to py3. Redo google auth.
drewp@bigasterisk.com
parents:
diff
changeset
|
71 |
28
e2209226b001
rewrite with starlette and background_loop
drewp@bigasterisk.com
parents:
23
diff
changeset
|
72 def getEvents(self, t1: datetime.datetime, t2: datetime.datetime) -> Iterable[Record]: |
21
9eb6b4806272
timmzone fixes, especially on GET /events
drewp@bigasterisk.com
parents:
20
diff
changeset
|
73 if t1.tzinfo is None or t2.tzinfo is None: |
9eb6b4806272
timmzone fixes, especially on GET /events
drewp@bigasterisk.com
parents:
20
diff
changeset
|
74 raise TypeError("tz-naive datetimes") |
16
a87969972d85
lib updates, auth update and cleanup, reformat
drewp@bigasterisk.com
parents:
15
diff
changeset
|
75 for doc in self.collection.find({"startTime": {"$gte": t1, "$lt": t2}}).sort([("startTime", 1)]): |
0
e40034f22c69
moved from pimscreen, upgrade to py3. Redo google auth.
drewp@bigasterisk.com
parents:
diff
changeset
|
76 doc['uri'] = doc.pop('_id') |
e40034f22c69
moved from pimscreen, upgrade to py3. Redo google auth.
drewp@bigasterisk.com
parents:
diff
changeset
|
77 if 'feedId' in doc: |
e40034f22c69
moved from pimscreen, upgrade to py3. Redo google auth.
drewp@bigasterisk.com
parents:
diff
changeset
|
78 doc['feed'] = URIRef('old_event') |
e40034f22c69
moved from pimscreen, upgrade to py3. Redo google auth.
drewp@bigasterisk.com
parents:
diff
changeset
|
79 yield doc |
e40034f22c69
moved from pimscreen, upgrade to py3. Redo google auth.
drewp@bigasterisk.com
parents:
diff
changeset
|
80 |
e40034f22c69
moved from pimscreen, upgrade to py3. Redo google auth.
drewp@bigasterisk.com
parents:
diff
changeset
|
81 |
28
e2209226b001
rewrite with starlette and background_loop
drewp@bigasterisk.com
parents:
23
diff
changeset
|
82 def update( |
e2209226b001
rewrite with starlette and background_loop
drewp@bigasterisk.com
parents:
23
diff
changeset
|
83 # this is incompletely type-checked: |
e2209226b001
rewrite with starlette and background_loop
drewp@bigasterisk.com
parents:
23
diff
changeset
|
84 sync: SyncToMongo, # curried by main |
e2209226b001
rewrite with starlette and background_loop
drewp@bigasterisk.com
parents:
23
diff
changeset
|
85 first_run: bool, # passed by background_loop |
e2209226b001
rewrite with starlette and background_loop
drewp@bigasterisk.com
parents:
23
diff
changeset
|
86 cal=None # sometimes passed by us |
e2209226b001
rewrite with starlette and background_loop
drewp@bigasterisk.com
parents:
23
diff
changeset
|
87 ) -> int: |
e2209226b001
rewrite with starlette and background_loop
drewp@bigasterisk.com
parents:
23
diff
changeset
|
88 log.info(f"updating {cal or 'all'}") |
e2209226b001
rewrite with starlette and background_loop
drewp@bigasterisk.com
parents:
23
diff
changeset
|
89 try: |
45
e53a1bc87f99
cleanup and some fixes to starred event graph
drewp@bigasterisk.com
parents:
43
diff
changeset
|
90 n = sync.update(cal=cal, days=120) |
28
e2209226b001
rewrite with starlette and background_loop
drewp@bigasterisk.com
parents:
23
diff
changeset
|
91 except Exception: |
e2209226b001
rewrite with starlette and background_loop
drewp@bigasterisk.com
parents:
23
diff
changeset
|
92 traceback.print_exc() |
e2209226b001
rewrite with starlette and background_loop
drewp@bigasterisk.com
parents:
23
diff
changeset
|
93 log.error("update failed") |
e2209226b001
rewrite with starlette and background_loop
drewp@bigasterisk.com
parents:
23
diff
changeset
|
94 n = 0 |
e2209226b001
rewrite with starlette and background_loop
drewp@bigasterisk.com
parents:
23
diff
changeset
|
95 return n |
16
a87969972d85
lib updates, auth update and cleanup, reformat
drewp@bigasterisk.com
parents:
15
diff
changeset
|
96 |
0
e40034f22c69
moved from pimscreen, upgrade to py3. Redo google auth.
drewp@bigasterisk.com
parents:
diff
changeset
|
97 |
28
e2209226b001
rewrite with starlette and background_loop
drewp@bigasterisk.com
parents:
23
diff
changeset
|
98 def statusMsg(conf, loop: background_loop.Loop): |
e2209226b001
rewrite with starlette and background_loop
drewp@bigasterisk.com
parents:
23
diff
changeset
|
99 period = conf['minutes_between_polls'] * 60 |
e2209226b001
rewrite with starlette and background_loop
drewp@bigasterisk.com
parents:
23
diff
changeset
|
100 ago = time.time() - loop.lastSuccessRun |
e2209226b001
rewrite with starlette and background_loop
drewp@bigasterisk.com
parents:
23
diff
changeset
|
101 if not loop.everSucceeded: |
e2209226b001
rewrite with starlette and background_loop
drewp@bigasterisk.com
parents:
23
diff
changeset
|
102 msg = "no completed updates %d sec after startup" % ago |
e2209226b001
rewrite with starlette and background_loop
drewp@bigasterisk.com
parents:
23
diff
changeset
|
103 if ago > period * 1.1: |
e2209226b001
rewrite with starlette and background_loop
drewp@bigasterisk.com
parents:
23
diff
changeset
|
104 raise ValueError(msg) |
e2209226b001
rewrite with starlette and background_loop
drewp@bigasterisk.com
parents:
23
diff
changeset
|
105 else: |
e2209226b001
rewrite with starlette and background_loop
drewp@bigasterisk.com
parents:
23
diff
changeset
|
106 msg = "last update was %d sec ago" % ago |
e2209226b001
rewrite with starlette and background_loop
drewp@bigasterisk.com
parents:
23
diff
changeset
|
107 if ago > period * 1.1: |
e2209226b001
rewrite with starlette and background_loop
drewp@bigasterisk.com
parents:
23
diff
changeset
|
108 raise ValueError(msg) |
e2209226b001
rewrite with starlette and background_loop
drewp@bigasterisk.com
parents:
23
diff
changeset
|
109 return msg |
1 | 110 |
111 | |
28
e2209226b001
rewrite with starlette and background_loop
drewp@bigasterisk.com
parents:
23
diff
changeset
|
112 async def PollNow(loop: background_loop.Loop, req: Request) -> PlainTextResponse: |
e2209226b001
rewrite with starlette and background_loop
drewp@bigasterisk.com
parents:
23
diff
changeset
|
113 body = await req.body() |
e2209226b001
rewrite with starlette and background_loop
drewp@bigasterisk.com
parents:
23
diff
changeset
|
114 cals = json.loads(body).get('cals', None) if body else [None] |
e2209226b001
rewrite with starlette and background_loop
drewp@bigasterisk.com
parents:
23
diff
changeset
|
115 n = 0 |
e2209226b001
rewrite with starlette and background_loop
drewp@bigasterisk.com
parents:
23
diff
changeset
|
116 for cal in cals: |
e2209226b001
rewrite with starlette and background_loop
drewp@bigasterisk.com
parents:
23
diff
changeset
|
117 n += await loop.runNow(cal=cal) |
e2209226b001
rewrite with starlette and background_loop
drewp@bigasterisk.com
parents:
23
diff
changeset
|
118 msg = f"found {n} new records" |
e2209226b001
rewrite with starlette and background_loop
drewp@bigasterisk.com
parents:
23
diff
changeset
|
119 log.info(msg) |
e2209226b001
rewrite with starlette and background_loop
drewp@bigasterisk.com
parents:
23
diff
changeset
|
120 return PlainTextResponse(msg) |
16
a87969972d85
lib updates, auth update and cleanup, reformat
drewp@bigasterisk.com
parents:
15
diff
changeset
|
121 |
a87969972d85
lib updates, auth update and cleanup, reformat
drewp@bigasterisk.com
parents:
15
diff
changeset
|
122 |
43
b5d3d9a8c83d
new graph of just the events happening now
drewp@bigasterisk.com
parents:
42
diff
changeset
|
123 def updateCurrentEvents(conf: Conf, currentEventsGraph: PatchableGraph, collection: pymongo.collection.Collection, first_run: bool): |
b5d3d9a8c83d
new graph of just the events happening now
drewp@bigasterisk.com
parents:
42
diff
changeset
|
124 now = datetime.datetime.now(tzlocal()) |
b5d3d9a8c83d
new graph of just the events happening now
drewp@bigasterisk.com
parents:
42
diff
changeset
|
125 events = list(collection.find({"startTime": {"$lte": now}, "endTime": {"$gte": now}})) |
b5d3d9a8c83d
new graph of just the events happening now
drewp@bigasterisk.com
parents:
42
diff
changeset
|
126 currentEventsGraph.setToGraph(asGraph(conf, cals=[], events=events, extraClasses=[EV['CurrentEvent']])) |
b5d3d9a8c83d
new graph of just the events happening now
drewp@bigasterisk.com
parents:
42
diff
changeset
|
127 |
b5d3d9a8c83d
new graph of just the events happening now
drewp@bigasterisk.com
parents:
42
diff
changeset
|
128 |
0
e40034f22c69
moved from pimscreen, upgrade to py3. Redo google auth.
drewp@bigasterisk.com
parents:
diff
changeset
|
129 def main(): |
16
a87969972d85
lib updates, auth update and cleanup, reformat
drewp@bigasterisk.com
parents:
15
diff
changeset
|
130 agendaGraph = PatchableGraph() # next few days |
a87969972d85
lib updates, auth update and cleanup, reformat
drewp@bigasterisk.com
parents:
15
diff
changeset
|
131 countdownGraph = PatchableGraph() # next n of starred events |
43
b5d3d9a8c83d
new graph of just the events happening now
drewp@bigasterisk.com
parents:
42
diff
changeset
|
132 currentEventsGraph = PatchableGraph() # events happening now |
28
e2209226b001
rewrite with starlette and background_loop
drewp@bigasterisk.com
parents:
23
diff
changeset
|
133 conf = cast(Conf, json.load(open("gcalendarwatch.conf"))) |
0
e40034f22c69
moved from pimscreen, upgrade to py3. Redo google auth.
drewp@bigasterisk.com
parents:
diff
changeset
|
134 m = conf['mongo'] |
16
a87969972d85
lib updates, auth update and cleanup, reformat
drewp@bigasterisk.com
parents:
15
diff
changeset
|
135 mongoOut = MongoClient(m['host'], m['port'], tz_aware=True)[m['database']][m['collection']] |
0
e40034f22c69
moved from pimscreen, upgrade to py3. Redo google auth.
drewp@bigasterisk.com
parents:
diff
changeset
|
136 sync = SyncToMongo(conf, mongoOut, agendaGraph, countdownGraph) |
e40034f22c69
moved from pimscreen, upgrade to py3. Redo google auth.
drewp@bigasterisk.com
parents:
diff
changeset
|
137 read = ReadMongoEvents(mongoOut) |
e40034f22c69
moved from pimscreen, upgrade to py3. Redo google auth.
drewp@bigasterisk.com
parents:
diff
changeset
|
138 |
45
e53a1bc87f99
cleanup and some fixes to starred event graph
drewp@bigasterisk.com
parents:
43
diff
changeset
|
139 s, e = dayRange(120) |
4 | 140 sync.updateGraphs(read.getEvents(s, e)) |
1 | 141 |
28
e2209226b001
rewrite with starlette and background_loop
drewp@bigasterisk.com
parents:
23
diff
changeset
|
142 loop = background_loop.loop_forever(functools.partial(update, sync=sync), conf['minutes_between_polls'] * 60) |
43
b5d3d9a8c83d
new graph of just the events happening now
drewp@bigasterisk.com
parents:
42
diff
changeset
|
143 background_loop.loop_forever(functools.partial(updateCurrentEvents, conf, currentEventsGraph, mongoOut), 5, metric_prefix="current_events") |
0
e40034f22c69
moved from pimscreen, upgrade to py3. Redo google auth.
drewp@bigasterisk.com
parents:
diff
changeset
|
144 |
28
e2209226b001
rewrite with starlette and background_loop
drewp@bigasterisk.com
parents:
23
diff
changeset
|
145 def getRoot(request: Request) -> HTMLResponse: |
e2209226b001
rewrite with starlette and background_loop
drewp@bigasterisk.com
parents:
23
diff
changeset
|
146 return HTMLResponse(content=open("index.html").read().replace("MSG", statusMsg(conf, loop))) |
16
a87969972d85
lib updates, auth update and cleanup, reformat
drewp@bigasterisk.com
parents:
15
diff
changeset
|
147 |
28
e2209226b001
rewrite with starlette and background_loop
drewp@bigasterisk.com
parents:
23
diff
changeset
|
148 app = Starlette(debug=True, |
e2209226b001
rewrite with starlette and background_loop
drewp@bigasterisk.com
parents:
23
diff
changeset
|
149 routes=[ |
e2209226b001
rewrite with starlette and background_loop
drewp@bigasterisk.com
parents:
23
diff
changeset
|
150 Route('/', getRoot), |
e2209226b001
rewrite with starlette and background_loop
drewp@bigasterisk.com
parents:
23
diff
changeset
|
151 Route('/graph/calendar/upcoming', StaticGraph(agendaGraph)), |
e2209226b001
rewrite with starlette and background_loop
drewp@bigasterisk.com
parents:
23
diff
changeset
|
152 Route('/graph/calendar/upcoming/events', GraphEvents(agendaGraph)), |
e2209226b001
rewrite with starlette and background_loop
drewp@bigasterisk.com
parents:
23
diff
changeset
|
153 Route('/graph/calendar/countdown', StaticGraph(countdownGraph)), |
e2209226b001
rewrite with starlette and background_loop
drewp@bigasterisk.com
parents:
23
diff
changeset
|
154 Route('/graph/calendar/countdown/events', GraphEvents(countdownGraph)), |
43
b5d3d9a8c83d
new graph of just the events happening now
drewp@bigasterisk.com
parents:
42
diff
changeset
|
155 Route('/graph/currentEvents', StaticGraph(currentEventsGraph)), |
b5d3d9a8c83d
new graph of just the events happening now
drewp@bigasterisk.com
parents:
42
diff
changeset
|
156 Route('/graph/currentEvents/events', GraphEvents(currentEventsGraph)), |
28
e2209226b001
rewrite with starlette and background_loop
drewp@bigasterisk.com
parents:
23
diff
changeset
|
157 Route('/pollNow', functools.partial(PollNow, loop), methods=['POST']) |
e2209226b001
rewrite with starlette and background_loop
drewp@bigasterisk.com
parents:
23
diff
changeset
|
158 ]) |
16
a87969972d85
lib updates, auth update and cleanup, reformat
drewp@bigasterisk.com
parents:
15
diff
changeset
|
159 |
37
2da773e48a57
credential code update. needed to rm pickle and relogin
drewp@bigasterisk.com
parents:
29
diff
changeset
|
160 app.add_middleware(PrometheusMiddleware, group_paths=True, filter_unhandled_paths=True, app_name='gcalendarwatch') |
28
e2209226b001
rewrite with starlette and background_loop
drewp@bigasterisk.com
parents:
23
diff
changeset
|
161 app.add_route("/metrics", handle_metrics) |
e2209226b001
rewrite with starlette and background_loop
drewp@bigasterisk.com
parents:
23
diff
changeset
|
162 return app |
0
e40034f22c69
moved from pimscreen, upgrade to py3. Redo google auth.
drewp@bigasterisk.com
parents:
diff
changeset
|
163 |
16
a87969972d85
lib updates, auth update and cleanup, reformat
drewp@bigasterisk.com
parents:
15
diff
changeset
|
164 |
28
e2209226b001
rewrite with starlette and background_loop
drewp@bigasterisk.com
parents:
23
diff
changeset
|
165 app = main() |