From 23bb8cfbf650d11f20a6ce7141e8cce1a6a5f74d Mon Sep 17 00:00:00 2001 From: jantuomi Date: Fri, 15 Jul 2016 11:49:03 +0300 Subject: Restructure code into classes --- radiodiodibot.py | 59 +++++++------------------------------------------------- 1 file changed, 7 insertions(+), 52 deletions(-) (limited to 'radiodiodibot.py') diff --git a/radiodiodibot.py b/radiodiodibot.py index 1e8b428..ce8abf5 100644 --- a/radiodiodibot.py +++ b/radiodiodibot.py @@ -1,7 +1,10 @@ #!/usr/env python -import sys, argparse, traceback -import time, random +import sys, argparse +import botmanager +import logging + +logging.basicConfig(level=logging.INFO) # Make a globally accessible bot instance bot = None @@ -18,66 +21,18 @@ except: print("Please install telepot before using radiodiodibot.") sys.exit() -def default_action(msg): - content_type, chat_type, chat_id = telepot.glance(msg) - bot.sendMessage(chat_id, "Radio palaa keväällä 2017!") - -# Placeholder action for testing commands -def now_playing(msg): - content_type, chat_type, chat_id = telepot.glance(msg) - songs = ["Ace of Spades", "Mökkitie", "Alpha Russian XXL Night Mixtape", "teekkarihymni"] - bot.sendMessage(chat_id, "Radiossa soi {}!".format(random.choice(songs))) - -# Determine which action to take -def parse_message(msg): - t = msg["text"] - if "/nowplaying" in t: - now_playing(msg) - else: - default_action(msg) - -# Start parsing the incoming message if it is a text message -def handle(msg): - content_type, chat_type, chat_id = telepot.glance(msg) - print(content_type, chat_type, chat_id) - - if content_type == 'text': - parse_message(msg) - # Entry point def main(): - global bot - # Get the bot token as an argument from the user parser = argparse.ArgumentParser(description="Telegram bot for the Radiodiodi Student Radio broadcast.") parser.add_argument("telegram_bot_token") args = parser.parse_args() token = args.telegram_bot_token - - # Attempt to create a bot with telepot - try: - print("Creating bot listener with token {}...".format(token)) - bot = telepot.Bot(token) - print("Bot succesfully created.") - except: - traceback.print_exc() - print("Error creating bot listener. radiodiodibot will now exit...") - return - - # Try fetching bot information from Telegram to check connection - try: - print("Bot info: {}".format(bot.getMe())) - except: - print("Could not fetch bot info. Check your token and connectivity to Telegram!") - return - - bot.message_loop(handle) - print("Listening for messages...") - while True: - time.sleep(10) + manager = botmanager.BotManager(token) + manager.start() if __name__ == "__main__": main() -- cgit v1.3