|
@@ -31,12 +31,10 @@ LOG = logging.getLogger(__name__)
|
|
|
SLACK_VERIFICATION_TOKEN = conf.SLACK.SLACK_VERIFICATION_TOKEN.get()
|
|
SLACK_VERIFICATION_TOKEN = conf.SLACK.SLACK_VERIFICATION_TOKEN.get()
|
|
|
SLACK_BOT_USER_TOKEN = conf.SLACK.SLACK_BOT_USER_TOKEN.get()
|
|
SLACK_BOT_USER_TOKEN = conf.SLACK.SLACK_BOT_USER_TOKEN.get()
|
|
|
|
|
|
|
|
-slack_client, appname = None, None
|
|
|
|
|
|
|
+slack_client = None
|
|
|
if conf.SLACK.IS_ENABLED.get():
|
|
if conf.SLACK.IS_ENABLED.get():
|
|
|
from slack_sdk import WebClient
|
|
from slack_sdk import WebClient
|
|
|
slack_client = WebClient(token=SLACK_BOT_USER_TOKEN)
|
|
slack_client = WebClient(token=SLACK_BOT_USER_TOKEN)
|
|
|
- appname = "hue_bot"
|
|
|
|
|
-
|
|
|
|
|
|
|
|
|
|
@login_notrequired
|
|
@login_notrequired
|
|
|
@csrf_exempt
|
|
@csrf_exempt
|
|
@@ -66,12 +64,8 @@ def parse_events(event_message):
|
|
|
text = event_message.get('text')
|
|
text = event_message.get('text')
|
|
|
channel = event_message.get('channel')
|
|
channel = event_message.get('channel')
|
|
|
|
|
|
|
|
- BOT_ID = None
|
|
|
|
|
- if appname is not None:
|
|
|
|
|
- BOT_ID = get_bot_id(appname)
|
|
|
|
|
-
|
|
|
|
|
- # ignore bot's own message
|
|
|
|
|
- if BOT_ID == user_id:
|
|
|
|
|
|
|
+ # ignore bot's own message since that will cause an infinite loop of messages if we respond
|
|
|
|
|
+ if event_message.get('bot_id'):
|
|
|
return HttpResponse(status=200)
|
|
return HttpResponse(status=200)
|
|
|
|
|
|
|
|
if slack_client is not None:
|
|
if slack_client is not None:
|
|
@@ -88,12 +82,3 @@ def say_hi_user(channel, user_id):
|
|
|
|
|
|
|
|
bot_message = 'Hi <@{}> :wave:'.format(user_id)
|
|
bot_message = 'Hi <@{}> :wave:'.format(user_id)
|
|
|
return slack_client.api_call(api_method='chat.postMessage', json={'channel': channel, 'text': bot_message})
|
|
return slack_client.api_call(api_method='chat.postMessage', json={'channel': channel, 'text': bot_message})
|
|
|
-
|
|
|
|
|
-def get_bot_id(botusername):
|
|
|
|
|
- """Takes in bot username, Returns the bot id"""
|
|
|
|
|
-
|
|
|
|
|
- response = slack_client.api_call('users.list')
|
|
|
|
|
- users = response['members']
|
|
|
|
|
- for user in users:
|
|
|
|
|
- if botusername in user.get('name', '') and not user.get('deleted'):
|
|
|
|
|
- return user.get('id')
|
|
|