aboutsummaryrefslogtreecommitdiffstats
path: root/slack/slack_message.py
diff options
context:
space:
mode:
Diffstat (limited to 'slack/slack_message.py')
-rw-r--r--slack/slack_message.py18
1 files changed, 14 insertions, 4 deletions
diff --git a/slack/slack_message.py b/slack/slack_message.py
index d6431d7..3c5383b 100644
--- a/slack/slack_message.py
+++ b/slack/slack_message.py
@@ -3,6 +3,7 @@ from __future__ import annotations
import re
from typing import TYPE_CHECKING, List
+from slack.slack_user import format_bot_nick
from slack.task import gather
if TYPE_CHECKING:
@@ -23,12 +24,21 @@ class SlackMessage:
return self.conversation.workspace
async def render_message(self):
- message = await self._unfurl_refs(self._message_json["text"])
- if "user" in self._message_json:
+ if (
+ "subtype" in self._message_json
+ and self._message_json["subtype"] == "bot_message"
+ ):
+ username = self._message_json.get("username")
+ if username:
+ prefix = format_bot_nick(username, colorize=True)
+ else:
+ bot = await self.workspace.bots[self._message_json["bot_id"]]
+ prefix = bot.nick(colorize=True)
+ else:
user = await self.workspace.users[self._message_json["user"]]
prefix = user.nick(colorize=True)
- else:
- prefix = "bot"
+
+ message = await self._unfurl_refs(self._message_json["text"])
return f"{prefix}\t{message}"