ForcePilot/backend/package/yuxi/channel/extensions/webex/format.py

28 lines
953 B
Python
Raw Normal View History

import re
_WEBEX_MENTION_RE = re.compile(r"<@personEmail:[^>]+>|<@personId:[^>]+>")
_WEBEX_HTML_TAG_RE = re.compile(r"</?[a-zA-Z][^>]*>")
def sanitize_text(text: str, payload=None) -> str:
text = _WEBEX_HTML_TAG_RE.sub("", text)
text = text.replace("\r\n", "\n").replace("\r", "\n")
return text
def markdown_to_native(md_text: str) -> str:
normalized = md_text
normalized = re.sub(r"^\s*#{1,6}\s+(.+)", r"**\1**", normalized, flags=re.MULTILINE)
normalized = re.sub(r"^- \[ \]", "-", normalized, flags=re.MULTILINE)
normalized = re.sub(r"^- \[x\]", "- [DONE]", normalized, flags=re.MULTILINE)
return normalized
def strip_mentions(text: str, ctx=None, config: dict | None = None, agent_id: str | None = None) -> str:
stripped = _WEBEX_MENTION_RE.sub("", text)
stripped = re.sub(r"\s+", " ", stripped).strip()
return stripped
STRIP_PATTERNS: list[str] = [r"<@personEmail:[^>]+>", r"<@personId:[^>]+>"]