## [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 ` - 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 ` - 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