feat: Telegram QR-Code Invite-Link + WhatsApp Empfang-Fix

Telegram:
- /start <contact_id> Deep-Link Handler: verknüpft Kontakt automatisch mit chat_id
- QR-Code Endpunkt GET /api/v1/contacts/{id}/telegram-qr (PNG)
- TUI: Taste T öffnet QR-Code im Browser (HTML mit eingebettetem PNG)
- config.py + .env.example: TELEGRAM_BOT_USERNAME=mcm_bot
- qrcode[pil] zu requirements.txt hinzugefügt

WhatsApp:
- receiveTimeout 5→3s, HTTP-Timeout 8s → verhindert Polling-Overlap
This commit is contained in:
2026-03-13 14:45:06 +01:00
parent 73619fbc9c
commit 18ad0735ef
9 changed files with 155 additions and 7 deletions

View File

@@ -85,7 +85,8 @@ class WhatsAppChannel(BaseChannel):
return
url = f"{self._base_url}/receiveNotification/{self._token}"
try:
async with self._get_session().get(url, params={"receiveTimeout": 5}) as resp:
timeout = aiohttp.ClientTimeout(total=8)
async with self._get_session().get(url, params={"receiveTimeout": 3}, timeout=timeout) as resp:
if resp.status != 200:
return
data = await resp.json()