changeset 9:36471461685f

py server doesn't do static files now
author drewp@bigasterisk.com
date Fri, 25 Nov 2022 20:33:05 -0800
parents c48b7bbc3a64
children eeb94f34a956
files collector.py
diffstat 1 files changed, 24 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/collector.py	Fri Nov 25 20:32:05 2022 -0800
+++ b/collector.py	Fri Nov 25 20:33:05 2022 -0800
@@ -16,7 +16,7 @@
 import cyclone.sse
 import cyclone.web
 from docopt import docopt
-from patchablegraph import jsonFromPatch
+from patchablegraph.patchablegraph import jsonFromPatch
 from patchablegraph.patchsource import PatchSource, ReconnectingPatchSource
 from prometheus_client import Summary
 from prometheus_client.exposition import generate_latest
@@ -29,6 +29,24 @@
 
 from collector_config import config
 
+import cyclone.sse
+def py3_sendEvent(self, message, event=None, eid=None, retry=None):
+
+    if isinstance(message, dict):
+        message = cyclone.sse.escape.json_encode(message)
+    if isinstance(message, str):
+        message = message.encode("utf-8")
+    assert isinstance(message, bytes)
+    if eid:
+        self.transport.write(b"id: %s\n" % eid)
+    if event:
+        self.transport.write(b"event: %s\n" % event)
+    if retry:
+        self.transport.write(b"retry: %s\n" % retry)
+    self.transport.write(b"data: %s\n\n" % message)
+cyclone.sse.SSEHandler.sendEvent = py3_sendEvent
+
+
 Statement = Tuple[Node, Node, Node, Node]
 
 
@@ -341,7 +359,7 @@
                 # it up into multiple sends, although there's no
                 # guarantee at all since any single stmt could be any
                 # length.
-                h.sendEvent(message=jsonFromPatch(p).encode('utf8'), event=b'patch')
+                h.sendEvent(message=jsonFromPatch(p), event=b'patch')
                 h.lastPatchSentTime = now
             else:
                 log.debug('nothing to send to %s', h)
@@ -409,7 +427,9 @@
     def get(self) -> None:
         try:
             state = self.settings.graphClients.state()
-            self.write(json.dumps({'graphClients': state}, indent=2, default=lambda obj: '<unserializable>'))
+            msg = json.dumps({'graphClients': state}, indent=2, default=lambda obj: '<unserializable>')
+            log.info(msg)
+            self.write(msg)
         except Exception:
             import traceback
             traceback.print_exc()
@@ -430,7 +450,7 @@
     -i  Info level only
     """)
 
-    if arg['-v'] or arg['-i']:
+    if True:
         enableTwistedLog()
         log.setLevel(logging.DEBUG if arg['-v'] else logging.INFO)
         defer.setDebugging(True)
@@ -441,10 +461,6 @@
         9072,
         cyclone.web.Application(  #
             handlers=[
-                (r"/()", cyclone.web.StaticFileHandler, {
-                    "path": ".",
-                    "default_filename": "index.html"
-                }),
                 (r'/state', State),
                 (r'/graph/', GraphList),
                 (r'/graph/(.+)', PatchSink),