aboutsummaryrefslogtreecommitdiffstats
path: root/pysite/views/ws/bot.py
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--pysite/views/ws/bot.py56
1 files changed, 0 insertions, 56 deletions
diff --git a/pysite/views/ws/bot.py b/pysite/views/ws/bot.py
deleted file mode 100644
index 816e7579..00000000
--- a/pysite/views/ws/bot.py
+++ /dev/null
@@ -1,56 +0,0 @@
-import json
-import logging
-
-from geventwebsocket.websocket import WebSocket
-
-from pysite.constants import BOT_API_KEY
-from pysite.mixins import DBMixin
-from pysite.websockets import WS
-
-
-class BotWebsocket(WS, DBMixin):
- path = "/bot"
- name = "ws.bot"
- table_name = "bot_events"
-
- do_changefeed = True
-
- def __init__(self, socket: WebSocket):
- super().__init__(socket)
- self.log = logging.getLogger()
-
- def on_open(self):
- self.log.debug("Bot | WS opened.")
-
- def on_message(self, message):
- self.log.debug(f"Bot | Message: {message}")
-
- try:
- message = json.loads(message)
- except json.JSONDecodeError:
- self.send_json({"error": "Message was not valid JSON"})
- return self.socket.close()
-
- action = message["action"]
-
- if action == "login":
- if message["key"] != BOT_API_KEY:
- return self.socket.close()
-
- self.do_changefeed = True
-
- for document in self.db.changes(self.table_name, include_initial=True, include_types=True):
- if not self.do_changefeed:
- break
-
- if document["type"] not in ["add", "initial"]:
- continue
-
- self.send_json({"action": "event", "event": document["new_val"]})
- self.db.delete(self.table_name, document["id"])
-
- self.send_json({"error": f"Unknown action: {action}"})
-
- def on_close(self):
- self.log.debug("Bot | WS closed.")
- self.do_changefeed = False