diff options
| -rw-r--r-- | bot.config | 5 | ||||
| -rw-r--r-- | project/uptimeservice.py | 22 | ||||
| -rwxr-xr-x | radiodiodibot | 13 |
3 files changed, 38 insertions, 2 deletions
@@ -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() |
