diff options
| author | 2018-04-04 16:09:05 +0100 | |
|---|---|---|
| committer | 2018-04-04 16:09:05 +0100 | |
| commit | 1d1e17f7f19203d449c8641794cd2c61705fdcd2 (patch) | |
| tree | 63640306e93059a181b2af04952b0403c38ef8ee /pysite/views/ws | |
| parent | CSRF 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')
| -rw-r--r-- | pysite/views/ws/rst.py | 27 | 
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.")  |