fix(slack): handle empty text responses without regressing thread and media support
This commit is contained in:
@@ -82,13 +82,14 @@ class SlackChannel(BaseChannel):
|
|||||||
thread_ts = slack_meta.get("thread_ts")
|
thread_ts = slack_meta.get("thread_ts")
|
||||||
channel_type = slack_meta.get("channel_type")
|
channel_type = slack_meta.get("channel_type")
|
||||||
# Only reply in thread for channel/group messages; DMs don't use threads
|
# Only reply in thread for channel/group messages; DMs don't use threads
|
||||||
use_thread = thread_ts and channel_type != "im"
|
|
||||||
thread_ts_param = thread_ts if use_thread else None
|
thread_ts_param = thread_ts if use_thread else None
|
||||||
|
|
||||||
if msg.content:
|
# Slack rejects empty text payloads. Keep media-only messages media-only,
|
||||||
|
# but send a single blank message when the bot has no text or files to send.
|
||||||
|
if msg.content or not (msg.media or []):
|
||||||
await self._web_client.chat_postMessage(
|
await self._web_client.chat_postMessage(
|
||||||
channel=msg.chat_id,
|
channel=msg.chat_id,
|
||||||
text=self._to_mrkdwn(msg.content),
|
text=self._to_mrkdwn(msg.content) if msg.content else " ",
|
||||||
thread_ts=thread_ts_param,
|
thread_ts=thread_ts_param,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user