aboutsummaryrefslogtreecommitdiffstats
path: root/pysite/views/ws/rst.py
diff options
context:
space:
mode:
authorGravatar Gareth Coles <[email protected]>2018-04-04 16:09:05 +0100
committerGravatar Gareth Coles <[email protected]>2018-04-04 16:09:05 +0100
commit1d1e17f7f19203d449c8641794cd2c61705fdcd2 (patch)
tree63640306e93059a181b2af04952b0403c38ef8ee /pysite/views/ws/rst.py
parentCSRF error route doesn't do shit, sadly (diff)
Early wiki work including a WS test route for RST parsing
Diffstat (limited to 'pysite/views/ws/rst.py')
-rw-r--r--pysite/views/ws/rst.py27
1 files changed, 27 insertions, 0 deletions
diff --git a/pysite/views/ws/rst.py b/pysite/views/ws/rst.py
new file mode 100644
index 00000000..c85c10a0
--- /dev/null
+++ b/pysite/views/ws/rst.py
@@ -0,0 +1,27 @@
+# coding=utf-8
+import logging
+
+from docutils.core import publish_parts
+from geventwebsocket.websocket import WebSocket
+
+from pysite.websockets import WS
+
+
+class RSTWebsocket(WS):
+ path = "/rst"
+ name = "ws.rst"
+
+ def __init__(self, socket: WebSocket):
+ super().__init__(socket)
+ self.log = logging.getLogger()
+
+ def on_open(self):
+ self.log.debug("RST | WS opened.")
+ self.send("Hey, welcome!")
+
+ def on_message(self, message):
+ self.log.debug(f"RST | Message: {message}")
+ self.send(publish_parts(source=message, writer_name="html5")["html_body"])
+
+ def on_close(self):
+ self.log.debug("RST | WS closed.")