28 lines
953 B
Python
28 lines
953 B
Python
|
|
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:[^>]+>"]
|