# HG changeset patch # User drewp@bigasterisk.com # Date 1637187914 28800 # Node ID 3cfd3693a4ac5462c286e14b68354bc189bfc3ce # Parent 4a6fffe6a9946f3cac797497fb25cd6305e1ba1b quick fixes for cyclone sse diff -r 4a6fffe6a994 -r 3cfd3693a4ac service/environment/environment.py --- a/service/environment/environment.py Sat Oct 23 13:23:02 2021 -0700 +++ b/service/environment/environment.py Wed Nov 17 14:25:14 2021 -0800 @@ -15,8 +15,9 @@ from patchablegraph import PatchableGraph, CycloneGraphEventsHandler, CycloneGraphHandler from twilight import isWithinTwilight from standardservice.logsetup import log, verboseLogging - +from patch_cyclone import patch_sse from rdfdoc import Doc +patch_sse() ROOM = Namespace("http://projects.bigasterisk.com/room/") DEV = Namespace("http://projects.bigasterisk.com/device/") @@ -27,7 +28,7 @@ class CycloneGraphEventsHandlerWithCors(CycloneGraphEventsHandler): def flush(self): - self.set_header("Access-Control-Allow-Origin", "*") + self.set_header(b"Access-Control-Allow-Origin", b"*") return CycloneGraphEventsHandler.flush(self) diff -r 4a6fffe6a994 -r 3cfd3693a4ac service/environment/patch_cyclone.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/service/environment/patch_cyclone.py Wed Nov 17 14:25:14 2021 -0800 @@ -0,0 +1,20 @@ + + +def patch_sse(): + from cyclone import escape + import cyclone.sse + def new_sendEvent(self, message, event=None, eid=None, retry=None): + if isinstance(message, dict): + message = escape.json_encode(message) + if isinstance(message, str): + message = message.encode("utf-8") + assert isinstance(message, bytes) + if eid: + self.transport.write(b"id: " + eid.encode("utf-8") + b"\n") + if event: + self.transport.write(b"event: " + event + b"\n") + if retry: + self.transport.write(b"retry: " + retry.encode("utf-8") + b"\n") + self.transport.write(b"data: " + message + b"\n\n") + + cyclone.sse.SSEHandler.sendEvent = new_sendEvent diff -r 4a6fffe6a994 -r 3cfd3693a4ac service/environment/requirements.txt --- a/service/environment/requirements.txt Sat Oct 23 13:23:02 2021 -0700 +++ b/service/environment/requirements.txt Wed Nov 17 14:25:14 2021 -0800 @@ -1,15 +1,16 @@ -cyclone +cyclone==1.3 docopt ipdb service_identity twisted +python-dateutil -git+http://github.com/drewp/rdflib-jsonld.git@0a560c9f1aa7c7bbb80fea389e1f5fa51d1287f8#egg=rdflib_jsonld +# git+http://github.com/drewp/rdflib-jsonld.git@0a560c9f1aa7c7bbb80fea389e1f5fa51d1287f8#egg=rdflib_jsonld -git+http://github.com/drewp/scales.git@448d59fb491b7631877528e7695a93553bfaaa93#egg=scales +# git+http://github.com/drewp/scales.git@448d59fb491b7631877528e7695a93553bfaaa93#egg=scales cycloneerr -patchablegraph==0.11.0 +patchablegraph==0.12.0 rdfdb==0.21.0 standardservice==0.6.0