import importlib.metadata
import logging
import os
import sys
import requests
from slackhooks.client import Message
from slackhooks.blocks.context import Context
from slackhooks.blocks.divider import Divider
from slackhooks.blocks.element import MarkdownTextElement
from slackhooks.blocks.section import Section
from slackhooks.blocks.text import MarkdownText
logging.basicConfig(level=logging.INFO)
def simple_markdown_section(mkd_text: str) -> Section:
mkd_block = MarkdownText(mkd_text)
message_section = Section(text=mkd_block)
return message_section
def context_footer() -> Context:
mk_text = MarkdownTextElement("_Sent by slackhooks example v%s_" % importlib.metadata.version(__package__))
context = Context([mk_text])
return context
def assemble_mkd_message(mkd_text: str) -> Message:
blocks = [simple_markdown_section(mkd_text), Divider(), context_footer()]
return Message(blocks=blocks)
def send_mkd_message(mkd_text: str, webhook_url: str) -> requests.Response:
return assemble_mkd_message(mkd_text).send(webhook_url)
if __name__ == "__main__":
webhook_url = os.environ.get("SLACK_WEBHOOK_URL", sys.argv[1] if len(sys.argv) > 1 else None)
resp = send_mkd_message("It _looks_ like it's working!", webhook_url)
if resp.status_code == 200:
logging.info("Success!")
else:
logging.warning(f"It failed: {resp}")
fedecalendino/slack-hooks
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
About
No description, website, or topics provided.
Resources
License
Stars
Watchers
Forks
Packages 0
No packages published