Ein hochperformanter News-Aggreg## 🎯 Features
- Asynchrone Generierung: Previews werden beim Scraping erstellt, nicht bei der Anzeige
- oEmbed-Integration: Direkte YouTube, Twitter, Instagram, TikTok Embeds
- 10x Performance: Schneller als traditionelle HTML-Scraping-Methoden
- Visual Indicators: 🟢 Grün = Instant-Previews, 🔵 Blau = On-Demand
- Fallback-Strategien: oEmbed → Quick Meta → Standard Scraping
- User Client: Vollzugriff auf alle Telegram-Kanäle (keine Bot-Limitierungen)
- 2FA-Support: Sichere Authentifizierung mit Telefonnummer + SMS + Cloud-Passwort
- Medien-Extraktion: Automatisches Speichern von Bildern, Videos, Dokumenten
- Realtime-Scraping: Priorisierung von Nachrichten der letzten Stunde
- Smart-Filtering: Intelligente Duplikaterkennung basierend auf Message-IDs
- Favorite/Spam-System: Ein-Klick Bewertung für Machine Learning
- Automatisches Filtering: Spam-Artikel werden ausgeblendet
- Training-Data: Benutzer-Feedback sammeln für AI-Verbesserung
- Echtzeit-Statistiken: Übersicht über Bewertungsverteilung
- Responsive Design: Optimiert für Smartphone-Nutzung
- Touch-optimiert: Große Buttons, einfache Navigation
- Performance: Asynchrone Inhalte-Ladung, keine Wartezeiten
- Intuitive UX: Swipe-Gesten und Ein-Klick-Aktionenter Link-Preview-Generierung, Telethon-basiertem Telegram-Scraping und KI-gestützter Inhaltsbewertung für automatisierte Tweet-Generierung.
🚀 Asynchrone Link-Previews - Sofortige Website-Snippets durch Pre-Generation beim Scraping
⚡ Telethon User Client - Vollzugriff auf Telegram-Kanäle ohne Bot-Limitierungen
🎯 Smart Spam-Filter - AI-Training durch Favorite/Spam-Klassifikation
📱 Mobile-First Design - Optimiert für Smartphone-Nutzung mit Bootstrap 5
🔄 Realtime-Updates - Background-Tasks für kontinuierliche Content-Aggregation
https://news.2b6.de - News Aggregator Live-Demo
- Docker & Docker-Compose
- Git
- Nginx (für Domain-Setup)
- Telegram Account (für Telethon-Setup)
# Repository klonen
git clone https://github.com/MatthiasHertel21/ticker.git
cd ticker
# Umgebungsvariablen setzen
cp .env.example .env
# .env Datei mit API-Keys bearbeiten (Telegram API ID/Hash, OpenAI Key)
# Container starten (Port 5020)
docker-compose up -d
# App testen
curl http://localhost:5020/health
# Telethon-Setup (einmalig)
# 1. Gehe zu http://localhost:5020/telegram/auth
# 2. Gib deine Telegram-Telefonnummer ein
# 3. Bestätige mit dem SMS-Code
# 4. Bei 2FA: Gib dein Cloud-Passwort ein# Nginx-Konfiguration installieren
sudo cp nginx/news.2b6.de.conf /etc/nginx/sites-available/
sudo ln -s /etc/nginx/sites-available/news.2b6.de.conf /etc/nginx/sites-enabled/
# SSL-Pfade in nginx/news.2b6.de.conf anpassen, dann:
sudo nginx -t
sudo systemctl reload nginx- Backend: Flask 2.3.3, Celery, OpenAI GPT
- Frontend: Mobile-First HTML5/CSS3/JS ES6+, Bootstrap 5
- Scraping: Telethon (User Client), Beautiful Soup 4.12.2
- Link-Previews: oEmbed APIs + Meta-Tag Parsing
- Datenhaltung: JSON-Dateien (Thread-sicher)
- Queue: Redis für Background-Tasks
- Container: Docker-Compose (Port 5020)
- APIs: Telethon User API, Twitter API v2
- Domain: news.2b6.de (Nginx Reverse Proxy)
- Telegram-Kanäle: Automatisches Monitoring definierter Channels
- Alternative Medien: apollo-news, reitschuster, tichyseinblick, etc.
- RSS-Feeds: Nachrichtenportale und Blogs
- Twitter-Accounts: Öffentliche Profile überwachen
- Relevanz-Score: OpenAI GPT bewertet Artikel-Relevanz
- Sentiment-Analyse: Automatische Einordnung der Stimmung
- Lernendes System: Feedback durch Swipe-Gesten
- Tag-System: Automatische und manuelle Kategorisierung
- Swipe-Navigation: Links/Rechts für schnelle Bewertung
- Touch-optimiert: Große Buttons, einfache Navigation
- Responsive Design: Optimiert für Smartphone-Nutzung
- Offline-fähig: Service Worker für wichtige Inhalte
- KI-Entwürfe: Automatische Tweet-Generierung mit OpenAI
- Format: Text + Bild + Link
- Vorschau: Mobile-optimierte Tweet-Ansicht
- Export: Entwürfe für manuelles Posten
- Standard HTML-Scraping: 10-30 Sekunden pro URL
- oEmbed-APIs: 1-3 Sekunden pro URL (YouTube, Twitter, etc.)
- Quick Meta-Tags: 2-5 Sekunden pro URL
- Asynchrone Generation: ⚡ 0 Sekunden Wartezeit für Benutzer
- Bot API: Limitiert auf öffentliche Kanäle, Rate-Limits
- Telethon User Client: Alle Kanäle, höhere Rate-Limits, Medien-Support
- Duplikat-Filter: 99.9% Duplikat-Vermeidung durch Message-IDs
- Realtime-Updates: Priorisierung von Nachrichten der letzten Stunde
✅ Telethon User Client - Vollzugriff auf Telegram-Kanäle
✅ Asynchrone Link-Previews - oEmbed + Meta-Tag Parsing
✅ Favorite/Spam-Klassifikation - AI-Training Data Collection
✅ Mobile-First UI - Bootstrap 5 responsive Design
✅ Performance-Optimiert - Keine Wartezeiten bei Link-Previews
✅ Background-Tasks - Celery für kontinuierliche Content-Aggregation
✅ Media-Extraktion - Automatisches Speichern von Telegram-Medien
✅ Smart Content-Parsing - Intelligente URL-Extraktion und -Bereinigung
🔄 In Entwicklung: Telethon-Integration in Background-Tasks
🔄 Geplant: Twitter API v2 Integration für Tweet-Generierung
# Container neu bauen
docker-compose build
# Logs anzeigen
docker-compose logs webapp
# In Container-Shell
docker-compose exec webapp bash
# Tests ausführen (später)
docker-compose exec webapp pytest# Virtual Environment
python -m venv venv
source venv/bin/activate
# Dependencies installieren
pip install -r requirements.txt
# Entwicklungsserver (Port 5020)
export FLASK_ENV=development
export DATA_DIR=./data
python run.py# Repository von GitHub klonen
git clone https://github.com/MatthiasHertel21/ticker.git
# Neuen Branch erstellen
git checkout -b feature/telegram-integration
# Changes committen
git add .
git commit -m "Add Telegram integration"
# Push to GitHub
git push origin feature/telegram-integration# Datenbank-Migration erstellen
flask db migrate -m "Beschreibung"
# Migration anwenden
flask db upgrade
# Shell für Debugging
flask shell
# Entwicklungsserver mit Debug-Modus
export FLASK_ENV=development
python run.pyErstelle eine .env Datei mit folgenden Variablen:
# Flask App
FLASK_APP=run.py
FLASK_ENV=development
SECRET_KEY=your-secret-key-here
# JSON Data Directory
DATA_DIR=/app/data
# OpenAI
OPENAI_API_KEY=your-openai-api-key
# Telegram Bot
TELEGRAM_BOT_TOKEN=your-telegram-bot-token
# Twitter (optional)
TWITTER_BEARER_TOKEN=your-twitter-bearer-token
# Redis
REDIS_URL=redis://redis:6379/0
# Celery
CELERY_BROKER_URL=redis://redis:6379/0
CELERY_RESULT_BACKEND=redis://redis:6379/0# Production Build
docker-compose -f docker-compose.yml up -d
# Mit Nginx Reverse Proxy
sudo systemctl status nginx
curl https://news.2b6.de/health- ✅ Phase 1 Basis: Docker-Setup, JSON-Datenhaltung
- 🔄 Phase 2 In Arbeit: Telegram-Integration
- ⏳ Phase 3 Geplant: KI-Integration und Bewertung
- ⏳ Phase 4 Geplant: Tweet-Generator
- Bot bei @BotFather erstellen:
/newbot - Token in
.enveintragen:TELEGRAM_BOT_TOKEN=your-token - Bot zu gewünschten Channels hinzufügen
- API-Key bei OpenAI besorgen
- In
.envkonfigurieren:OPENAI_API_KEY=sk-your-key - Usage Limits beachten
- URL: https://github.com/MatthiasHertel21/ticker
- Issues: Feature-Requests und Bug-Reports
- Wiki: Detaillierte Dokumentation
data/sources.json: Nachrichtenquellen-Konfigurationdata/articles.json: Gesammelte Artikel mit Metadatendata/tags.json: Tag-System und Lernalgorithmusdata/tweets.json: Tweet-Entwürfe und Templatesdata/settings.json: App-Konfigurationdata/backups/: Automatische Backups
from app.data import json_manager
# Artikel hinzufügen
article_id = json_manager.add_item('articles', {
'title': 'Artikel Titel',
'content': 'Artikel Inhalt...',
'source_id': 'source_123',
'relevance_score': 0.85
})
# Artikel suchen
articles = json_manager.search('articles', {
'relevance_score': 0.8,
'source_id': 'telegram_channel_1'
})
# Backup erstellen
json_manager._create_backup('articles')# Konfiguration kopieren
sudo cp nginx/news.2b6.de.conf /etc/nginx/sites-available/
# Site aktivieren
sudo ln -s /etc/nginx/sites-available/news.2b6.de.conf /etc/nginx/sites-enabled/
# SSL-Zertifikat anpassen (in der Konfiguration)
# ssl_certificate /path/to/your/cert.pem;
# ssl_certificate_key /path/to/your/key.pem;
# Nginx testen und neu laden
sudo nginx -t
sudo systemctl reload nginxStelle sicher, dass news.2b6.de auf deinen Server zeigt.
- Unit Tests für alle Modelle und Utilities
- Integration Tests für Routes und Forms
- Coverage-Reports für Code-Qualität
- Automatisierte Tests mit GitHub Actions
- Concept.md - Detailliertes Projektkonzept
- NGINX_SETUP.md - Nginx-Konfiguration für news.2b6.de
- GitHub Repository - Source Code & Issues
- Repository forken: https://github.com/MatthiasHertel21/ticker
- Feature Branch erstellen (
git checkout -b feature/amazing-feature) - Changes committen (
git commit -m 'Add amazing feature') - Branch pushen (
git push origin feature/amazing-feature) - Pull Request erstellen
MIT License - siehe LICENSE für Details.
Live-Status: 🟢 Entwicklung aktiv | Domain: news.2b6.de | Port: 5020