Просмотр исходного кода

[slack] load and instantiate sdk when config flag is enabled

Harshg999 4 лет назад
Родитель
Сommit
19c7bfac6f
1 измененных файлов с 19 добавлено и 17 удалено
  1. 19 17
      desktop/core/src/desktop/lib/botserver/views.py

+ 19 - 17
desktop/core/src/desktop/lib/botserver/views.py

@@ -20,24 +20,22 @@ import json
 from pprint import pprint
 
 from desktop import conf
-from django.shortcuts import render
 from django.http import HttpResponse
 from desktop.lib.django_util import login_notrequired, JsonResponse
 from desktop.lib.exceptions_renderable import PopupException
 from django.utils.translation import ugettext as _
 from django.views.decorators.csrf import csrf_exempt
 
-from django.conf import settings
-from slack_sdk import WebClient
-
 LOG = logging.getLogger(__name__)
 
 SLACK_VERIFICATION_TOKEN = conf.SLACK.SLACK_VERIFICATION_TOKEN.get()
 SLACK_BOT_USER_TOKEN = conf.SLACK.SLACK_BOT_USER_TOKEN.get()
 
-
-slack_client = WebClient(token=SLACK_BOT_USER_TOKEN)
-appname = "hue_bot"
+slack_client, appname = None, None
+if conf.SLACK.IS_ENABLED.get():
+  from slack_sdk import WebClient
+  slack_client = WebClient(token=SLACK_BOT_USER_TOKEN)
+  appname = "hue_bot"
 
 
 @login_notrequired
@@ -57,8 +55,8 @@ def slack_events(request):
     if 'event' in slack_message:
       event_message = slack_message['event']
       parse_events(event_message)
-  except Exception as ex:
-    raise PopupException(_("Response content is not valid JSON"), detail=ex)
+  except ValueError as e:
+    raise PopupException(_("Response content is not valid JSON"), detail=e)
   
   return HttpResponse(status=200)
 
@@ -67,18 +65,22 @@ def parse_events(event_message):
   user_id = event_message.get('user')
   text = event_message.get('text')
   channel = event_message.get('channel')
-  BOT_ID = get_bot_id(appname)
+
+  BOT_ID = None
+  if appname is not None:
+    BOT_ID = get_bot_id(appname)
 
   # ignore bot's own message
   if BOT_ID == user_id:
     return HttpResponse(status=200)
-
-  if 'hello hue' in text.lower():
-    response = say_hi_user(channel, user_id)
-    if response['ok']:
-      return HttpResponse(status=200)
-    else:
-      raise PopupException(response["error"])
+  
+  if slack_client is not None:
+    if 'hello hue' in text.lower():
+      response = say_hi_user(channel, user_id)
+      if response['ok']:
+        return HttpResponse(status=200)
+      else:
+        raise PopupException(response["error"])
 
   
 def say_hi_user(channel, user_id):