예제 #1
0
def message_actions():
    # Parse the request payload
    payload = json.loads(request.form["payload"])

    selection_item = payload["actions"][0]["name"]

    selection_value = payload["actions"][0]["value"]

    reply_action = MessageManager(payload)
    # get tag using trained model

    if selection_item == "isQuestion":
        if selection_value == "yes":

            question_content = payload["original_message"]["attachments"][0][
                "fallback"]
            # print(question_content)
            tag = prediction_model.get_Question_tags(question_content)
            print(type(tag))
            linklist, titlelist = stackOverFlowApi.get_Frequent_Questions_of_a_tag(
                tag)
            taglist = stackOverFlowApi.get_related_tag(tag)
            message = reply_action.selectIsQuestion(tag, linklist, titlelist,
                                                    taglist)
            response = slack_client.api_call(
                "chat.postMessage",
                **message,
                attachments=reply_action.getSearchingBlock(question_content))

            return ""
        elif selection_value == 'no':
            #reply_is_question = MessageActions(payload)
            message = reply_action.selectIsnotQuestion()
            response = slack_client.api_call("chat.update",
                                             **message,
                                             attachments=[])
            return ""
        else:
            return ""

    if selection_item == "search":
        if selection_value == "yes":
            # reply_is_selection = MessageActions(payload)
            question_content = payload["original_message"]["attachments"][0][
                "fallback"]
            # get search link
            link = stackOverFlowApi.search_question_on_stackoverflow(
                question_content)
            message = reply_action.selectIsSearch(link)
            response = slack_client.api_call("chat.postMessage", **message)
        else:
            response = slack_client.api_call(
                "chat.postMessage",
                channel=payload["channel"]["id"],
                ts=payload["message_ts"],
                text="It's great to help you! :smile:")
            return ""

    return ""