From dfeebe53d94f26072b0b2f1d2e5a80288cee77a1 Mon Sep 17 00:00:00 2001 From: jowj Date: Tue, 23 Jan 2018 23:13:48 -0600 Subject: [PATCH] trying to combine scripts into bot.py --- mojojojo-bot.py | 31 +++++++++++++++++++++++++++++++ mojojojo-bot2.py | 2 +- 2 files changed, 32 insertions(+), 1 deletion(-) diff --git a/mojojojo-bot.py b/mojojojo-bot.py index e986924..a7fa0b9 100644 --- a/mojojojo-bot.py +++ b/mojojojo-bot.py @@ -3,12 +3,15 @@ import time import re import logging from slackclient import SlackClient +import pdb # instantiate Slack client slack_client = SlackClient(os.environ.get('SLACK_BOT_TOKEN')) # starterbot's user ID in Slack: value is assigned after the bot starts up starterbot_id = None +# channel i want to get ID from +bot_channel = "bots-like-gaston" # constants RTM_READ_DELAY = 1 # 1 second delay between reading from RTM @@ -59,6 +62,19 @@ def handle_command(command, channel): text=response or default_response ) +def reactable_message(event): + """Test whether a (Slack) event is a reaction-able message + + Check whether it's not a DM, it's not empty, and it's actually a message + """ + return 'channel' in event and 'text' in event and event.get('type') == 'message' + +def get_channel_ID(channelName): + for channel in slack_client.api_call('channels.list')["channels"]: + if channel["name"] == channelName: + return channel["id"] + raise Exception("couldn't find channel requested.") + if __name__ == "__main__": logging.basicConfig(filename='mojojojo.log', level=logging.INFO) logging.info('Started') @@ -71,6 +87,21 @@ if __name__ == "__main__": if command: handle_command(command, channel) time.sleep(RTM_READ_DELAY) + events = slack_client.rtm_read() + for event in events: + if reactable_message(event): + channel = event['channel'] + text = event['text'] + if 'blah' in text.lower(): + print(event.get('ts')) # does this populate + #pdb.set_trace() + slack_client.api_call( + 'reactions.add', + channel = get_channel_ID("BOTS"), + name = "thumbsup", + timestamp = event.get('ts') + ) + time.sleep(1) logging.info("Client worked. No errors (we think lol)") else: print("Connection failed. Exception traceback printed above.") diff --git a/mojojojo-bot2.py b/mojojojo-bot2.py index 4f5aede..816902b 100644 --- a/mojojojo-bot2.py +++ b/mojojojo-bot2.py @@ -42,7 +42,7 @@ if slack_client.rtm_connect(): #pdb.set_trace() slack_client.api_call( 'reactions.add', - channel = get_channel_ID(bot_channel), + channel = get_channel_ID("BOTS"), name = "thumbsup", timestamp = event.get('ts') )