122 lines
3.4 KiB
Markdown
122 lines
3.4 KiB
Markdown
# 📰 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
|
||
|
||
1. Ein SSH-Key (z. B. `~/.ssh/id_ed25519`) ist generiert:
|
||
|
||
```bash
|
||
ssh-keygen -t ed25519 -C "deine@email.de"
|
||
```
|
||
|
||
2. Key bei GitHub an zwei Stellen hinterlegen:
|
||
* 🔏 Signing Keys (für Commit-Signatur)
|
||
* 🔐 SSH Keys (für Git-Push/Pull)
|
||
|
||
3. Git-Konfiguration
|
||
|
||
```bash
|
||
git config --global gpg.format ssh
|
||
git config --global user.signingkey ~/.ssh/id_ed25519.pub
|
||
git config --global commit.gpgsign true
|
||
```
|
||
|
||
4. Optional: SSH config zur Sicherheit:
|
||
|
||
```bash
|
||
# ~/.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 --level minor --push
|
||
```
|
||
|
||
* Wählt automatisch SSH oder GPG zur Signatur
|
||
* Optional --no-sign, um ohne Signatur zu arbeiten
|
||
---
|
||
|
||
## ⚙️ Installation
|
||
|
||
```bash
|
||
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
|
||
|