aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--bot.config5
-rw-r--r--project/uptimeservice.py22
-rwxr-xr-xradiodiodibot13
3 files changed, 38 insertions, 2 deletions
diff --git a/bot.config b/bot.config
index 0a89799..2726136 100644
--- a/bot.config
+++ b/bot.config
@@ -1,6 +1,9 @@
[GENERAL]
-TelegramBotToken=
+TelegramBotToken=DEFAULT_TOKEN_123
ShoutboxApiUrl=http://127.0.0.1:8000
TelegramChatID=123
ApiCallInterval=5
ApiAuthToken=
+
+[UPTIME]
+Port=8001 \ No newline at end of file
diff --git a/project/uptimeservice.py b/project/uptimeservice.py
new file mode 100644
index 0000000..252dc17
--- /dev/null
+++ b/project/uptimeservice.py
@@ -0,0 +1,22 @@
+import http.server
+import socketserver
+import logging
+import threading
+
+
+class UptimeService(threading.Thread):
+
+ def __init__(self, port):
+ super(UptimeService, self).__init__()
+ self.port = port
+ self._handler = http.server.SimpleHTTPRequestHandler
+
+ self._httpd = socketserver.TCPServer(("", port), self._handler)
+
+ def serve(self):
+ logging.info("Serving uptime service at port {}.".format(self.port))
+ self._httpd.serve_forever()
+
+ def run(self):
+ self.serve()
+
diff --git a/radiodiodibot b/radiodiodibot
index f23b9f7..903881c 100755
--- a/radiodiodibot
+++ b/radiodiodibot
@@ -4,13 +4,15 @@ import configparser
import logging
import signal
import sys
+import threading
from project import botmanager
+from project import uptimeservice
def sigint_handler(signal, frame):
"""Exit gracefully when receiving an interrupt signal"""
- print("Exiting src...")
+ print("Exiting radiodiodibot...")
sys.exit(0)
signal.signal(signal.SIGINT, sigint_handler)
@@ -56,6 +58,10 @@ except:
print("Please install telepot before using src.")
sys.exit(1)
+def run_uptime(port):
+ logging.info("Setting up uptime service...")
+ uptime_server = uptimeservice.UptimeService(int(port))
+ uptime_server.start()
# Entry point
def main():
@@ -67,6 +73,7 @@ def main():
telegram_chat_id = config["GENERAL"]["TelegramChatID"]
api_call_interval = int(config["GENERAL"]["ApiCallInterval"])
api_auth_token = config["GENERAL"]["ApiAuthToken"]
+ uptime_port = config["UPTIME"]["Port"]
# If the user has specified the parameters as command line
# arguments, use them to override the config values
@@ -90,6 +97,10 @@ def main():
logging.info("Using Telegram Chat ID: {}".format(telegram_chat_id))
logging.info("Using API call interval of {} seconds.".format(api_call_interval))
+ # Start uptime server if user has provided a port to bind
+ if uptime_port is not None:
+ run_uptime(uptime_port)
+
# Start listening
manager.start()