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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
32fd3bd77ff2 use published background_loop upgrade
drewp@bigasterisk.com
parents: 28
diff changeset
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
119f0cb719eb too loud
drewp@bigasterisk.com
parents: 37
diff changeset
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
d77ead665ab2 whitespace
drewp@bigasterisk.com
parents: 0
diff changeset
110
d77ead665ab2 whitespace
drewp@bigasterisk.com
parents: 0
diff changeset
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
fb02ad302f2f include more recent-past events
drewp@bigasterisk.com
parents: 3
diff changeset
140 sync.updateGraphs(read.getEvents(s, e))
1
d77ead665ab2 whitespace
drewp@bigasterisk.com
parents: 0
diff changeset
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()