| .github | ||
| data | ||
| logs | ||
| pages | ||
| utils | ||
| .gitignore | ||
| __version__.py | ||
| app.py | ||
| CHANGELOG.md | ||
| LICENCE | ||
| main.py | ||
| README.md | ||
| requirements.txt | ||
| test_checklist.md | ||
| versioning.py | ||
📰 RSS News Bot
Ein intelligentes Tool zum Einlesen, Umschreiben und Veröffentlichen von Artikeln aus RSS-Feeds – mit automatischer Tag-Erkennung, KI-unterstütztem Rewrite via GPT-4, Bildextraktion aus Originalartikeln und optionaler DALL·E-Bildgenerierung.
🚀 Features
- 📡 RSS-Feeds verwalten (hinzufügen, aktualisieren)
- ✍️ Artikel automatisch umschreiben mit GPT-4
- 🏷️ Tags automatisch generieren
- 🖼️ Bilder aus Originalartikeln extrahieren
- 🪄 Optionales DALL·E-Bild generieren
- 🔧 Bearbeiten von Bildmetadaten
- 🗂️ Statusverwaltung der Artikel (New, Rewrite, Process, etc.)
- 📜 Log-Viewer-Seite integriert
- 📥 Export zur Veröffentlichung auf WordPress vorbereitet
- 📋 Artikeltabelle mit Status-Filter
- 🔍 Artikel-Expander mit Rewrite, Tags & Bildern
- 🪄 Button für KI-Bildgenerierung
🧱 Projektstruktur
ss-news/ ├── app.py # Haupt-UI mit Streamlit ├── main.py # Logik für Feed-Import und Verarbeitung ├── utils/ │ └── image_extractor.py # Bilder aus Originalartikeln extrahieren │ └── dalle_generator.py # DALL·E-Integration (KI-Bild) ├── pages/ │ └── log_viewer.py # UI zur Anzeige der Logs ├── data/ │ └── articles.json # Gespeicherte Artikel │ └── feeds.json # Gespeicherte Feed-URLs ├── logs/ │ └── rss_tool.log # Logging der Verarbeitung ├── versioning.py # CLI-Tool zur Versionierung & Release ├── TEST-CHECKLIST.md # Manuelle Prüfliste für Releases ├── version.py # Aktuelle Version └── CHANGELOG.md # Änderungsprotokoll
🔐 Signierte Commits und Tags
Dieses Projekt unterstützt signierte Commits und Tags über SSH (alternativ GPG). GitHub zeigt für signierte Beiträge ein ✅ Verified-Badge an.
🛠 Voraussetzungen
-
Ein SSH-Key (z. B.
~/.ssh/id_ed25519) ist generiert:ssh-keygen -t ed25519 -C "deine@email.de" -
Key bei GitHub an zwei Stellen hinterlegen:
- 🔏 Signing Keys (für Commit-Signatur)
- 🔐 SSH Keys (für Git-Push/Pull)
-
Git-Konfiguration
git config --global gpg.format ssh git config --global user.signingkey ~/.ssh/id_ed25519.pub git config --global commit.gpgsign true -
Optional: SSH config zur Sicherheit:
# ~/.ssh/config Host github.com HostName github.com User git IdentityFile ~/.ssh/id_ed25519 IdentitiesOnly yes
🧰 Nutzung von versioning.py Die Datei versioning.py automatisiert:
* ⬆️ Versionsnummer erhöhen
* 📄 CHANGELOG.md und __version__.py aktualisieren
* 🔒 Commit signieren (SSH oder GPG)
* 🏷 Git-Tag signieren
* ⬆️ Push zu GitHub
Beispiel:
```bash
python versioning.py create --level minor --push
```
- Wählt automatisch SSH oder GPG zur Signatur
- Optional --no-sign, um ohne Signatur zu arbeiten
⚙️ Installation
git clone https://github.com/OliverGiertz/rss-news.git
cd rss-news
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
▶️ Starten der App
streamlit run app.py