feat: Telegram Bot Integration mit QR-Code
Features: - Telegram Bot mit python-telegram-bot Library - Bidirektionale Kommunikation (Anfragen → Tasks → Antworten) - QR-Code auf Settings-Seite für einfache Bot-Verbindung - User-ID Whitelist für Sicherheit - Automatische Task-Erstellung aus Telegram-Nachrichten - Agent-Antworten werden zurück zu Telegram gesendet Implementation: - Neue Telegram-Handler in app.py (start, message) - QR-Code Generator mit qrcode Library - Settings-Seite erweitert mit Telegram-Konfiguration - .env.example mit Telegram-Setup-Anleitung - Background Thread für Telegram Polling - Integration mit bestehendem Task-System Configuration: - TELEGRAM_BOT_TOKEN: Bot Token von @BotFather - TELEGRAM_BOT_USERNAME: Bot Username für QR-Code - TELEGRAM_ALLOWED_USERS: Komma-getrennte User-IDs Usage: 1. Bot via @BotFather erstellen 2. Token + User-IDs in .env eintragen 3. App starten 4. QR-Code auf /settings scannen 5. /start im Bot senden
This commit is contained in:
parent
4c123d5f0f
commit
73c36785e2
22 changed files with 8324 additions and 61 deletions
|
|
@ -96,9 +96,78 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Telegram Bot -->
|
||||
<div class="col-lg-6">
|
||||
<div class="card h-100">
|
||||
<div class="card-header">
|
||||
<span class="me-2">💬</span> Telegram Bot
|
||||
</div>
|
||||
<div class="card-body">
|
||||
{% if telegram_config.bot_token %}
|
||||
<div class="text-center mb-4">
|
||||
<h5 class="mb-3">Scanne den QR-Code mit Telegram</h5>
|
||||
<img src="/api/telegram-qr" alt="Telegram QR Code" class="img-fluid" style="max-width: 300px; border: 2px solid var(--border); border-radius: 8px; padding: 10px; background: white;">
|
||||
<p class="text-muted mt-3 mb-2">
|
||||
Oder öffne direkt:
|
||||
<a href="https://t.me/{{ telegram_config.bot_username }}?start=connect" target="_blank" class="btn btn-sm btn-primary">
|
||||
@{{ telegram_config.bot_username }}
|
||||
</a>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<hr class="my-3" style="border-color:var(--border)">
|
||||
|
||||
<div class="mb-3">
|
||||
<strong>Status:</strong>
|
||||
<span class="badge bg-success">✓ Aktiv</span>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<strong>Bot Username:</strong>
|
||||
<code>@{{ telegram_config.bot_username }}</code>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<strong>Autorisierte User-IDs:</strong>
|
||||
{% if telegram_config.allowed_users %}
|
||||
<div class="d-flex flex-wrap gap-2 mt-2">
|
||||
{% for user_id in telegram_config.allowed_users %}
|
||||
<code class="px-2 py-1 rounded" style="background:var(--bg-elevated);color:var(--accent-light)">{{ user_id }}</code>
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% else %}
|
||||
<span class="badge bg-warning text-dark">⚠ Keine User-IDs konfiguriert</span>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
<div class="alert alert-info" style="font-size: 0.875rem;">
|
||||
<strong>💡 Tipp:</strong> Nach dem Scannen des QR-Codes sende <code>/start</code> an den Bot.
|
||||
Du erhältst eine Bestätigung wenn du autorisiert bist.
|
||||
</div>
|
||||
|
||||
{% else %}
|
||||
<div class="alert alert-warning">
|
||||
<strong>⚠ Telegram Bot nicht konfiguriert</strong>
|
||||
<p class="mb-2 mt-2">Um den Telegram Bot zu aktivieren:</p>
|
||||
<ol class="mb-0" style="font-size: 0.875rem;">
|
||||
<li>Erstelle einen Bot via <a href="https://t.me/BotFather" target="_blank">@BotFather</a></li>
|
||||
<li>Kopiere den Bot Token</li>
|
||||
<li>Hole deine User-ID via <a href="https://t.me/userinfobot" target="_blank">@userinfobot</a></li>
|
||||
<li>Füge beides zur <code>.env</code> Datei hinzu:
|
||||
<pre class="mt-2 p-2" style="background: var(--bg-elevated); border-radius: 4px; font-size: 0.8rem;">TELEGRAM_BOT_TOKEN=your_token_here
|
||||
TELEGRAM_ALLOWED_USERS=your_user_id</pre>
|
||||
</li>
|
||||
<li>Starte die App neu</li>
|
||||
</ol>
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Whitelist -->
|
||||
<div class="col-12">
|
||||
<div class="card">
|
||||
<div class="col-lg-6">
|
||||
<div class="card h-100">
|
||||
<div class="card-header">
|
||||
<span class="me-2">🔒</span> Email-Whitelist
|
||||
</div>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue