Source code for slackfin.types
[docs]class SlackElementType:
"""A Slack element."""
def __init__(self, element_type: str = None):
self.data = {
"type": element_type
}
[docs] def add_value(self, key: str, value: str):
"""Add a value to the element."""
self.data[key] = value
[docs] def render(self) -> dict:
"""Render the element to JSON."""
return self.data
[docs]class SlackPlainTextType(SlackElementType):
"""A Slack plain text type."""
def __init__(self, text: str = "", emoji: bool = True):
super().__init__(element_type='plain_text')
self.add_value("text", text)
self.add_value("emoji", emoji)
self.text = text
[docs]class SlackMarkdownType(SlackElementType):
"""A Slack markdown text type."""
def __init__(self, text: str = ""):
super().__init__(element_type='mrkdwn')
if not isinstance(text, str):
text = str(text)
self.add_value("text", text)
self.text = text
[docs]class SlackImageType(SlackElementType):
"""A Slack image type."""
def __init__(self, image_url: str = "", alt_text: str = ""):
super().__init__(element_type='image')
self.add_value("image_url", image_url)
self.add_value("alt_text", alt_text)