in shared/openai-slackbot/openai_slackbot/utils/slack.py [0:0]
def extract_text_from_event(event) -> str:
"""Extracts text from either plaintext and block message."""
# Extract text from plaintext message.
text = event.get("text")
if text:
return text
# Extract text from message blocks.
texts = []
attachments = event.get("attachments", [])
for attachment in attachments:
attachment_message_blocks = attachment.get("message_blocks", [])
for amb in attachment_message_blocks:
message_blocks = amb.get("message", {}).get("blocks", [])
for mb in message_blocks:
mb_elements = mb.get("elements", [])
for mbe in mb_elements:
mbe_elements = mbe.get("elements", [])
for mbee in mbe_elements:
if mbee.get("type") == "text":
texts.append(mbee["text"])
return " ".join(texts).strip()