--- /dev/null
+# 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)