core/AbstractPublicWS.py
authorSomeone <someone@somenet.org>
Sat, 1 Apr 2023 21:42:01 +0000 (23:42 +0200)
committerSomeone <someone@somenet.org>
Sat, 1 Apr 2023 21:42:01 +0000 (23:42 +0200)
core/AbstractPublicWS.py [new file with mode: 0644]

diff --git a/core/AbstractPublicWS.py b/core/AbstractPublicWS.py
new file mode 100644 (file)
index 0000000..1713db3
--- /dev/null
@@ -0,0 +1,58 @@
+# Mattermost Bot.
+#  Copyright (c) 2016-2022 by Someone <someone@somenet.org> (aka. Jan Vales <jan@jvales.net>)
+#  published under MIT-License
+
+
+import mattermost
+
+
+class AbstractPublicWS():
+    URL = None
+    TRIGGER = None
+    CONFIG = {"display_name": "somebot-command", "auto_complete": True}
+
+    bot = None
+
+
+    def __init__(self, team_id):
+        self.TEAM_ID = team_id
+
+    def __str__(self):
+        return str(self.__class__)
+
+    def __repr__(self):
+        return self.__str__()
+
+
+    # can/should be overridden by the user
+    def on_register_public(self):
+        """Consider to override. Handles the post-command-registration logic at bot startup."""
+        return
+
+    # should be overridden by the user
+    def on_public_GET(self, request, data):
+        """Override. Handles the post-command logic."""
+        return
+
+    # should be overridden by the user
+    def on_public_POST(self, request, data):
+        """Override. Handles the post-command logic."""
+        return
+
+
+    def _on_register_public(self, bot):
+        self.bot = bot
+        #self.URL = ("http://"+self.bot.local_websrv_hostname+":"+str(self.bot.local_websrv_port)+"/").strip("/")+"/"+self.TEAM_ID+"/"+self.TRIGGER
+        self.URL = ("http://"+self.bot.local_websrv_hostname+":"+str(self.bot.local_websrv_port)+"/").strip("/")+"/"+self.TRIGGER
+        self.on_register_public()
+
+
+    def _on_shutdown(self):
+        self.on_shutdown()
+
+
+    def _on_public_GET(self, request, data):
+            return self.on_public_GET(request, data)
+
+    def _on_public_POST(self, request, data):
+            return self.on_public_POST(request, data)