# Copyright (c) Microsoft Corporation. All rights reserved. # Licensed under the MIT License. from slack.web.classes.attachments import Attachment from slack.web.classes.blocks import Block class SlackMessage: def __init__(self, **kwargs): self.ephemeral = kwargs.get("ephemeral") self.as_user = kwargs.get("as_user") self.icon_url = kwargs.get("icon_url") self.icon_emoji = kwargs.get("icon_emoji") self.thread_ts = kwargs.get("thread_ts") self.user = kwargs.get("user") self.channel = kwargs.get("channel") self.text = kwargs.get("text") self.team = kwargs.get("team") self.ts = kwargs.get("ts") # pylint: disable=invalid-name self.username = kwargs.get("username") self.bot_id = kwargs.get("bot_id") self.icons = kwargs.get("icons") self.blocks: [Block] = kwargs.get("blocks") # Create proper Attachment objects # It would appear that we can get dict fields from the wire that aren't defined # in the Attachment class. So only pass in known fields. attachments = kwargs.get("attachments") if attachments is not None: self.attachments = [ Attachment(**{x: att[x] for x in att if x in Attachment.attributes}) for att in kwargs.get("attachments") ]