1226 lines
46 KiB
Markdown
1226 lines
46 KiB
Markdown
## [1.7.1] - 2025-08-24
|
||
|
||
### ✨ Security angepasst
|
||
- alle Credentials in die .env Datei verschoben
|
||
- beim Start der App werden die Credentials geprüft und beim fehlen entsprechende Meldungen ausgegeben
|
||
|
||
---
|
||
|
||
## [1.7.0] - 2025-08-24
|
||
|
||
### Multi-Select & Massenoperationen:
|
||
- ✅ Checkboxes für Artikel-Auswahl im "Artikel verwalten" Bereich
|
||
- ✅ "Alle auswählen" / "Auswahl aufheben" Buttons
|
||
- ✅ Massenoperationen für ausgewählte Artikel:
|
||
- Bulk Status-Änderung für mehrere Artikel gleichzeitig
|
||
- Bulk Artikel-Umschreibung mit automatischer Status-Verwaltung
|
||
- Bulk WordPress-Upload nur für "Process"-Artikel
|
||
- Bulk Papierkorb-Funktion
|
||
|
||
### Schnellaktionen Integration:
|
||
- ✅ Feed-Aktualisierung direkt im Artikel-Tab verfügbar
|
||
- ✅ Alle Dashboard-Schnellaktionen in Artikel-Verwaltung integriert
|
||
- ✅ Intelligente Anzeige nur relevanter Operationen (z.B. WordPress-Upload nur bei Process-Artikeln)
|
||
|
||
### 🔧 Verbesserungen
|
||
|
||
- UI/UX: Verbesserte Artikel-Card-Layouts mit Checkbox-Integration
|
||
- Workflow: Streamlined Artikel-Management ohne Tab-Wechsel nötig
|
||
- Feedback: Detaillierte Statusmeldungen bei Massenoperationen
|
||
- Performance: Optimierte Session-State-Verwaltung für Artikel-Auswahl
|
||
|
||
### 🏗️ Technische Änderungen
|
||
|
||
- Session State Erweiterung um selected_articles Set
|
||
- Neue Bulk-Operation-Funktionen in app.py:326-467
|
||
- Überarbeitetes Artikel-Card-Layout mit 3-Spalten-Design
|
||
- Integration bestehender WordPress-Upload und Rewrite-Funktionen
|
||
|
||
---
|
||
|
||
## [1.6.3] - 2025-08-18
|
||
|
||
### 🔧 Verbesserungen
|
||
- **SyleSheet erneut hinzugefügt
|
||
- Style wurde bei einem Release leider vergessen
|
||
- Style auf DarkMode angepasst
|
||
|
||
---
|
||
|
||
## [v1.6.2] - 2025-08-16
|
||
|
||
### 🐛 Kritische Fehlerbehebung
|
||
|
||
- **WordPress-Tag-Upload-Fehler behoben:**
|
||
- WordPress REST API benötigt Tag-IDs statt Tag-Namen im `tags`-Parameter
|
||
- Neue Funktion `_get_or_create_tags()` ermittelt existierende Tag-IDs oder erstellt neue Tags
|
||
- Automatische Tag-Erstellung wenn Tags nicht existieren
|
||
- Robuste Fehlerbehandlung für Tag-Verarbeitungsfehler
|
||
|
||
### 🔧 Verbesserungen
|
||
|
||
- **Erweiterte Fehleranalyse:**
|
||
- Detaillierte Logging-Ausgaben für Post-Daten bei Fehlern
|
||
- Spezielle Behandlung von Tag-Parameter-Fehlern
|
||
- JSON-formatierte Debug-Ausgaben für bessere Fehleranalyse
|
||
|
||
- **Tag-Management:**
|
||
- Suche nach existierenden Tags mit exakter Namensübereinstimmung
|
||
- Automatische Erstellung fehlender Tags über WordPress REST API
|
||
- Tag-IDs werden korrekt im Post-Daten-Objekt verwendet
|
||
- Leere/ungültige Tags werden übersprungen
|
||
|
||
### 🛠 Technische Details
|
||
|
||
- Tag-Verarbeitung erfolgt vor Post-Erstellung
|
||
- WordPress `/wp-json/wp/v2/tags` Endpoint für Tag-Management
|
||
- Fallback-Verhalten bei Tag-Erstellungsfehlern
|
||
- Verbesserte Logging-Ausgaben für Tag-Operationen
|
||
|
||
---
|
||
|
||
## [v1.6.1] - 2025-08-16
|
||
|
||
### 💡 Neue Funktionen
|
||
|
||
- **WordPress-Integration** implementiert:
|
||
- Vollständige WordPress REST API-Anbindung über `utils/wordpress_uploader.py`
|
||
- **Base64-Authentifizierung** mit Authorization Header (wie von WordPress API benötigt)
|
||
- Neuer Status "WordPress Pending" für hochgeladene Artikel
|
||
- Artikel mit Status "Process" können einzeln oder als Batch zu WordPress hochgeladen werden
|
||
- Automatische Duplikatserkennung basierend auf Titel-Übereinstimmung
|
||
- Meta-Felder werden gesetzt (RSS-Quelle, Original-Link, Import-Datum, RSS-Artikel-ID)
|
||
|
||
- **Erweiterte UI-Funktionen**:
|
||
- Neuer Tab "WordPress" mit Verbindungstest und Konfigurationsübersicht
|
||
- WordPress-Upload-Buttons in der Artikel-Übersicht (einzeln und global)
|
||
- WordPress-Artikel-Statistiken im Dashboard und Statistiken-Tab
|
||
- Detaillierte Upload-Ergebnisse mit Erfolgs-/Fehlerstatistiken
|
||
- Debug-Modus für Auth-Details (Entwicklung)
|
||
|
||
- **Verbesserte Artikel-Verwaltung**:
|
||
- WordPress Post ID und Upload-Datum werden in Artikeln gespeichert
|
||
- Status-Workflow: New → Rewrite → Process → WordPress Pending → Online
|
||
- Anzeige von WordPress-Informationen in der Artikel-Detailansicht
|
||
|
||
### 🔧 Verbesserungen
|
||
|
||
- **Korrekte WordPress-API-Authentifizierung**:
|
||
- Unterstützung für bereitgestellten Base64-Auth-String (`WP_AUTH_BASE64`)
|
||
- Fallback auf automatische Base64-Generierung aus Username/Password
|
||
- Authorization Header im korrekten Format: `Basic <base64_credentials>`
|
||
- Erweiterte Debug-Ausgaben für Authentifizierung
|
||
|
||
- **Robuste Fehlerbehandlung**:
|
||
- Ausführliches Logging für alle WordPress-Operationen inkl. Auth-Details
|
||
- Retry-Mechanismus mit exponential backoff bei Netzwerkfehlern
|
||
- Detaillierte Fehlermeldungen für verschiedene HTTP-Status-Codes (401, 403, etc.)
|
||
- Verbindungstest vor Upload-Operationen mit Auth-Verifikation
|
||
|
||
- **Erweiterte WordPress-API-Funktionen**:
|
||
- Automatische Ermittlung der Standard-Kategorie "Allgemein"
|
||
- Session-basierte HTTP-Verbindungen für bessere Performance
|
||
- Unterstützung für WordPress-Meta-Felder zur Nachverfolgung
|
||
- Berücksichtigung verschiedener WordPress-Authentifizierungsfehler
|
||
|
||
- **UI/UX-Verbesserungen**:
|
||
- Neuer Status-Badge für "WordPress Pending" mit eigenem Styling
|
||
- Dashboard zeigt WordPress-spezifische Statistiken
|
||
- Konfigurationshilfen und .env-Vorlagen im WordPress-Tab
|
||
- Massenupload-Funktionalität mit Progress-Feedback
|
||
- Base64-Auth-Status in Konfigurationsübersicht
|
||
|
||
### 🛠 Interne Änderungen
|
||
|
||
- `main.py` erweitert um `upload_articles_to_wp()` Funktion
|
||
- `VALID_STATUSES` um "WordPress Pending" erweitert
|
||
- Neue Umgebungsvariable `WP_AUTH_BASE64` für direkte Base64-Authentifizierung
|
||
- Erweiterte Artikel-Datenstruktur um WordPress-spezifische Felder
|
||
- Session-Management für HTTP-Verbindungen implementiert
|
||
- Base64-Authentifizierung mit Fallback-Mechanismus
|
||
|
||
### 📁 Neue Dateien
|
||
|
||
- `utils/wordpress_uploader.py` - Vollständige WordPress REST API-Integration mit Base64-Auth
|
||
- Erweiterte `.env`-Vorlage mit WordPress-Konfiguration inkl. Base64-String
|
||
|
||
### 🔒 Sicherheit
|
||
|
||
- WordPress-Credentials werden sicher über Umgebungsvariablen verwaltet
|
||
- Base64-Auth über Anwendungspasswort (sicherer als Haupt-Login)
|
||
- Keine sensiblen Daten in Logs oder Fehlermeldungen
|
||
- Authorization Header im WordPress-Standard-Format
|
||
|
||
### 📋 Authentifizierungs-Setup
|
||
|
||
**Bereitgestellte Konfiguration:**
|
||
```bash
|
||
WP_AUTH_BASE64=b2dpZXJ0ejp3aE5FeDlhWkNJVVhWaVY4OVozZTdaMDM=
|
||
# Dekodiert: ogiertz:whNEx9aZCIUXViV89Z3e7Z03
|
||
```
|
||
|
||
**Authorization Header:**
|
||
```
|
||
Authorization: Basic b2dpZXJ0ejp3aE5FeDlhWkNJVVhWaVY4OVozZTdaMDM=
|
||
```
|
||
|
||
---
|
||
|
||
## [v1.5.3] - 2025-07-11
|
||
|
||
### 💡 Neue Funktionen
|
||
|
||
- **WordPress-Integration** implementiert:
|
||
- Vollständige WordPress REST API-Anbindung über `utils/wordpress_uploader.py`
|
||
- Neuer Status "WordPress Pending" für hochgeladene Artikel
|
||
- Artikel mit Status "Process" können einzeln oder als Batch zu WordPress hochgeladen werden
|
||
- Automatische Duplikatserkennung basierend auf Titel-Übereinstimmung
|
||
- Meta-Felder werden gesetzt (RSS-Quelle, Original-Link, Import-Datum, RSS-Artikel-ID)
|
||
|
||
- **Erweiterte UI-Funktionen**:
|
||
- Neuer Tab "WordPress" mit Verbindungstest und Konfigurationsübersicht
|
||
- WordPress-Upload-Buttons in der Artikel-Übersicht (einzeln und global)
|
||
- WordPress-Artikel-Statistiken im Dashboard und Statistiken-Tab
|
||
- Detaillierte Upload-Ergebnisse mit Erfolgs-/Fehlerstatistiken
|
||
|
||
- **Verbesserte Artikel-Verwaltung**:
|
||
- WordPress Post ID und Upload-Datum werden in Artikeln gespeichert
|
||
- Status-Workflow: New → Rewrite → Process → WordPress Pending → Online
|
||
- Anzeige von WordPress-Informationen in der Artikel-Detailansicht
|
||
|
||
### 🔧 Verbesserungen
|
||
|
||
- **Robuste Fehlerbehandlung**:
|
||
- Ausführliches Logging für alle WordPress-Operationen
|
||
- Retry-Mechanismus mit exponential backoff bei Netzwerkfehlern
|
||
- Detaillierte Fehlermeldungen für verschiedene HTTP-Status-Codes
|
||
- Verbindungstest vor Upload-Operationen
|
||
|
||
- **Erweiterte WordPress-API-Funktionen**:
|
||
- Automatische Ermittlung der Standard-Kategorie "Allgemein"
|
||
- Session-basierte HTTP-Verbindungen für bessere Performance
|
||
- Unterstützung für WordPress-Meta-Felder zur Nachverfolgung
|
||
- Berücksichtigung verschiedener WordPress-Authentifizierungsfehler
|
||
|
||
- **UI/UX-Verbesserungen**:
|
||
- Neuer Status-Badge für "WordPress Pending" mit eigenem Styling
|
||
- Dashboard zeigt WordPress-spezifische Statistiken
|
||
- Konfigurationshilfen und .env-Vorlagen im WordPress-Tab
|
||
- Massenupload-Funktionalität mit Progress-Feedback
|
||
|
||
### 🛠 Interne Änderungen
|
||
|
||
- `main.py` erweitert um `upload_articles_to_wp()` Funktion
|
||
- `VALID_STATUSES` um "WordPress Pending" erweitert
|
||
- Neue Umgebungsvariablen für WordPress-Konfiguration
|
||
- Erweiterte Artikel-Datenstruktur um WordPress-spezifische Felder
|
||
- Session-Management für HTTP-Verbindungen implementiert
|
||
|
||
### 📁 Neue Dateien
|
||
|
||
- `utils/wordpress_uploader.py` - Vollständige WordPress REST API-Integration
|
||
- Erweiterte `.env`-Vorlage mit WordPress-Konfiguration
|
||
|
||
### 🔒 Sicherheit
|
||
|
||
- WordPress-Credentials werden sicher über Umgebungsvariablen verwaltet
|
||
- Basic Auth über Anwendungspasswort (sicherer als Haupt-Login)
|
||
- Keine sensiblen Daten in Logs oder Fehlermeldungen
|
||
|
||
---
|
||
|
||
## [v1.5.3] - 2025-07-11
|
||
|
||
### ✨ Neue Funktionen
|
||
|
||
- Automatischer Volltextabruf bei zu kurzen Artikeln (< 50 Wörter)
|
||
- Inhalte werden direkt von der Originalseite geladen (ähnlich wie bei der Bildextraktion)
|
||
- Promobil, Camping-News und andere gängige WordPress-Seiten werden unterstützt
|
||
|
||
- Neue Verwaltungsseite `Feed-Verwaltung` unter `pages/01_feed_manager.py`
|
||
- RSS-Feeds können nun über eine dedizierte Oberfläche hinzugefügt, bearbeitet und gelöscht werden
|
||
- Anzahl verknüpfter Artikel pro Feed wird angezeigt
|
||
- Änderungen werden protokolliert und per `st.rerun()` sofort sichtbar
|
||
|
||
### 🔧 Verbesserungen
|
||
|
||
- Feed-Filter in der Artikelübersicht zeigt jetzt die **korrekten Feed-Namen mit Artikelanzahl**
|
||
- Beispiel: „Promobil News (12)" statt nur „Alle (20)"
|
||
- Basierend auf `source`-Feld im Artikelobjekt
|
||
|
||
- Verbesserte Logging-Ausgaben bei Feed-Aktionen (hinzufügen, ändern, löschen)
|
||
|
||
### 📁 Neue Dateien
|
||
|
||
- `utils/article_extractor.py` – Logik zum Abrufen vollständiger Artikeltexte von Originalseiten
|
||
- `pages/01_feed_manager.py` – Eigenständige Verwaltungsseite für RSS-Feeds
|
||
|
||
### 🛠 Interne Änderungen
|
||
|
||
- `main.py` erweitert: Automatischer Fallback auf `extract_full_article()` bei zu kurzem Text
|
||
- Logging konsolidiert und mit Feed-Aktionen ergänzt
|
||
|
||
## [v1.5.2] - 2025-07-09
|
||
|
||
- Fehlerbehandlung bei `CHANGELOG.md`-Doppelungen hinzugefügt
|
||
- Signaturlogik robuster (SSH, GPG, fallback)
|
||
- Farbige Terminalausgabe verbessert
|
||
- dry-run Argument hinzugefügt:
|
||
* Versionsnummer wird berechnet ✅
|
||
* Änderungen (Version, Changelog, Commit, Tag, Push) werden nur angezeigt, nicht ausgeführt ✅
|
||
* Ausgabe erfolgt farbig und klar gegliedert ✅
|
||
|
||
## [1.5.1] - 2025-07-09
|
||
|
||
SSH-Commit-Signatur in versioning.py eingebaut
|
||
Automatischer Fallback auf GPG oder keine Signatur
|
||
Farbige Terminalausgabe zur Signaturmethode
|
||
Readme erweitert mit Setup-Anleitung
|
||
|
||
## [v1.5.0] – 2025-07-08
|
||
|
||
### 💡 Neue Funktionen
|
||
- 🪄 DALL·E-Bildgenerierung per Button direkt im Artikel-Expander
|
||
- Automatische Metadaten (Caption, Copyright, Quelle) für KI-generierte Bilder
|
||
|
||
### 🔧 Änderungen & Fixes
|
||
- 🔒 Kritischer Bugfix: Artikel gingen nach DALL·E oder Rewrite verloren → jetzt sichere `save_articles()`-Logik über alle Artikel
|
||
- Status-Änderungen, Rewrite und Bilderfassung überschreiben nicht mehr die Gesamtdatei
|
||
- Kein `st.rerun()` mehr nach jedem Klick – flüssiger Workflow
|
||
|
||
### 📦 Internes
|
||
- Neue Datei `utils/dalle_generator.py` für DALL·E-Integration
|
||
- Erweiterung der Teststrategie um strukturierte `TEST-CHECKLIST.md`
|
||
- Verbesserte Update-Strategie für Einzelartikel bei Bearbeitung
|
||
|
||
## [v1.4.8] – 2025-07-07
|
||
|
||
### 💡 Neue Funktionen
|
||
-
|
||
|
||
### 🔧 Änderungen & Fixes
|
||
- Fehlerbehebung bei neuen Release, CHANGELOG wurde nicht angehangen, es wird nun die gesamte Datei übernommen
|
||
|
||
### 📦 Internes
|
||
-
|
||
|
||
## [v1.4.7] – 2025-07-07
|
||
|
||
### 💡 Neue Funktionen
|
||
- Automatischer Release-Workflow bei `git tag v*`
|
||
- Release-Text aus `CHANGELOG.md` wird extrahiert und als GitHub Release verwendet
|
||
|
||
### 🔧 Änderungen & Fixes
|
||
- Fehlerbehebung bei neuen Release, CHANGELOG wurde nicht angehangen
|
||
|
||
### 📦 Internes
|
||
- Erweiterte `release.yml` zur zuverlässigen Release-Erstellung
|
||
- GitHub Actions mit `softprops/action-gh-release`
|
||
|
||
## [v1.4.6] – 2025-07-07
|
||
|
||
### 💡 Neue Funktionen
|
||
- Automatischer Release-Workflow bei `git tag v*`
|
||
- Release-Text aus `CHANGELOG.md` wird extrahiert und als GitHub Release verwendet
|
||
|
||
### 🔧 Änderungen & Fixes
|
||
- Fehlerbehebung bei Bilddatenextraktion
|
||
- Erweiterung von `versioning.py` um automatische Tag-Erstellung und Push
|
||
|
||
### 📦 Internes
|
||
- Erweiterte `release.yml` zur zuverlässigen Release-Erstellung
|
||
- GitHub Actions mit `softprops/action-gh-release`
|
||
|
||
## [v1.4.5] – 2025-07-07
|
||
|
||
### 💡 Neue Funktionen
|
||
- Umstellung des versioning.py-Skripts auf eine moderne Typer-CLI:
|
||
- create zum Erstellen neuer Versionen mit Level und Push-Option
|
||
- rollback zum Zurücknehmen der letzten Version
|
||
- list zur Anzeige aller Versionen im CHANGELOG.md
|
||
- Validierung, ob der CHANGELOG.md-Eintrag vor Release wirklich ausgefüllt wurde
|
||
- Interaktive CLI-Prompts zur besseren Benutzerführung
|
||
|
||
### 🔧 Änderungen & Fixes
|
||
- versioning.py ersetzt bisherige manuelle Menüs durch Typer-Kommandos
|
||
- requirements.txt um typer[all]==0.12.3 ergänzt
|
||
|
||
### 📦 Internes
|
||
- Vorbereitung für globale CLI-Nutzung (versioning als Befehl möglich)
|
||
- Automatisierung des Release-Prozesses mit GitHub Actions weiterhin vorbereitet
|
||
|
||
## [v1.4.4] – 2025-07-07
|
||
|
||
### 💡 Neue Funktionen
|
||
-
|
||
|
||
### 🔧 Änderungen & Fixes
|
||
-
|
||
|
||
### 📦 Internes
|
||
- automatische Versionierung eingebunden und direktes GitHub puschen der Änderungen
|
||
|
||
- ## [v1.4.3] – 2025-07-07
|
||
|
||
### 💡 Neue Funktionen
|
||
- ⚠️ Visuelle Warnanzeige in der Artikeltabelle für unvollständige Bildmetadaten (fehlende Caption, Copyright oder Quelle)
|
||
- ✍️ Inline-Bearbeitung von Bilddaten (Caption, Copyright, Quelle) direkt in der Detailansicht
|
||
- 🪵 Neue separate Seite `Log-Viewer` zur Anzeige der letzten Log-Einträge (automatisch über `pages/log_viewer.py`)
|
||
- 📂 Startfilter für Artikelansicht auf „New" voreingestellt für fokussierten Workflow
|
||
|
||
### 🔧 Änderungen & Fixes
|
||
- ✅ Artikel aus Feeds überschreiben bestehende Artikel **nicht mehr** – Status, Tags und andere manuelle Änderungen bleiben erhalten
|
||
- 🧹 `get_recent_logs()` wurde entfernt und die Sidebar-Logausgabe aus `app.py` entfernt
|
||
- 🔗 Sidebar-Link zur Log-Seite hinzugefügt (mittlerweile durch native Seiten-Navigation ersetzt)
|
||
- 🧭 Navigation durch Nutzung von Streamlit-Multipage-Struktur (`pages/`)
|
||
|
||
### 📦 Internes
|
||
- Refactoring von `process_articles()` zur sicheren ID-basierten Artikelzusammenführung
|
||
- Verbesserte Logging-Ausgabe bei bereits vorhandenen Artikeln
|
||
- Robusteres Fehlerhandling in `image_extractor.py`
|
||
|
||
## [v1.4.2] – 2025-07-03
|
||
|
||
### 💡 Neue Funktionen
|
||
- Komplett überarbeitete Artikel-Tabelle mit:
|
||
- Auswahlcheckboxen
|
||
- Inline-Statuswechsel mit Dropdown
|
||
- Wortanzahl, Tag-Anzeige, Datum kompakt
|
||
- Copy-to-Clipboard Funktion für Titel, Text und Tags
|
||
- Bildanzeige inkl. Caption und Copyright-Quelle im Detailbereich
|
||
- Titel wird automatisch beim Kopieren des Texts vorangestellt
|
||
|
||
### 🔧 Änderungen & Fixes
|
||
- `st.experimental_rerun()` durch `st.rerun()` ersetzt
|
||
- Statusfilter „Alle" funktioniert jetzt korrekt
|
||
- UI-Tuning für bessere Lesbarkeit
|
||
- Feedliste aus der Sidebar entfernt
|
||
- Fix: Bilddaten ohne Caption verursachen keine Fehler mehr
|
||
- Artikelüberschriften korrekt in Kopiertext eingebaut
|
||
|
||
### 📦 Internes
|
||
- Logging bleibt aktiv im Verzeichnis `/logs`
|
||
- Vorbereitung für Bildquellen-Import aus Original-Artikel umgesetzt
|
||
|
||
## [1.4.1] – 2025-07-03
|
||
### Hinzugefügt
|
||
- Logging für `process_articles()`, damit nachvollziehbar ist, welche Feeds verarbeitet wurden
|
||
- Rückmeldung in der App bei Klick auf „Alle Feeds neu laden"
|
||
|
||
### Geändert
|
||
- `main.py`: Inhalte aus `content`, `summary` oder `description` werden vollständig geladen und mit `BeautifulSoup` bereinigt
|
||
- Sicherstellung, dass `fetch_and_process_feed()` alle relevanten Artikelinformationen vollständig speichert
|
||
|
||
### Fehlerbehebungen
|
||
- Problem behoben, bei dem Artikeltexte nicht vollständig übernommen wurden
|
||
|
||
## [1.3.1] – 2025-07-03
|
||
### Added
|
||
- Tabellenansicht mit Checkbox, Titel, Datum, Zusammenfassung, Wortanzahl, Tags, Status
|
||
- Direktes Bearbeiten des Status über Dropdown-Menü
|
||
- Massenbearbeitung von Artikeln per Checkbox
|
||
- Rewrite-Button für alle Artikel mit Status 'Rewrite'
|
||
|
||
## [1.2.0] - 2025-07-04
|
||
### Hinzugefügt
|
||
- Automatische Bilderkennung beim Einlesen von Artikeln
|
||
- Extrahieren von Bildern aus dem Originalartikel (bis zu 3 Bilder)
|
||
- Speicherung von Bild-URLs, Alt-Texten (Bildbeschreibung) und Copyright-Hinweisen
|
||
- Fehlerbehandlung für nicht erreichbare Seiten
|
||
- Darstellung der Bilder (inkl. Beschreibung & Copyright) in der Artikelansicht
|
||
|
||
### Geändert
|
||
- Bilder werden direkt beim Einlesen eines RSS-Artikels verarbeitet und gespeichert
|
||
- `app.py` zeigt nun auch Bildinformationen innerhalb der Artikeldetailansicht an
|
||
|
||
### Behoben
|
||
- Keine
|
||
|
||
---
|
||
|
||
## [1.1.0] - 2025-07-04
|
||
### Hinzugefügt
|
||
- Visuell aufgewertete Box zur Darstellung eines Artikels mit:
|
||
- Kopierbutton für Titel
|
||
- Kopierbutton für Artikeltext
|
||
- Kopierbutton für Tags
|
||
- Button zum Öffnen des Originalartikels im neuen Tab
|
||
- Artikelansicht ist nun in einer grauen, abgerundeten Box gekapselt
|
||
- Icons unterstützen visuelle Orientierung (📝, 🗌, 📌 etc.)
|
||
|
||
### Geändert
|
||
- Artikelkopierfunktion für WordPress ist nun interaktiv über Buttons möglich
|
||
- HTML-Markup innerhalb von Streamlit für flexibleres Styling
|
||
|
||
### Behoben
|
||
- Keine
|
||
|
||
---
|
||
|
||
## [1.0.0] - 2025-07-03
|
||
### Initialversion
|
||
- Artikel aus RSS-Feeds einlesen
|
||
- Speichern in JSON-Datei
|
||
- Anzeige in Tabelle mit Statusfilter
|
||
- Rewrite per ChatGPT mit Zusammenfassung und Tag-Generierung
|
||
- Exportierbare Inhalte für manuelles Posting auf WordPress
|
||
|
||
---
|
||
|
||
|
||
## [v1.6.1] - 2025-08-16
|
||
|
||
### 💡 Neue Funktionen
|
||
|
||
- **WordPress-Integration** implementiert:
|
||
- Vollständige WordPress REST API-Anbindung über `utils/wordpress_uploader.py`
|
||
- **Base64-Authentifizierung** mit Authorization Header (wie von WordPress API benötigt)
|
||
- Neuer Status "WordPress Pending" für hochgeladene Artikel
|
||
- Artikel mit Status "Process" können einzeln oder als Batch zu WordPress hochgeladen werden
|
||
- Automatische Duplikatserkennung basierend auf Titel-Übereinstimmung
|
||
- Meta-Felder werden gesetzt (RSS-Quelle, Original-Link, Import-Datum, RSS-Artikel-ID)
|
||
|
||
- **Erweiterte UI-Funktionen**:
|
||
- Neuer Tab "WordPress" mit Verbindungstest und Konfigurationsübersicht
|
||
- WordPress-Upload-Buttons in der Artikel-Übersicht (einzeln und global)
|
||
- WordPress-Artikel-Statistiken im Dashboard und Statistiken-Tab
|
||
- Detaillierte Upload-Ergebnisse mit Erfolgs-/Fehlerstatistiken
|
||
- Debug-Modus für Auth-Details (Entwicklung)
|
||
|
||
- **Verbesserte Artikel-Verwaltung**:
|
||
- WordPress Post ID und Upload-Datum werden in Artikeln gespeichert
|
||
- Status-Workflow: New → Rewrite → Process → WordPress Pending → Online
|
||
- Anzeige von WordPress-Informationen in der Artikel-Detailansicht
|
||
|
||
### 🔧 Verbesserungen
|
||
|
||
- **Korrekte WordPress-API-Authentifizierung**:
|
||
- Unterstützung für bereitgestellten Base64-Auth-String (`WP_AUTH_BASE64`)
|
||
- Fallback auf automatische Base64-Generierung aus Username/Password
|
||
- Authorization Header im korrekten Format: `Basic <base64_credentials>`
|
||
- Erweiterte Debug-Ausgaben für Authentifizierung
|
||
|
||
- **Robuste Fehlerbehandlung**:
|
||
- Ausführliches Logging für alle WordPress-Operationen inkl. Auth-Details
|
||
- Retry-Mechanismus mit exponential backoff bei Netzwerkfehlern
|
||
- Detaillierte Fehlermeldungen für verschiedene HTTP-Status-Codes (401, 403, etc.)
|
||
- Verbindungstest vor Upload-Operationen mit Auth-Verifikation
|
||
|
||
- **Erweiterte WordPress-API-Funktionen**:
|
||
- Automatische Ermittlung der Standard-Kategorie "Allgemein"
|
||
- Session-basierte HTTP-Verbindungen für bessere Performance
|
||
- Unterstützung für WordPress-Meta-Felder zur Nachverfolgung
|
||
- Berücksichtigung verschiedener WordPress-Authentifizierungsfehler
|
||
|
||
- **UI/UX-Verbesserungen**:
|
||
- Neuer Status-Badge für "WordPress Pending" mit eigenem Styling
|
||
- Dashboard zeigt WordPress-spezifische Statistiken
|
||
- Konfigurationshilfen und .env-Vorlagen im WordPress-Tab
|
||
- Massenupload-Funktionalität mit Progress-Feedback
|
||
- Base64-Auth-Status in Konfigurationsübersicht
|
||
|
||
### 🛠 Interne Änderungen
|
||
|
||
- `main.py` erweitert um `upload_articles_to_wp()` Funktion
|
||
- `VALID_STATUSES` um "WordPress Pending" erweitert
|
||
- Neue Umgebungsvariable `WP_AUTH_BASE64` für direkte Base64-Authentifizierung
|
||
- Erweiterte Artikel-Datenstruktur um WordPress-spezifische Felder
|
||
- Session-Management für HTTP-Verbindungen implementiert
|
||
- Base64-Authentifizierung mit Fallback-Mechanismus
|
||
|
||
### 📁 Neue Dateien
|
||
|
||
- `utils/wordpress_uploader.py` - Vollständige WordPress REST API-Integration mit Base64-Auth
|
||
- Erweiterte `.env`-Vorlage mit WordPress-Konfiguration inkl. Base64-String
|
||
|
||
### 🔒 Sicherheit
|
||
|
||
- WordPress-Credentials werden sicher über Umgebungsvariablen verwaltet
|
||
- Base64-Auth über Anwendungspasswort (sicherer als Haupt-Login)
|
||
- Keine sensiblen Daten in Logs oder Fehlermeldungen
|
||
- Authorization Header im WordPress-Standard-Format
|
||
|
||
### 📋 Authentifizierungs-Setup
|
||
|
||
**Bereitgestellte Konfiguration:**
|
||
```bash
|
||
WP_AUTH_BASE64=b2dpZXJ0ejp3aE5FeDlhWkNJVVhWaVY4OVozZTdaMDM=
|
||
# Dekodiert: ogiertz:whNEx9aZCIUXViV89Z3e7Z03
|
||
```
|
||
|
||
**Authorization Header:**
|
||
```
|
||
Authorization: Basic b2dpZXJ0ejp3aE5FeDlhWkNJVVhWaVY4OVozZTdaMDM=
|
||
```
|
||
|
||
---
|
||
|
||
## [v1.5.3] - 2025-07-11
|
||
|
||
### 💡 Neue Funktionen
|
||
|
||
- **WordPress-Integration** implementiert:
|
||
- Vollständige WordPress REST API-Anbindung über `utils/wordpress_uploader.py`
|
||
- Neuer Status "WordPress Pending" für hochgeladene Artikel
|
||
- Artikel mit Status "Process" können einzeln oder als Batch zu WordPress hochgeladen werden
|
||
- Automatische Duplikatserkennung basierend auf Titel-Übereinstimmung
|
||
- Meta-Felder werden gesetzt (RSS-Quelle, Original-Link, Import-Datum, RSS-Artikel-ID)
|
||
|
||
- **Erweiterte UI-Funktionen**:
|
||
- Neuer Tab "WordPress" mit Verbindungstest und Konfigurationsübersicht
|
||
- WordPress-Upload-Buttons in der Artikel-Übersicht (einzeln und global)
|
||
- WordPress-Artikel-Statistiken im Dashboard und Statistiken-Tab
|
||
- Detaillierte Upload-Ergebnisse mit Erfolgs-/Fehlerstatistiken
|
||
|
||
- **Verbesserte Artikel-Verwaltung**:
|
||
- WordPress Post ID und Upload-Datum werden in Artikeln gespeichert
|
||
- Status-Workflow: New → Rewrite → Process → WordPress Pending → Online
|
||
- Anzeige von WordPress-Informationen in der Artikel-Detailansicht
|
||
|
||
### 🔧 Verbesserungen
|
||
|
||
- **Robuste Fehlerbehandlung**:
|
||
- Ausführliches Logging für alle WordPress-Operationen
|
||
- Retry-Mechanismus mit exponential backoff bei Netzwerkfehlern
|
||
- Detaillierte Fehlermeldungen für verschiedene HTTP-Status-Codes
|
||
- Verbindungstest vor Upload-Operationen
|
||
|
||
- **Erweiterte WordPress-API-Funktionen**:
|
||
- Automatische Ermittlung der Standard-Kategorie "Allgemein"
|
||
- Session-basierte HTTP-Verbindungen für bessere Performance
|
||
- Unterstützung für WordPress-Meta-Felder zur Nachverfolgung
|
||
- Berücksichtigung verschiedener WordPress-Authentifizierungsfehler
|
||
|
||
- **UI/UX-Verbesserungen**:
|
||
- Neuer Status-Badge für "WordPress Pending" mit eigenem Styling
|
||
- Dashboard zeigt WordPress-spezifische Statistiken
|
||
- Konfigurationshilfen und .env-Vorlagen im WordPress-Tab
|
||
- Massenupload-Funktionalität mit Progress-Feedback
|
||
|
||
### 🛠 Interne Änderungen
|
||
|
||
- `main.py` erweitert um `upload_articles_to_wp()` Funktion
|
||
- `VALID_STATUSES` um "WordPress Pending" erweitert
|
||
- Neue Umgebungsvariablen für WordPress-Konfiguration
|
||
- Erweiterte Artikel-Datenstruktur um WordPress-spezifische Felder
|
||
- Session-Management für HTTP-Verbindungen implementiert
|
||
|
||
### 📁 Neue Dateien
|
||
|
||
- `utils/wordpress_uploader.py` - Vollständige WordPress REST API-Integration
|
||
- Erweiterte `.env`-Vorlage mit WordPress-Konfiguration
|
||
|
||
### 🔒 Sicherheit
|
||
|
||
- WordPress-Credentials werden sicher über Umgebungsvariablen verwaltet
|
||
- Basic Auth über Anwendungspasswort (sicherer als Haupt-Login)
|
||
- Keine sensiblen Daten in Logs oder Fehlermeldungen
|
||
|
||
---
|
||
|
||
## [v1.5.3] - 2025-07-11
|
||
|
||
### ✨ Neue Funktionen
|
||
|
||
- Automatischer Volltextabruf bei zu kurzen Artikeln (< 50 Wörter)
|
||
- Inhalte werden direkt von der Originalseite geladen (ähnlich wie bei der Bildextraktion)
|
||
- Promobil, Camping-News und andere gängige WordPress-Seiten werden unterstützt
|
||
|
||
- Neue Verwaltungsseite `Feed-Verwaltung` unter `pages/01_feed_manager.py`
|
||
- RSS-Feeds können nun über eine dedizierte Oberfläche hinzugefügt, bearbeitet und gelöscht werden
|
||
- Anzahl verknüpfter Artikel pro Feed wird angezeigt
|
||
- Änderungen werden protokolliert und per `st.rerun()` sofort sichtbar
|
||
|
||
### 🔧 Verbesserungen
|
||
|
||
- Feed-Filter in der Artikelübersicht zeigt jetzt die **korrekten Feed-Namen mit Artikelanzahl**
|
||
- Beispiel: „Promobil News (12)" statt nur „Alle (20)"
|
||
- Basierend auf `source`-Feld im Artikelobjekt
|
||
|
||
- Verbesserte Logging-Ausgaben bei Feed-Aktionen (hinzufügen, ändern, löschen)
|
||
|
||
### 📁 Neue Dateien
|
||
|
||
- `utils/article_extractor.py` – Logik zum Abrufen vollständiger Artikeltexte von Originalseiten
|
||
- `pages/01_feed_manager.py` – Eigenständige Verwaltungsseite für RSS-Feeds
|
||
|
||
### 🛠 Interne Änderungen
|
||
|
||
- `main.py` erweitert: Automatischer Fallback auf `extract_full_article()` bei zu kurzem Text
|
||
- Logging konsolidiert und mit Feed-Aktionen ergänzt
|
||
|
||
## [v1.5.2] - 2025-07-09
|
||
|
||
- Fehlerbehandlung bei `CHANGELOG.md`-Doppelungen hinzugefügt
|
||
- Signaturlogik robuster (SSH, GPG, fallback)
|
||
- Farbige Terminalausgabe verbessert
|
||
- dry-run Argument hinzugefügt:
|
||
* Versionsnummer wird berechnet ✅
|
||
* Änderungen (Version, Changelog, Commit, Tag, Push) werden nur angezeigt, nicht ausgeführt ✅
|
||
* Ausgabe erfolgt farbig und klar gegliedert ✅
|
||
|
||
## [1.5.1] - 2025-07-09
|
||
|
||
SSH-Commit-Signatur in versioning.py eingebaut
|
||
Automatischer Fallback auf GPG oder keine Signatur
|
||
Farbige Terminalausgabe zur Signaturmethode
|
||
Readme erweitert mit Setup-Anleitung
|
||
|
||
## [v1.5.0] – 2025-07-08
|
||
|
||
### 💡 Neue Funktionen
|
||
- 🪄 DALL·E-Bildgenerierung per Button direkt im Artikel-Expander
|
||
- Automatische Metadaten (Caption, Copyright, Quelle) für KI-generierte Bilder
|
||
|
||
### 🔧 Änderungen & Fixes
|
||
- 🔒 Kritischer Bugfix: Artikel gingen nach DALL·E oder Rewrite verloren → jetzt sichere `save_articles()`-Logik über alle Artikel
|
||
- Status-Änderungen, Rewrite und Bilderfassung überschreiben nicht mehr die Gesamtdatei
|
||
- Kein `st.rerun()` mehr nach jedem Klick – flüssiger Workflow
|
||
|
||
### 📦 Internes
|
||
- Neue Datei `utils/dalle_generator.py` für DALL·E-Integration
|
||
- Erweiterung der Teststrategie um strukturierte `TEST-CHECKLIST.md`
|
||
- Verbesserte Update-Strategie für Einzelartikel bei Bearbeitung
|
||
|
||
## [v1.4.8] – 2025-07-07
|
||
|
||
### 💡 Neue Funktionen
|
||
-
|
||
|
||
### 🔧 Änderungen & Fixes
|
||
- Fehlerbehebung bei neuen Release, CHANGELOG wurde nicht angehangen, es wird nun die gesamte Datei übernommen
|
||
|
||
### 📦 Internes
|
||
-
|
||
|
||
## [v1.4.7] – 2025-07-07
|
||
|
||
### 💡 Neue Funktionen
|
||
- Automatischer Release-Workflow bei `git tag v*`
|
||
- Release-Text aus `CHANGELOG.md` wird extrahiert und als GitHub Release verwendet
|
||
|
||
### 🔧 Änderungen & Fixes
|
||
- Fehlerbehebung bei neuen Release, CHANGELOG wurde nicht angehangen
|
||
|
||
### 📦 Internes
|
||
- Erweiterte `release.yml` zur zuverlässigen Release-Erstellung
|
||
- GitHub Actions mit `softprops/action-gh-release`
|
||
|
||
## [v1.4.6] – 2025-07-07
|
||
|
||
### 💡 Neue Funktionen
|
||
- Automatischer Release-Workflow bei `git tag v*`
|
||
- Release-Text aus `CHANGELOG.md` wird extrahiert und als GitHub Release verwendet
|
||
|
||
### 🔧 Änderungen & Fixes
|
||
- Fehlerbehebung bei Bilddatenextraktion
|
||
- Erweiterung von `versioning.py` um automatische Tag-Erstellung und Push
|
||
|
||
### 📦 Internes
|
||
- Erweiterte `release.yml` zur zuverlässigen Release-Erstellung
|
||
- GitHub Actions mit `softprops/action-gh-release`
|
||
|
||
## [v1.4.5] – 2025-07-07
|
||
|
||
### 💡 Neue Funktionen
|
||
- Umstellung des versioning.py-Skripts auf eine moderne Typer-CLI:
|
||
- create zum Erstellen neuer Versionen mit Level und Push-Option
|
||
- rollback zum Zurücknehmen der letzten Version
|
||
- list zur Anzeige aller Versionen im CHANGELOG.md
|
||
- Validierung, ob der CHANGELOG.md-Eintrag vor Release wirklich ausgefüllt wurde
|
||
- Interaktive CLI-Prompts zur besseren Benutzerführung
|
||
|
||
### 🔧 Änderungen & Fixes
|
||
- versioning.py ersetzt bisherige manuelle Menüs durch Typer-Kommandos
|
||
- requirements.txt um typer[all]==0.12.3 ergänzt
|
||
|
||
### 📦 Internes
|
||
- Vorbereitung für globale CLI-Nutzung (versioning als Befehl möglich)
|
||
- Automatisierung des Release-Prozesses mit GitHub Actions weiterhin vorbereitet
|
||
|
||
## [v1.4.4] – 2025-07-07
|
||
|
||
### 💡 Neue Funktionen
|
||
-
|
||
|
||
### 🔧 Änderungen & Fixes
|
||
-
|
||
|
||
### 📦 Internes
|
||
- automatische Versionierung eingebunden und direktes GitHub puschen der Änderungen
|
||
|
||
- ## [v1.4.3] – 2025-07-07
|
||
|
||
### 💡 Neue Funktionen
|
||
- ⚠️ Visuelle Warnanzeige in der Artikeltabelle für unvollständige Bildmetadaten (fehlende Caption, Copyright oder Quelle)
|
||
- ✍️ Inline-Bearbeitung von Bilddaten (Caption, Copyright, Quelle) direkt in der Detailansicht
|
||
- 🪵 Neue separate Seite `Log-Viewer` zur Anzeige der letzten Log-Einträge (automatisch über `pages/log_viewer.py`)
|
||
- 📂 Startfilter für Artikelansicht auf „New" voreingestellt für fokussierten Workflow
|
||
|
||
### 🔧 Änderungen & Fixes
|
||
- ✅ Artikel aus Feeds überschreiben bestehende Artikel **nicht mehr** – Status, Tags und andere manuelle Änderungen bleiben erhalten
|
||
- 🧹 `get_recent_logs()` wurde entfernt und die Sidebar-Logausgabe aus `app.py` entfernt
|
||
- 🔗 Sidebar-Link zur Log-Seite hinzugefügt (mittlerweile durch native Seiten-Navigation ersetzt)
|
||
- 🧭 Navigation durch Nutzung von Streamlit-Multipage-Struktur (`pages/`)
|
||
|
||
### 📦 Internes
|
||
- Refactoring von `process_articles()` zur sicheren ID-basierten Artikelzusammenführung
|
||
- Verbesserte Logging-Ausgabe bei bereits vorhandenen Artikeln
|
||
- Robusteres Fehlerhandling in `image_extractor.py`
|
||
|
||
## [v1.4.2] – 2025-07-03
|
||
|
||
### 💡 Neue Funktionen
|
||
- Komplett überarbeitete Artikel-Tabelle mit:
|
||
- Auswahlcheckboxen
|
||
- Inline-Statuswechsel mit Dropdown
|
||
- Wortanzahl, Tag-Anzeige, Datum kompakt
|
||
- Copy-to-Clipboard Funktion für Titel, Text und Tags
|
||
- Bildanzeige inkl. Caption und Copyright-Quelle im Detailbereich
|
||
- Titel wird automatisch beim Kopieren des Texts vorangestellt
|
||
|
||
### 🔧 Änderungen & Fixes
|
||
- `st.experimental_rerun()` durch `st.rerun()` ersetzt
|
||
- Statusfilter „Alle" funktioniert jetzt korrekt
|
||
- UI-Tuning für bessere Lesbarkeit
|
||
- Feedliste aus der Sidebar entfernt
|
||
- Fix: Bilddaten ohne Caption verursachen keine Fehler mehr
|
||
- Artikelüberschriften korrekt in Kopiertext eingebaut
|
||
|
||
### 📦 Internes
|
||
- Logging bleibt aktiv im Verzeichnis `/logs`
|
||
- Vorbereitung für Bildquellen-Import aus Original-Artikel umgesetzt
|
||
|
||
## [1.4.1] – 2025-07-03
|
||
### Hinzugefügt
|
||
- Logging für `process_articles()`, damit nachvollziehbar ist, welche Feeds verarbeitet wurden
|
||
- Rückmeldung in der App bei Klick auf „Alle Feeds neu laden"
|
||
|
||
### Geändert
|
||
- `main.py`: Inhalte aus `content`, `summary` oder `description` werden vollständig geladen und mit `BeautifulSoup` bereinigt
|
||
- Sicherstellung, dass `fetch_and_process_feed()` alle relevanten Artikelinformationen vollständig speichert
|
||
|
||
### Fehlerbehebungen
|
||
- Problem behoben, bei dem Artikeltexte nicht vollständig übernommen wurden
|
||
|
||
## [1.3.1] – 2025-07-03
|
||
### Added
|
||
- Tabellenansicht mit Checkbox, Titel, Datum, Zusammenfassung, Wortanzahl, Tags, Status
|
||
- Direktes Bearbeiten des Status über Dropdown-Menü
|
||
- Massenbearbeitung von Artikeln per Checkbox
|
||
- Rewrite-Button für alle Artikel mit Status 'Rewrite'
|
||
|
||
## [1.2.0] - 2025-07-04
|
||
### Hinzugefügt
|
||
- Automatische Bilderkennung beim Einlesen von Artikeln
|
||
- Extrahieren von Bildern aus dem Originalartikel (bis zu 3 Bilder)
|
||
- Speicherung von Bild-URLs, Alt-Texten (Bildbeschreibung) und Copyright-Hinweisen
|
||
- Fehlerbehandlung für nicht erreichbare Seiten
|
||
- Darstellung der Bilder (inkl. Beschreibung & Copyright) in der Artikelansicht
|
||
|
||
### Geändert
|
||
- Bilder werden direkt beim Einlesen eines RSS-Artikels verarbeitet und gespeichert
|
||
- `app.py` zeigt nun auch Bildinformationen innerhalb der Artikeldetailansicht an
|
||
|
||
### Behoben
|
||
- Keine
|
||
|
||
---
|
||
|
||
## [1.1.0] - 2025-07-04
|
||
### Hinzugefügt
|
||
- Visuell aufgewertete Box zur Darstellung eines Artikels mit:
|
||
- Kopierbutton für Titel
|
||
- Kopierbutton für Artikeltext
|
||
- Kopierbutton für Tags
|
||
- Button zum Öffnen des Originalartikels im neuen Tab
|
||
- Artikelansicht ist nun in einer grauen, abgerundeten Box gekapselt
|
||
- Icons unterstützen visuelle Orientierung (📝, 🗌, 📌 etc.)
|
||
|
||
### Geändert
|
||
- Artikelkopierfunktion für WordPress ist nun interaktiv über Buttons möglich
|
||
- HTML-Markup innerhalb von Streamlit für flexibleres Styling
|
||
|
||
### Behoben
|
||
- Keine
|
||
|
||
---
|
||
|
||
## [1.0.0] - 2025-07-03
|
||
### Initialversion
|
||
- Artikel aus RSS-Feeds einlesen
|
||
- Speichern in JSON-Datei
|
||
- Anzeige in Tabelle mit Statusfilter
|
||
- Rewrite per ChatGPT mit Zusammenfassung und Tag-Generierung
|
||
- Exportierbare Inhalte für manuelles Posting auf WordPress
|
||
|
||
----
|
||
|
||
## [v1.6.0] - 2025-08-15
|
||
|
||
### 🎨 Komplette UI-Überarbeitung
|
||
|
||
- **Modernes Tab-basiertes Design** mit Dashboard, Artikel, Feeds, Bilder und Statistiken-Tabs
|
||
- **Card-basierte Artikelansicht** ersetzt die alte Tabellenstruktur
|
||
- **Gradient-Header** und moderne CSS-Styling für professionelleres Aussehen
|
||
- **Responsive Layout** mit verbesserter mobiler Darstellung
|
||
- **Status-Badges** mit farbkodierten Indikatoren
|
||
- **Toast-Benachrichtigungen** für besseres User-Feedback
|
||
|
||
### 🔍 Erweiterte Filter- und Suchfunktionen
|
||
|
||
- **Kombinierte Filter** für Status, Feed und Volltextsuche
|
||
- **Live-Suche** durch Titel, Inhalt und Tags
|
||
- **Feed-spezifische Filterung** mit Artikelanzahl-Anzeige
|
||
- **Session State Management** für persistente Filter-Einstellungen
|
||
|
||
### 📊 Neues Dashboard
|
||
|
||
- **Statistik-Karten** mit visuellen Metriken (Gesamt-Artikel, neue Artikel, Feeds, Online-Artikel)
|
||
- **Schnellaktionen** für häufige Aufgaben (Feed-Update, Rewrite, Aufräumen)
|
||
- **Neueste Artikel Preview** mit Status-Anzeige
|
||
- **Übersichtliche Zahlen** mit modernem Design
|
||
|
||
### 🖼️ Verbesserte Bildverwaltung
|
||
|
||
- **Dedizierte Bilder-Seite** mit Galerie-Ansicht
|
||
- **Erweiterte Bildextraktion** mit Featured Image Detection
|
||
- **OpenGraph und Twitter Card** Unterstützung
|
||
- **Intelligente Bildfilterung** (Größe, Typ, Blacklist)
|
||
- **Metadaten-Bereinigung** mit Fallback-Werten
|
||
|
||
### 📰 Optimierte Artikelverarbeitung
|
||
|
||
- **Erweiterte Duplikatserkennung** basierend auf Titel-Ähnlichkeit und URL
|
||
- **Verbesserte Volltextextraktion** mit website-spezifischen Selektoren
|
||
- **WordPress-Erkennung** für optimierte Content-Extraktion
|
||
- **Retry-Mechanismus** mit exponential backoff
|
||
- **Bessere Textbereinigung** und Validierung
|
||
|
||
### 🛠️ Backend-Verbesserungen
|
||
|
||
- **Strukturiertes Logging** mit Funktions- und Zeilennummern
|
||
- **Session State Management** für bessere Performance
|
||
- **Verbesserte Fehlerbehandlung** mit spezifischen Error-Messages
|
||
- **JSON-Validierung** vor dem Speichern
|
||
- **Encoding-Fixes** für internationale Zeichen
|
||
- **Memory-optimierte Verarbeitung**
|
||
|
||
### 📊 Neue Statistiken-Seite
|
||
|
||
- **Status-Verteilung** mit Prozentanzeigen
|
||
- **Feed-Artikel-Übersicht** sortiert nach Anzahl
|
||
- **Textstatistiken** (Durchschnitt, Min/Max Wortanzahl)
|
||
- **Tag-Häufigkeiten** der meist verwendeten Tags
|
||
- **Lesezeit-Berechnungen** (200 Wörter pro Minute)
|
||
|
||
### 🔧 Technische Verbesserungen
|
||
|
||
- **UI Helper Functions** in `utils/ui_helpers.py` für wiederverwendbare Komponenten
|
||
- **Verbesserte URL-Validierung** und Domain-Erkennung
|
||
- **Smart Content Selectors** für verschiedene Website-Typen
|
||
- **Robustes Error Handling** mit spezifischen Fehlermeldungen
|
||
- **Performance-Optimierungen** durch reduzierte `st.rerun()` Calls
|
||
- **Memory-Management** für große Artikel-Listen
|
||
|
||
### 📱 UX-Verbesserungen
|
||
|
||
- **Inline-Bearbeitung** von Artikel-Status direkt in der Card-Ansicht
|
||
- **Erweiterte Details-Ansicht** mit Collapsible-Bereichen
|
||
- **Copy-to-Clipboard** Funktionalität mit formatiertem Text
|
||
- **Hover-Effekte** und Animations für bessere Interaktion
|
||
- **Breadcrumb-Navigation** in komplexen Ansichten
|
||
- **Loading-Spinner** für längere Operationen
|
||
|
||
### 🗂️ Neue Dateistruktur
|
||
|
||
```
|
||
├── app.py (komplett überarbeitet)
|
||
├── main.py (erweiterte Backend-Logik)
|
||
├── utils/
|
||
│ ├── ui_helpers.py (neue UI-Komponenten)
|
||
│ ├── image_extractor.py (verbesserte Bildextraktion)
|
||
│ ├── article_extractor.py (erweiterte Artikelextraktion)
|
||
│ └── dalle_generator.py (unverändert)
|
||
├── pages/
|
||
│ ├── 01_feed_manager.py (bestehend)
|
||
│ └── log_viewer.py (bestehend)
|
||
└── logs/ (verbessertes Logging)
|
||
```
|
||
|
||
### 🔄 Migration & Kompatibilität
|
||
|
||
- **Vollständige Rückwärtskompatibilität** mit bestehenden JSON-Daten
|
||
- **Automatische Datenmigration** für neue Felder (source_name, word_count, etc.)
|
||
- **Graceful Degradation** bei fehlenden Feldern
|
||
- **Validierung und Reparatur** ungültiger Datenstrukturen
|
||
|
||
### ⚡ Performance-Optimierungen
|
||
|
||
- **Lazy Loading** für große Artikel-Listen
|
||
- **Effiziente Filtering** ohne komplette Neuladung
|
||
- **Optimierte Bildverarbeitung** mit Größen-Caching
|
||
- **Reduzierte API-Calls** durch besseres State Management
|
||
- **Memory-optimierte JSON-Verarbeitung**
|
||
|
||
### 🐛 Bugfixes
|
||
|
||
- **Status-Änderungen** gehen nicht mehr verloren nach Reload
|
||
- **Bildmetadaten** werden korrekt gespeichert und angezeigt
|
||
- **Duplikat-Artikel** werden zuverlässig erkannt
|
||
- **Encoding-Probleme** bei internationalen Zeichen behoben
|
||
- **Feed-Namen** werden korrekt in Filter-Dropdown angezeigt
|
||
- **Session State** Konflikte bei mehreren Tabs behoben
|
||
|
||
### 📋 Breaking Changes
|
||
|
||
- **Alte Tabellen-UI** wurde durch Card-Layout ersetzt
|
||
- **Sidebar-Navigation** wurde durch Tab-Navigation ersetzt
|
||
- **Direkte JSON-Manipulation** sollte vermieden werden (neue Validierung)
|
||
|
||
---
|
||
|
||
## [v1.5.3] - 2025-07-11
|
||
|
||
### ✨ Neue Funktionen
|
||
|
||
- Automatischer Volltextabruf bei zu kurzen Artikeln (< 50 Wörter)
|
||
- Inhalte werden direkt von der Originalseite geladen (ähnlich wie bei der Bildextraktion)
|
||
- Promobil, Camping-News und andere gängige WordPress-Seiten werden unterstützt
|
||
|
||
- Neue Verwaltungsseite `Feed-Verwaltung` unter `pages/01_feed_manager.py`
|
||
- RSS-Feeds können nun über eine dedizierte Oberfläche hinzugefügt, bearbeitet und gelöscht werden
|
||
- Anzahl verknüpfter Artikel pro Feed wird angezeigt
|
||
- Änderungen werden protokolliert und per `st.rerun()` sofort sichtbar
|
||
|
||
### 🔧 Verbesserungen
|
||
|
||
- Feed-Filter in der Artikelübersicht zeigt jetzt die **korrekten Feed-Namen mit Artikelanzahl**
|
||
- Beispiel: „Promobil News (12)“ statt nur „Alle (20)“
|
||
- Basierend auf `source`-Feld im Artikelobjekt
|
||
|
||
- Verbesserte Logging-Ausgaben bei Feed-Aktionen (hinzufügen, ändern, löschen)
|
||
|
||
### 📁 Neue Dateien
|
||
|
||
- `utils/article_extractor.py` – Logik zum Abrufen vollständiger Artikeltexte von Originalseiten
|
||
- `pages/01_feed_manager.py` – Eigenständige Verwaltungsseite für RSS-Feeds
|
||
|
||
### 🛠 Interne Änderungen
|
||
|
||
- `main.py` erweitert: Automatischer Fallback auf `extract_full_article()` bei zu kurzem Text
|
||
- Logging konsolidiert und mit Feed-Aktionen ergänzt
|
||
|
||
|
||
|
||
## [v1.5.2] - 2025-07-09
|
||
|
||
- Fehlerbehandlung bei `CHANGELOG.md`-Doppelungen hinzugefügt
|
||
- Signaturlogik robuster (SSH, GPG, fallback)
|
||
- Farbige Terminalausgabe verbessert
|
||
- dry-run Argument hinzugefügt:
|
||
* Versionsnummer wird berechnet ✅
|
||
* Änderungen (Version, Changelog, Commit, Tag, Push) werden nur angezeigt, nicht ausgeführt ✅
|
||
* Ausgabe erfolgt farbig und klar gegliedert ✅
|
||
|
||
|
||
## [1.5.1] - 2025-07-09
|
||
|
||
SSH-Commit-Signatur in versioning.py eingebaut
|
||
Automatischer Fallback auf GPG oder keine Signatur
|
||
Farbige Terminalausgabe zur Signaturmethode
|
||
Readme erweitert mit Setup-Anleitung
|
||
|
||
|
||
## [v1.5.0] – 2025-07-08
|
||
|
||
### 💡 Neue Funktionen
|
||
- 🪄 DALL·E-Bildgenerierung per Button direkt im Artikel-Expander
|
||
- Automatische Metadaten (Caption, Copyright, Quelle) für KI-generierte Bilder
|
||
|
||
### 🔧 Änderungen & Fixes
|
||
- 🔒 Kritischer Bugfix: Artikel gingen nach DALL·E oder Rewrite verloren → jetzt sichere `save_articles()`-Logik über alle Artikel
|
||
- Status-Änderungen, Rewrite und Bilderfassung überschreiben nicht mehr die Gesamtdatei
|
||
- Kein `st.rerun()` mehr nach jedem Klick – flüssiger Workflow
|
||
|
||
### 📦 Internes
|
||
- Neue Datei `utils/dalle_generator.py` für DALL·E-Integration
|
||
- Erweiterung der Teststrategie um strukturierte `TEST-CHECKLIST.md`
|
||
- Verbesserte Update-Strategie für Einzelartikel bei Bearbeitung
|
||
|
||
## [v1.4.8] – 2025-07-07
|
||
|
||
### 💡 Neue Funktionen
|
||
-
|
||
|
||
### 🔧 Änderungen & Fixes
|
||
- Fehlerbehebung bei neuen Release, CHANGELOG wurde nicht angehangen, es wird nun die gesamte Datei übernommen
|
||
|
||
### 📦 Internes
|
||
-
|
||
|
||
## [v1.4.7] – 2025-07-07
|
||
|
||
### 💡 Neue Funktionen
|
||
- Automatischer Release-Workflow bei `git tag v*`
|
||
- Release-Text aus `CHANGELOG.md` wird extrahiert und als GitHub Release verwendet
|
||
|
||
### 🔧 Änderungen & Fixes
|
||
- Fehlerbehebung bei neuen Release, CHANGELOG wurde nicht angehangen
|
||
|
||
### 📦 Internes
|
||
- Erweiterte `release.yml` zur zuverlässigen Release-Erstellung
|
||
- GitHub Actions mit `softprops/action-gh-release`
|
||
|
||
## [v1.4.6] – 2025-07-07
|
||
|
||
### 💡 Neue Funktionen
|
||
- Automatischer Release-Workflow bei `git tag v*`
|
||
- Release-Text aus `CHANGELOG.md` wird extrahiert und als GitHub Release verwendet
|
||
|
||
### 🔧 Änderungen & Fixes
|
||
- Fehlerbehebung bei Bilddatenextraktion
|
||
- Erweiterung von `versioning.py` um automatische Tag-Erstellung und Push
|
||
|
||
### 📦 Internes
|
||
- Erweiterte `release.yml` zur zuverlässigen Release-Erstellung
|
||
- GitHub Actions mit `softprops/action-gh-release`
|
||
|
||
|
||
## [v1.4.5] – 2025-07-07
|
||
|
||
### 💡 Neue Funktionen
|
||
- Umstellung des versioning.py-Skripts auf eine moderne Typer-CLI:
|
||
- create zum Erstellen neuer Versionen mit Level und Push-Option
|
||
- rollback zum Zurücknehmen der letzten Version
|
||
- list zur Anzeige aller Versionen im CHANGELOG.md
|
||
- Validierung, ob der CHANGELOG.md-Eintrag vor Release wirklich ausgefüllt wurde
|
||
- Interaktive CLI-Prompts zur besseren Benutzerführung
|
||
|
||
### 🔧 Änderungen & Fixes
|
||
- versioning.py ersetzt bisherige manuelle Menüs durch Typer-Kommandos
|
||
- requirements.txt um typer[all]==0.12.3 ergänzt
|
||
|
||
### 📦 Internes
|
||
- Vorbereitung für globale CLI-Nutzung (versioning als Befehl möglich)
|
||
- Automatisierung des Release-Prozesses mit GitHub Actions weiterhin vorbereitet
|
||
|
||
|
||
## [v1.4.4] – 2025-07-07
|
||
|
||
### 💡 Neue Funktionen
|
||
-
|
||
|
||
### 🔧 Änderungen & Fixes
|
||
-
|
||
|
||
### 📦 Internes
|
||
- automatische Versionierung eingebunden und direktes GitHub puschen der Änderungen
|
||
|
||
- ## [v1.4.3] – 2025-07-07
|
||
|
||
### 💡 Neue Funktionen
|
||
- ⚠️ Visuelle Warnanzeige in der Artikeltabelle für unvollständige Bildmetadaten (fehlende Caption, Copyright oder Quelle)
|
||
- ✍️ Inline-Bearbeitung von Bilddaten (Caption, Copyright, Quelle) direkt in der Detailansicht
|
||
- 🪵 Neue separate Seite `Log-Viewer` zur Anzeige der letzten Log-Einträge (automatisch über `pages/log_viewer.py`)
|
||
- 📂 Startfilter für Artikelansicht auf „New“ voreingestellt für fokussierten Workflow
|
||
|
||
### 🔧 Änderungen & Fixes
|
||
- ✅ Artikel aus Feeds überschreiben bestehende Artikel **nicht mehr** – Status, Tags und andere manuelle Änderungen bleiben erhalten
|
||
- 🧹 `get_recent_logs()` wurde entfernt und die Sidebar-Logausgabe aus `app.py` entfernt
|
||
- 🔗 Sidebar-Link zur Log-Seite hinzugefügt (mittlerweile durch native Seiten-Navigation ersetzt)
|
||
- 🧭 Navigation durch Nutzung von Streamlit-Multipage-Struktur (`pages/`)
|
||
|
||
### 📦 Internes
|
||
- Refactoring von `process_articles()` zur sicheren ID-basierten Artikelzusammenführung
|
||
- Verbesserte Logging-Ausgabe bei bereits vorhandenen Artikeln
|
||
- Robusteres Fehlerhandling in `image_extractor.py`
|
||
|
||
|
||
## [v1.4.2] – 2025-07-03
|
||
|
||
### 💡 Neue Funktionen
|
||
- Komplett überarbeitete Artikel-Tabelle mit:
|
||
- Auswahlcheckboxen
|
||
- Inline-Statuswechsel mit Dropdown
|
||
- Wortanzahl, Tag-Anzeige, Datum kompakt
|
||
- Copy-to-Clipboard Funktion für Titel, Text und Tags
|
||
- Bildanzeige inkl. Caption und Copyright-Quelle im Detailbereich
|
||
- Titel wird automatisch beim Kopieren des Texts vorangestellt
|
||
|
||
### 🔧 Änderungen & Fixes
|
||
- `st.experimental_rerun()` durch `st.rerun()` ersetzt
|
||
- Statusfilter „Alle“ funktioniert jetzt korrekt
|
||
- UI-Tuning für bessere Lesbarkeit
|
||
- Feedliste aus der Sidebar entfernt
|
||
- Fix: Bilddaten ohne Caption verursachen keine Fehler mehr
|
||
- Artikelüberschriften korrekt in Kopiertext eingebaut
|
||
|
||
### 📦 Internes
|
||
- Logging bleibt aktiv im Verzeichnis `/logs`
|
||
- Vorbereitung für Bildquellen-Import aus Original-Artikel umgesetzt
|
||
|
||
|
||
## [1.4.1] – 2025-07-03
|
||
### Hinzugefügt
|
||
- Logging für `process_articles()`, damit nachvollziehbar ist, welche Feeds verarbeitet wurden
|
||
- Rückmeldung in der App bei Klick auf „Alle Feeds neu laden“
|
||
|
||
### Geändert
|
||
- `main.py`: Inhalte aus `content`, `summary` oder `description` werden vollständig geladen und mit `BeautifulSoup` bereinigt
|
||
- Sicherstellung, dass `fetch_and_process_feed()` alle relevanten Artikelinformationen vollständig speichert
|
||
|
||
### Fehlerbehebungen
|
||
- Problem behoben, bei dem Artikeltexte nicht vollständig übernommen wurden
|
||
|
||
## [1.3.1] – 2025-07-03
|
||
### Added
|
||
- Tabellenansicht mit Checkbox, Titel, Datum, Zusammenfassung, Wortanzahl, Tags, Status
|
||
- Direktes Bearbeiten des Status über Dropdown-Menü
|
||
- Massenbearbeitung von Artikeln per Checkbox
|
||
- Rewrite-Button für alle Artikel mit Status 'Rewrite'
|
||
|
||
|
||
## [1.2.0] - 2025-07-04
|
||
### Hinzugefügt
|
||
- Automatische Bilderkennung beim Einlesen von Artikeln
|
||
- Extrahieren von Bildern aus dem Originalartikel (bis zu 3 Bilder)
|
||
- Speicherung von Bild-URLs, Alt-Texten (Bildbeschreibung) und Copyright-Hinweisen
|
||
- Fehlerbehandlung für nicht erreichbare Seiten
|
||
- Darstellung der Bilder (inkl. Beschreibung & Copyright) in der Artikelansicht
|
||
|
||
### Geändert
|
||
- Bilder werden direkt beim Einlesen eines RSS-Artikels verarbeitet und gespeichert
|
||
- `app.py` zeigt nun auch Bildinformationen innerhalb der Artikeldetailansicht an
|
||
|
||
### Behoben
|
||
- Keine
|
||
|
||
---
|
||
|
||
## [1.1.0] - 2025-07-04
|
||
### Hinzugefügt
|
||
- Visuell aufgewertete Box zur Darstellung eines Artikels mit:
|
||
- Kopierbutton für Titel
|
||
- Kopierbutton für Artikeltext
|
||
- Kopierbutton für Tags
|
||
- Button zum Öffnen des Originalartikels im neuen Tab
|
||
- Artikelansicht ist nun in einer grauen, abgerundeten Box gekapselt
|
||
- Icons unterstützen visuelle Orientierung (📝, 🗌, 📌 etc.)
|
||
|
||
### Geändert
|
||
- Artikelkopierfunktion für WordPress ist nun interaktiv über Buttons möglich
|
||
- HTML-Markup innerhalb von Streamlit für flexibleres Styling
|
||
|
||
### Behoben
|
||
- Keine
|
||
|
||
---
|
||
|
||
## [1.0.0] - 2025-07-03
|
||
### Initialversion
|
||
- Artikel aus RSS-Feeds einlesen
|
||
- Speichern in JSON-Datei
|
||
- Anzeige in Tabelle mit Statusfilter
|
||
- Rewrite per ChatGPT mit Zusammenfassung und Tag-Generierung
|
||
- Exportierbare Inhalte für manuelles Posting auf WordPress
|