Files
site_aegisone/max_bot/app/text_renderer.py
T

35 lines
1.2 KiB
Python

import re
from typing import Optional
def render_template(template: str, **kwargs) -> str:
result = template
for key, value in kwargs.items():
result = result.replace("{" + key + "}", str(value))
remaining = re.findall(r'\{(\w+)\}', result)
for var in remaining:
result = result.replace("{" + var + "}", "")
return result
def parse_link_text(text: str) -> str:
text = re.sub(r'\[([^\]]+)\]\(tel:[^\)]+\)', r'\1', text)
text = re.sub(r'\[([^\]]+)\]\(mailto:[^\)]+\)', r'\1', text)
text = re.sub(r'\[([^\]]+)\]\(https?://[^\)]+\)', r'\1', text)
return text
def make_clickable_links(text: str, phone_1: str = "", phone_2: str = "",
email: str = "", email_subject: str = "") -> str:
phone_1_raw = re.sub(r'[^\d+]', '', phone_1)
phone_2_raw = re.sub(r'[^\d+]', '', phone_2)
email_encoded = email.replace(' ', '%20')
subject_encoded = email_subject.replace(' ', '%20')
text = text.replace("{phone_1_raw}", phone_1_raw)
text = text.replace("{phone_2_raw}", phone_2_raw)
text = text.replace("{email_encoded}", email_encoded)
text = text.replace("{email_subject_encoded}", subject_encoded)
return text