21 lines
668 B
Python
21 lines
668 B
Python
from typing import Optional
|
|
from urllib.parse import urlencode
|
|
|
|
STARTAPP_LIMIT = 64
|
|
|
|
|
|
def build_content_links(content_token: str, ref_id: Optional[str], *, project_host: str, bot_username: str):
|
|
"""Return tuple of (startapp_payload, telegram_url, web_url)."""
|
|
payload = (content_token or '').strip()
|
|
if len(payload) > STARTAPP_LIMIT:
|
|
payload = payload[:STARTAPP_LIMIT]
|
|
|
|
telegram_url = f"https://t.me/{bot_username}/content?startapp={payload}"
|
|
|
|
query = [('content', content_token)]
|
|
if ref_id:
|
|
query.append(('ref', ref_id))
|
|
web_url = f"{project_host}/viewContent?{urlencode(query)}"
|
|
|
|
return payload, telegram_url, web_url
|