def payload_to_activity()

in libraries/botbuilder-adapters-slack/botbuilder/adapters/slack/slack_helper.py [0:0]


    def payload_to_activity(payload: SlackPayload) -> Activity:
        """
        Creates an activity based on the Slack event payload.

        :param payload: The payload of the Slack event.
        :type payload: :class:`SlackPayload`
        :return: An activity containing the event data.
        :rtype: :class:`botbuilder.schema.Activity`
        """

        if not payload:
            raise Exception("payload is required")

        activity = Activity(
            channel_id="slack",
            conversation=ConversationAccount(id=payload.channel["id"], properties={}),
            from_property=ChannelAccount(
                id=payload.message.bot_id
                if payload.message.bot_id
                else payload.user["id"]
            ),
            recipient=ChannelAccount(),
            channel_data=payload,
            text=None,
            type=ActivityTypes.event,
            value=payload,
        )

        if payload.thread_ts:
            activity.conversation.properties["thread_ts"] = payload.thread_ts

        if payload.actions:
            action = payload.actions[0]

            if action["type"] == "button":
                activity.text = action["value"]
            elif action["type"] == "select":
                selected_option = action["selected_options"]
                activity.text = selected_option["value"] if selected_option else None
            elif action["type"] == "static_select":
                activity.text = action["selected_options"]["value"]

            if activity.text:
                activity.type = ActivityTypes.message

        return activity