Spaces:
Sleeping
Sleeping
| import requests | |
| from slack_sdk import WebClient | |
| class Alarm: | |
| def __init__(self, slack): | |
| self.url = slack.url | |
| self.username = slack.username | |
| self.icon_emoji = slack.icon_emoji | |
| self.channel_id = slack.channel_id | |
| self.bot_token = slack.bot_token | |
| self.client = WebClient(self.bot_token) | |
| def _get_color(self, level) -> str: | |
| if level == "ignore": | |
| color = "#36A64F" # Green | |
| elif level == "warning": | |
| color = "#F08080" # Red | |
| return color | |
| def send(self, level, text): | |
| color = self._get_color(level) | |
| message = { | |
| "attachments": [{"text": text, "color": color}], | |
| "username": self.username, | |
| "icon_emoji": self.icon_emoji, | |
| } | |
| requests.post(self.url, json=message) | |
| def send_sdk(self, level, text): | |
| color = self._get_color(level) | |
| re = self.client.chat_postMessage( | |
| channel=self.channel_id, | |
| attachments=[{"fallback": "fallback", "text": text, "color": color}], | |
| icon_emoji=self.icon_emoji, | |
| user_name=self.username, | |
| ) | |
| return re.data["ts"] | |
| def post_reply_to_thread(self, level, thread_ts, text): | |
| color = self._get_color(level) | |
| self.client.chat_postMessage( | |
| channel=self.channel_id, | |
| attachments=[{"fallback": "fallback", "text": text, "color": color}], | |
| icon_emoji=self.icon_emoji, | |
| thread_ts=thread_ts, | |
| user_name=self.username, | |
| ) | |
| def post_reaction(self, thread_ts, emoji_name): | |
| # emoji_name ex. "x", "์๋ฃ" | |
| self.client.reactions_add( | |
| channel=self.channel_id, name=emoji_name, timestamp=thread_ts | |
| ) | |
| class AlertLevel: | |
| IGNORE = "ignore" | |
| WARNING = "warning" | |
| MAJOR = "major" | |
| def get_levels(self): | |
| return [self.IGNORE, self.WARNING, self.MAJOR] | |