import io, re, html
import qrcode
from config import BOT_USERNAME

URL_RE = re.compile(r"(https?://[^\s<>\"']+)")

def referral_link(user_id: int) -> str:
    return f"https://t.me/{BOT_USERNAME}?start={user_id}"

def qr_png(data: str) -> bytes:
    img = qrcode.make(data)
    buf = io.BytesIO()
    img.save(buf, format="PNG")
    return buf.getvalue()

def money(v: float) -> str:
    return f"${v:,.2f}"

def format_delivery(text: str) -> str:
    """Escape HTML and convert URLs into clickable <a> links."""
    if not text:
        return ""
    escaped = html.escape(text)
    return URL_RE.sub(r'<a href="\1">\1</a>', escaped)
