Commit Graph

9 Commits

Author SHA1 Message Date
0dc718f541 fix: WhatsApp-Polling als eigene Schleife statt APScheduler (kein Overlap mehr) 2026-04-02 13:11:52 +02:00
5f9d6b327b fix: Telegram-Polling-Task sauber canceln + WhatsApp CancelledError beim Shutdown unterdrücken 2026-03-17 15:01:38 +01:00
7a008470ef fix: WhatsApp @c.us Doppel-Suffix + Chat löschen in TUI
- WhatsApp send: @c.us wird vor dem Anhängen entfernt (verhindert 4915..@c.us@c.us)
- DELETE /api/v1/conversations/{id}: löscht Konversation + alle Nachrichten
- TUI: Taste D öffnet Bestätigungsdialog zum Löschen des aktuellen Chats
2026-03-13 15:04:15 +01:00
0f73341c8b fix: WhatsApp incomingWebhook beim Start automatisch aktivieren
Green-API-Instanz hatte incomingWebhook=no → keine Nachrichten in Queue.
_ensure_incoming_enabled() setzt incomingWebhook+outgoingWebhook=yes beim Start.
2026-03-13 14:49:09 +01:00
18ad0735ef 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
2026-03-13 14:45:06 +01:00
9046708015 fix: sauberer Shutdown (Telegram Updater, CancelledError), WhatsApp-Polling auf 5s 2026-03-13 14:02:45 +01:00
d67479309d fix: Telegram idle() entfernt (PTB v21), WhatsApp-Polling-Intervall auf 10s erhöht 2026-03-13 13:59:17 +01:00
4c45c8b17b fix: Telegram-Filter für python-telegram-bot v21 korrigiert 2026-03-13 13:57:01 +01:00
7f3b4768c3 Initial MCM project: FastAPI + Textual TUI unified messenger
MultiCustomerMessenger supporting Telegram (python-telegram-bot),
WhatsApp (Green API) and SMS (python-gsmmodem-new). REST API with
Bearer-token auth, SQLAlchemy models for MariaDB, APScheduler for
background polling, and Textual TUI running in same asyncio event-loop.
2026-03-03 14:43:19 +01:00