From 1d54cf904bc3dd90e5d2207c438cd82eef562dec Mon Sep 17 00:00:00 2001 From: Oliver G Date: Tue, 8 Jul 2025 10:48:12 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=94=96=20Release=20v1.5.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 18 ++++++++++++++ __version__.py | 2 +- app.py | 46 +++++++++++++++++++++++++++++++----- data/articles.json | 51 +++++++++++++++++++++++++++++++++------- logs/rss_tool.log | 48 +++++++++++++++++++++++++++++++++++++ test_checklist.md | 35 +++++++++++++++++++++++++++ utils/dalle_generator.py | 29 +++++++++++++++++++++++ 7 files changed, 213 insertions(+), 16 deletions(-) create mode 100644 test_checklist.md create mode 100644 utils/dalle_generator.py diff --git a/CHANGELOG.md b/CHANGELOG.md index 023fd31..1c93b2c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,21 @@ + + +## [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 diff --git a/__version__.py b/__version__.py index 664747e..177b935 100644 --- a/__version__.py +++ b/__version__.py @@ -1 +1 @@ -VERSION = "1.4.6" +VERSION = "1.5.0" diff --git a/app.py b/app.py index 56a28f0..34cd8d5 100644 --- a/app.py +++ b/app.py @@ -1,5 +1,3 @@ -# app.py - import streamlit as st from datetime import datetime from main import ( @@ -10,6 +8,7 @@ from main import ( process_articles, rewrite_articles ) +from utils.dalle_generator import generate_dalle_image import os st.set_page_config(page_title="📰 RSS Artikel Manager", layout="wide") @@ -38,9 +37,10 @@ if st.sidebar.button("✍️ Artikel umschreiben (Rewrite)"): st.header("📋 Artikelübersicht") status_filter = st.selectbox("Status filtern", ["Alle", "New", "Rewrite", "Process", "Online", "On Hold", "Trash"], index=1) -articles = load_articles() +all_articles = load_articles() +articles = all_articles if status_filter != "Alle": - articles = [a for a in articles if a.get("status") == status_filter] + articles = [a for a in all_articles if a.get("status") == status_filter] # === Artikel-Tabelle === if articles: @@ -80,7 +80,12 @@ if articles: new_status = st.selectbox("", status_options, index=status_options.index(current_status), key=f"status_{article['id']}") if new_status != current_status: article["status"] = new_status - save_articles(articles) + # Speichern in vollständiger Artikelliste + for idx, art in enumerate(all_articles): + if art["id"] == article["id"]: + all_articles[idx] = article + break + save_articles(all_articles) st.rerun() with st.expander(f"🔍 {article['title']}"): @@ -102,8 +107,37 @@ if articles: img["caption"] = caption or "Kein Bildtitel vorhanden" img["copyright"] = copyright or "Unbekannt" img["copyright_url"] = copyright_url or "#" - save_articles(articles) + # Speichern in vollständiger Artikelliste + for idx, art in enumerate(all_articles): + if art["id"] == article["id"]: + all_articles[idx] = article + break + save_articles(all_articles) st.success("Bilddaten gespeichert") + if st.button("🪄 KI-Bild generieren", key=f"dalle_{article['id']}"): + if not any(img.get("copyright") == "OpenAI DALL·E" for img in article.get("images", [])): + prompt = article["title"] + image_url = generate_dalle_image(prompt) + if image_url: + article.setdefault("images", []).append({ + "url": image_url, + "alt": f"KI-generiertes Titelbild zu: {prompt}", + "caption": f"KI-generiertes Titelbild zu: {prompt}", + "copyright": "OpenAI DALL·E", + "copyright_url": "https://openai.com/dall-e" + }) + for idx, art in enumerate(all_articles): + if art["id"] == article["id"]: + all_articles[idx] = article + break + save_articles(all_articles) + st.success("DALL·E-Bild erfolgreich hinzugefügt") + st.rerun() + else: + st.error("Fehler beim Erzeugen des Bildes.") + else: + st.info("Ein KI-generiertes Bild ist bereits vorhanden.") + else: st.info("Keine Artikel für den gewählten Status gefunden.") diff --git a/data/articles.json b/data/articles.json index 7457c5a..325eca3 100644 --- a/data/articles.json +++ b/data/articles.json @@ -4,9 +4,13 @@ "title": "Fr\u00fchjahrsaktionen vom Verein WOHNmobil f\u00fcr Klimaschutz", "date": "Wed, 07 May 2025 00:00:00 +0200", "summary": "In den ersten Wochen des Jahres 2025 schon 6.000 Jungbäume gepflanzt", - "text": "Jagsthausen in Baden-W\u00fcrttemberg, Uchte in Niedersachsen, Wernigerode in Sachsen-Anhalt und Harkebr\u00fcgger See in Niedersachsen - so hei\u00dfen die Stationen der \"Fr\u00fchjahrs-Tour\" des Vereins WOHNmobil f\u00fcr Klimaschutz e.V. Dabei fanden 6.000 Hainbuchen, Rotbuchen, Hainbuchen, Eichen und Wei\u00dftannen ihr neues Zuhause im jeweils heimischen Wald. Teams in der St\u00e4rke von 12 bis 18 Vereinsmitgliedern pflanzten an 3 Wochenenden im M\u00e4rz und Anfang April die 2- bis 3-j\u00e4hrigen Setzlinge gemein sam mit dem jeweiligen Revierf\u00f6rster auf den vorgesehenen Fl\u00e4chen. Dabei handelte es sich in zwei F\u00e4llen um freiger\u00e4umte Fl\u00e4chen, auf denen fr\u00fcher Fichten standen, die aber Trockenheit, St\u00fcrme und Borkenk\u00e4fer nicht \u00fcberlebt haben. Im anderen Fall wurden die Setzlinge in einem reinen Kiefernbestand untergepflanzt und sollen so die Basis f\u00fcr den beabsichtigen Umbau zu einem Mischwald bilden. Je nach Bodenbeschaffenheit kamen bei den Arbeiten Hohlspaten oder Pflanzhacke zum Einsatz. Mit den neuen Setzlingen f\u00fcllt sich das \"Baumkonto\" von WOHNmobil f\u00fcr Klimaschutz e.V. auf nunmehr fast 19.000 gespendete und in vielen Teilen Deutschlands gepflanzte B\u00e4ume. \"Wenn man bedenkt, dass jeder Baum in den kommenden 100 Jahren durchschnittlich j\u00e4hrlich 10 kg CO2 speichert, dann leisten unsere B\u00e4ume einen gro\u00dfartigen Beitrag zum Klimaschutz\", bewertet Vereinsvorstand Albert M\u00e4rkl die bisherige Bilanz des Vereins. Das Gesellige kommt bei den Aktionen des Vereins nicht zu kurz. Dieses mal standen auf dem Programm: Stadtf\u00fchrungen in \u00d6hringen und Wernigerode, eine Fahrt mit einer historischen Moorbahn und eine F\u00fchrung durch das Neust\u00e4dter Moor. Einen Beitrag zu umweltfreundlichem und -bewusstem Camping leistete WOHNmobil f\u00fcr Kli maschutz e.V. auch dadurch, dass der Verein das \u00f6kologische Profil von Wohnmobilstellpl\u00e4tzen bewertete sowie \u00f6kologisch gestaltete und betriebene Pl\u00e4tze auszeichnete. Am 27.03.2025 pr\u00e4mierte der Verein das Wohnmobilcamp Sm\u00e5land am Harkebr\u00fcgger See bei 26676 Bar\u00dfel/NI als seinen \u00d6kologischen Wohnmobilstellplatz 2025. Vereinsvorstand Albert M\u00e4rkl (links im Bild) \u00fcberreichte dem stolzen Besitzer Hans-J\u00fcrgen Lampe die Urkunde und ein Camper-Insektenhotel. Der idyllisch gelegene und naturnah gestaltete Stellplatz erinnert nicht nur wegen seines Namens an Schweden, sondern vor allem aufgrund seiner sch\u00f6nen Lage und Umgebung. Er be sticht zudem nicht nur durch seine Idylle und das liebevoll gestaltete Gr\u00fcn. Er verf\u00fcgt auch \u00fcber eine Reihe von energie- und wassersparenden Einrichtungen, \u00fcber eine sorgf\u00e4ltige M\u00fclltren nung und \u00fcber Informationen f\u00fcr die G\u00e4ste zum umweltschonenden Verhalten auf dem Platz, wie zu Rad- und Wanderwegen. Die Stellplatzfl\u00e4chen sind nicht versiegelt, Oberfl\u00e4chenwasser wird zus\u00e4tzlich in eine Art Biotop abgeleitet. Die Einrichtungen zur Ver- und Entsorgung sind gut anzufahren und hygienisch mit Sp\u00fclungen ausgestattet. M\u00e4rkl: \"Es lohnt sich, den Stellplatz an zufahren, man sp\u00fcrt sofort, dass den Betreibern das Wohl ihrer G\u00e4ste und das Wohl unserer Umwelt und Natur am Herzen liegen\". Informationen dar\u00fcber, wie man Mitglied oder F\u00f6rdermitglied werden kann, sind unter www.wohnmobil-fuer-klimaschutz.de zu finden.", - "tags": [], - "status": "On Hold", + "text": "Fr\u00fchjahrsaktionen vom Verein WOHNmobil f\u00fcr Klimaschutz\n\nDer Verein WOHNmobil f\u00fcr Klimaschutz e.V. hat in Teilen Deutschlands insgesamt 6.000 Setzlinge von verschiedenen B\u00e4umen, darunter Hainbuchen, Rotbuchen, Eichen und Wei\u00dftannen, als Teil seiner \"Fr\u00fchjahrs-Tour\" gepflanzt. In Teams von 12 bis 18 Mitgliedern unternahmen sie drei Wochenendtripps im M\u00e4rz und Anfang April nach Jagsthausen, Uchte, Wernigerode und Harkebr\u00fcgger See, um die jungen B\u00e4ume zusammen mit dem \u00f6rtlichen Revierf\u00f6rster zu pflanzen. Zwei der Fl\u00e4chen waren zuvor von Fichten belegt, die Trockenheit, St\u00fcrme und Borkenk\u00e4fer nicht \u00fcberlebt hatten. Bei der anderen Fl\u00e4che wurden die Setzlinge in einen Kiefernbestand gepflanzt, um einen gemischten Wald zu schaffen. Mit diesen neuen Setzlingen hat der Verein nun fast 19.000 B\u00e4ume gespendet und gepflanzt.\n\nDer Verein WOHNmobil f\u00fcr Klimaschutz e.V. f\u00f6rdert auch das umweltfreundliche und -bewusste Camping, indem er \u00f6kologische Wohnmobil-Stellpl\u00e4tze bewertet und auszeichnet. Am 27. M\u00e4rz 2025 hat der Verein das Wohnmobilcamp Sm\u00e5land am Harkebr\u00fcgger See zum \"\u00d6kologischen Wohnmobilstellplatz 2025\" gek\u00fcrt. Der Stellplatz verf\u00fcgt \u00fcber energie- und wassersparende Einrichtungen, eine sorgf\u00e4ltige M\u00fclltrennung und Informationen f\u00fcr die G\u00e4ste \u00fcber umweltschonendes Verhalten. Der Vereinsvorstand, Albert M\u00e4rkl, lobte die Betreiber f\u00fcr ihr Engagement f\u00fcr die Umwelt und das Wohl ihrer G\u00e4ste. Weitere Informationen dazu, wie man Mitglied oder F\u00f6rdermitglied im Verein werden kann, sind auf der Vereins-Website zu finden.", + "tags": [ + "1. Klimaschutz", + "2. B\u00e4ume pflanzen", + "3. \u00d6kologisches Camping" + ], + "status": "Online", "link": "https://www.camping-in-deutschland.de/index.php?pid=meldung&id=5924", "images": [ { @@ -71,6 +75,13 @@ "caption": "Bild aus Originalartikel", "copyright": "Unbekannt", "copyright_url": "https://www.camping-in-deutschland.de/index.php?pid=meldung&id=5924" + }, + { + "url": "https://oaidalleapiprodscus.blob.core.windows.net/private/org-YimPc01cYtOXjUpCATUqDABw/user-eA31w0vmy3fOrb3G64Ygndsr/img-TNJKFEUCBFmLnSUoZMXBlDdV.png?st=2025-07-08T06%3A32%3A20Z&se=2025-07-08T08%3A32%3A20Z&sp=r&sv=2024-08-04&sr=b&rscd=inline&rsct=image/png&skoid=cc612491-d948-4d2e-9821-2683df3719f5&sktid=a48cca56-e6da-484e-a814-9c849652bcb3&skt=2025-07-07T20%3A25%3A11Z&ske=2025-07-08T20%3A25%3A11Z&sks=b&skv=2024-08-04&sig=62C8D6N0YVYMRpgEhUnTgO9YGITstqAxRa370dT2Aq4%3D", + "alt": "KI-generiertes Titelbild zu: Fr\u00fchjahrsaktionen vom Verein WOHNmobil f\u00fcr Klimaschutz", + "caption": "KI-generiertes Titelbild zu: Fr\u00fchjahrsaktionen vom Verein WOHNmobil f\u00fcr Klimaschutz", + "copyright": "OpenAI DALL\u00b7E", + "copyright_url": "https://openai.com/dall-e" } ] }, @@ -243,9 +254,13 @@ "title": "Den eigenen Verbrauchszahlen auf der Spur", "date": "Thu, 05 Jun 2025 00:00:00 +0200", "summary": "Campingplatz Kirchzarten erhält EU Ecolabel", - "text": "Auf dem Campingplatz Kirchzarten wirtschaftet Inhaber Jens Ziegler schon seit Jahrzehnten nachhaltig. Das ist\u00a0ein Herzensanliegen f\u00fcr den Familienvater: \u201eIch m\u00f6chte meinen Kindern eine Umwelt hinterlassen, in der sie weiterleben k\u00f6nnen.\u201c Der Campingplatz Kirchzarten liegt vor den Toren Freiburgs. Hierher kommen die G\u00e4ste, um zu wandern, Rad zu fahren, die Natur des Schwarzwaldes zu genie\u00dfen, um Ausfl\u00fcge etwa nach Freiburg zu unternehmen oder um im Winter Ski zu fahren. Seit Jahren geh\u00f6rt Camping Kirchzarten zu den attraktivsten Campingpl\u00e4tzen in Europa. Das ist kein Zufall. Inhaber Jens Ziegler verbessert seinen Platz st\u00e4ndig. Eines seiner Ziele - das Europ\u00e4ische Um weltzeichen EU Ecolabel erringen. Schon lange arbeitet dieser Betrieb nachhaltig, ist von Anfang an bei ECOCAMPING dabei. Viele der Kriterien f\u00fcr das EU Ecolabel sch\u00fcttelte Ziegler deshalb f\u00fcr seinen Campingplatz praktisch aus dem \u00c4rmel. Aber nicht alle. Seit 70 Jahren besteht der Campingplatz in Kirchzarten schon. Er wurde gebaut, als der Klimawandel noch kein Thema war. Der Klimawandel ist aber inzwischen auch im Schwarzwald sp\u00fcrbar. Wasser sparen ist angezeigt. Bislang hatte Ziegler keine detaillierten Verbrauchsdaten erhoben. Das musste sich f\u00fcrs EU Ecolabel \u00e4ndern. Und siehe da, der Durchfluss war zu hoch. F\u00fcr das EU Ecolabel sollte er nicht mehr als 8,5 Liter pro Minute betragen. \u201eWir lagen bei 12 Litern. Da war ich doch ein wenig erschrocken\u201c, sagt Ziegler. Er versuchte den Durchfluss mit Spareins\u00e4tzen in den Leitungen zu drosseln, doch da beschwerten sich die G\u00e4ste \u00fcber eine tr\u00f6pfelnde Dusche. Ziegler tauschte alle Armaturen wie Brausek\u00f6pfe und H\u00e4hne aus gegen Wassersparmodelle. Seitdem duschen seine G\u00e4ste mit gewohntem Komfort, w\u00e4hrend Ziegler mit 8 Litern pro Minute die Anforderungen unterboten hat. Im kommenden Winter will Ziegler zwei Regenwasserzisternen bauen, um nicht mit Trinkwasser zu bew\u00e4ssern. Wo sich Hummeln tummeln Dass auf seinem Platz keine Pestizide eingesetzt werden, war Ziegler schon lange ein Anliegen. Er setzt auf ein heimische B\u00e4ume und Str\u00e4ucher und neu auch auf bienenfreundliche Blumenwiesen. Als vor drei Jahren eine Gr\u00fcnfl\u00e4che vor dem neuen Sanit\u00e4rgeb\u00e4ude angelegt werden musste, wandelten sie Rasen in ein bienenfreund liches Stauden- und Blumenbeet um. Inzwischen will er Eckbereiche zu Hummel-tummel-Pl\u00e4tzen umgestalten. Nicht mehr als 10 Prozent der Gesamtfl\u00e4che d\u00fcrfen f\u00fcr das EU Ecolabel versiegelt sein. \u201eDa liegen wir deutlich drunter\u201c, sagt Inhaber Ziegler. F\u00fcr den neuen Wertstoffplatz lie\u00df er Drain-Pflaster verlegen, der stabil ist und bei dem das Regenwasser durch die Fugen versickert. Nachhaltigkeit ist ein st\u00e4ndiges Thema f\u00fcr Ziegler: Inzwischen sind alle Beleuchtungen in den Geb\u00e4uden auf LED umgestellt und wenn sinnvoll mit Bewegungsmeldern ausgestattet. In den Mietunterk\u00fcnften stecken die Reinigungssets in Papierkartons statt in Plastik. Durch die digitale Rezeption halbierte sich der Papierverbrauch. \u201eSeit dem gibt es keine Schlangen mehr vor der Rezeption. Und wir haben mehr Zeit f\u00fcr die G\u00e4ste\u201c, sagt Ziegler. Er brauche seitdem weniger Personal, ein Vorteil, denn auch den Personalmangel sp\u00fcrten sie im Schwarzwald. Eine neue Heizanlage mit zwei W\u00e4rmepumpen ersetzt inzwischen den alten Gaskessel. Gas wird noch bei Spit zenlasten eingesetzt. Die eigene Photovoltaikanlage deckt etwa 12 Prozent des Strombedarfs. Zunehmend machen Stromspitzen zu schaffen. Um diese abzufedern, will Ziegler Speicher f\u00fcr den eigenen Sonnenstrom an schaffen. Technische Infos kamen vom ECOCAMPING-Auditor Martin Rolletschek, der das Camp pers\u00f6nlich besuchte, bevor er gr\u00fcnes Licht f\u00fcrs EU Ecolabel gab. \u201eDas pers\u00f6nliche Audit hat mir sehr viel gebracht\u201c, sagt Ziegler. Das EU Ecolabel: der europaweite Weg zu mehr Nachhaltigkeit Das EU Ecolabel ist der in der gesamten EU anerkannte Weg f\u00fcr Betriebe, welche in Fragen des Umweltschutzes\u00a0Vorbild sein wollen. Das Europ\u00e4ische Umweltzeichen zeichnet seit \u00fcber 30 Jahren umweltfreundlichere Produkte und Dienstleistungen in ganz Europa aus \u2013 seit 2005 auch Hotels und Campingpl\u00e4tze. Diese Campingpl\u00e4tze haben gemeinsam, dass sie konkrete Ma\u00dfnahmen f\u00fcr mehr Nachhaltigkeit in ihren Betrieben umgesetzt haben und den strengen Kriterien des EU Ecolabels entsprechen. Campingpl\u00e4tze m\u00fcssen dabei 22 Pflicht-Kriterien und einen Teil der 45 K\u00fcr-Kriterien erf\u00fcllen. Verpflichtend ist beispielsweise die ausschlie\u00dfliche Nutzung von \u00d6kostrom, LED-Beleuchtung und wassersparender Duschk\u00f6pfen. Eine optimale Ma\u00dfnahme kann sein, \u00f6kologisch g\u00fcnstige Verkehrsmittel anzubieten wie etwa einen Fahrrad-Verleih.", - "tags": [], - "status": "On Hold", + "text": "Den eigenen Verbrauchszahlen auf der Spur\n\nDer Campingplatz Kirchzarten wird vom Inhaber Jens Ziegler nachhaltig betrieben. Er strebt das Europ\u00e4ische Umweltzeichen EU Ecolabel an und hat daf\u00fcr verschiedene \u00c4nderungen am Campingplatz vorgenommen. \n\nZiegler hat den Wasserdurchfluss auf seinem Platz reduziert, um den Verbrauch zu verringern. Er hat alle Armaturen wie Brausek\u00f6pfe und Wasserh\u00e4hne gegen wassersparende Modelle ausgetauscht. Dar\u00fcber hinaus plant Ziegler, zwei Regenwasserzisternen zu bauen, um die Bew\u00e4sserung nicht mehr mit Trinkwasser durchf\u00fchren zu m\u00fcssen.\n\nDer Einsatz von Pestiziden auf dem Campingplatz Kirchzarten ist nicht erlaubt. Stattdessen konzentriert sich Ziegler auf einheimische Pflanzen und Str\u00e4ucher sowie bienenfreundliche Blumenwiesen. Er plant au\u00dferdem, bestimmte Bereiche des Campingplatzes in lebendige Hummel-Pl\u00e4tze zu verwandeln. \n\nDar\u00fcber hinaus achtet Ziegler darauf, dass die Beleuchtung in den Geb\u00e4uden auf umweltfreundliche LED-Lichter umgestellt ist und dass die Reinigungssets in umweltfreundlichen Papierkartons anstatt in Plastik verpackt sind. Zudem halbierte die digitale Rezeption den Papierverbrauch und verbessert die Effizienz des Personals. \n\nDie Heizanlage auf dem Campingplatz wurde durch zwei W\u00e4rmepumpen ersetzt, die den alten Gaskessel ersetzen. Ziegler betreibt au\u00dferdem eine eigene Photovoltaikanlage, die etwa 12% des Strombedarfs deckt und plant, Speicher f\u00fcr den eigenen Sonnenstrom zu installieren. \n\nCamping Kirchzarten ist seit langem Mitglied der Organisation ECOCAMPING, was Ziegler half, viele der Kriterien f\u00fcr das EU Ecolabel zu erf\u00fcllen. Durch seine nachhaltigen Bem\u00fchungen wurde Camping Kirchzarten zu einem der attraktivsten Campingpl\u00e4tze in Europa.", + "tags": [ + "Nachhaltiges Camping", + "EU Ecolabel", + "Umweltfreundliche Ma\u00dfnahmen" + ], + "status": "Online", "link": "https://www.camping-in-deutschland.de/index.php?pid=meldung&id=5929", "images": [ { @@ -366,6 +381,13 @@ "caption": "Bild aus Originalartikel", "copyright": "Unbekannt", "copyright_url": "https://www.camping-in-deutschland.de/index.php?pid=meldung&id=5929" + }, + { + "url": "https://oaidalleapiprodscus.blob.core.windows.net/private/org-YimPc01cYtOXjUpCATUqDABw/user-eA31w0vmy3fOrb3G64Ygndsr/img-w5yMQWBqUD40hBBdASWHRCGl.png?st=2025-07-08T06%3A51%3A24Z&se=2025-07-08T08%3A51%3A24Z&sp=r&sv=2024-08-04&sr=b&rscd=inline&rsct=image/png&skoid=cc612491-d948-4d2e-9821-2683df3719f5&sktid=a48cca56-e6da-484e-a814-9c849652bcb3&skt=2025-07-07T20%3A13%3A47Z&ske=2025-07-08T20%3A13%3A47Z&sks=b&skv=2024-08-04&sig=8r2oI6by0IXMpsxHTc9VK/2fFJOzdxPwGoXFiiA8Eiw%3D", + "alt": "KI-generiertes Titelbild zu: Den eigenen Verbrauchszahlen auf der Spur", + "caption": "KI-generiertes Titelbild zu: Den eigenen Verbrauchszahlen auf der Spur", + "copyright": "OpenAI DALL\u00b7E", + "copyright_url": "https://openai.com/dall-e" } ] }, @@ -498,9 +520,13 @@ "title": "Das weltweit gr\u00f6\u00dfte Caravaning-Erlebnis", "date": "Tue, 13 May 2025 00:00:00 +0200", "summary": "Vom 29. August (Preview Day) bis zum 7. September 2025 wird Düsseldorf erneut zum Treffpunkt der Caravaning-Welt", - "text": "Der CARAVAN SALON ist die gr\u00f6\u00dfte und wichtigste Messe weltweit, die sich ausschlie\u00dflich dem Thema Caravaning widmet - und macht dieses Lebensgef\u00fchl zu einem einzigartigen Messe-Erlebnis. Als unangefochtener Branchentreffpunkt pr\u00e4sentiert die weltweit f\u00fchrende Leitmesse die gr\u00f6\u00dfte Auswahl an Reisemobilen, Caravans und Campervans. Erg\u00e4nzt wird das Angebot durch eine unvergleichliche Vielfalt an Zubeh\u00f6r, technischem Equipment, Ausbauteilen, Dachzelten, Mobilheimen, Caravaning- und Campingzubeh\u00f6r, Reisedestinationen, Campingpl\u00e4tzen sowie Reisemobilstellpl\u00e4tzen. Messeerlebnis nicht zu ersetzen \u201eGerade in herausfordernden Zeiten zeigt sich eindrucksvoll, welchen unsch\u00e4tzbaren Wert Messen f\u00fcr unsere Branche haben. Potenzielle Kunden wollen die Fahrzeuge vor der Kaufentscheidung nicht nur sehen \u2013 sie wollen erleben, anfassen, vergleichen, einsteigen und sp\u00fcren, welcher Grundriss zu ihrem Lebensstil passt. Der CARAVAN SALON ist der einzige Ort, an dem alle renommierten nationalen und internationalen Hersteller versammelt sind \u2013 und Besucher die ganze Bandbreite des Marktes auf einen Blick erfassen k\u00f6nnen\u201c, sagt Director Stefan Koschke. In D\u00fcsseldorf werden die Premieren der kommenden Saison gezeigt: Top-Produkte, Innovationen und Weltneuheiten \u2013 erstmals \u00f6ffentlich erlebbar, erg\u00e4nzt durch zahlreiche spannende Neuaussteller, die die Modellvielfalt nochmals erweitern. \u201eDas Messeerlebnis CARAVAN SALON wird damit noch intensiver, vom passenden Fahrzeug bis zum ganz pers\u00f6nlichen Traumziel\u201c, erg\u00e4nzt Stefan Koschke. Neue Halleneinteilung \u2013 noch mehr entdecken, noch leichter finden Dank einer neuen, \u00fcbersichtlich gestalteten Hallenstruktur, gelangen Besucherinnen und Besucher weiterhin schnell und gezielt in ihre pers\u00f6nliche Caravaning-Welt. Ob Camping-Neuling, Technik-Fan, kreativer Selbstausbauer oder Luxus-Liebhaber \u2013 auf dem CARAVAN SALON kommt jeder auf seine Kosten und entdeckt genau das, was das eigene Herz h\u00f6herschlagen l\u00e4sst. \u201eMit der neuen Aufteilung schaffen wir ein inspirierendes Messeerlebnis f\u00fcr unsere G\u00e4ste. Durch laufende Modernisierungen des Gel\u00e4ndes und der Hallen sichern wir auch langfristig optimale Bedingungen f\u00fcr Beratung, Austausch und Networking. Im Zuge dieser Ma\u00dfnahmen wird Halle 9 vor\u00fcbergehend nicht genutzt \u2013 daf\u00fcr d\u00fcrfen sich Besucher auf interessante und spannende Platzierungen vieler Marken in einem frischen Umfeld freuen\u201c, erkl\u00e4rt Stefan Koschke. Caravaning so beliebt wie nie zuvor \u201eCaravaning erfreut sich seit vielen Jahren wachsender Beliebtheit, denn die individuelle und flexible Art des Reisens im Einklang mit der Natur entspricht dem Wunsch vieler Menschen nach einem selbstbestimmten Urlaub. Im Zuge dieser Entwicklung hat sich der mobile Urlaub l\u00e4ngst generationen\u00fcbergreifend zu einer der beliebtesten Reiseformen entwickelt \u2013 und das nicht nur in Europa, sondern weltweit. Noch nie waren so viele Menschen mit Reisemobil oder Caravan unterwegs wie heute. Diese Dynamik spiegelt sich auch auf dem CARAVAN SALON wider, der seit jeher die wichtigste internationale B\u00fchne der Caravaningbranche ist. Nirgendwo sonst ist die Vielfalt an Fahrzeugen, Zubeh\u00f6r, Dienstleistungen und Reiseinspirationen gr\u00f6\u00dfer als in D\u00fcsseldorf. Jahr f\u00fcr Jahr untermauert der CARAVAN SALON damit seine Rolle als Leuchtturm der Branche\u201c, erkl\u00e4rt Daniel Onggowinarso, Gesch\u00e4ftsf\u00fchrer des Caravaning Industrie Verbandes (CIVD). Der Preview Day am 29. August bietet mit begrenztem Ticketkontingent eine besonders entspannte Atmosph\u00e4re f\u00fcr alle, die die Neuheiten der Branche in Ruhe entdecken wollen. Der Ticketverkauf startet am 11. Juni. Aktuelle Informationen und Neuigkeiten gibt es im Internet unter www.caravan-salon.de .", - "tags": [], - "status": "On Hold", + "text": "Das weltweit gr\u00f6\u00dfte Caravaning-Erlebnis\n\nDer CARAVAN SALON ist die weltweit gr\u00f6\u00dfte Messe, die sich speziell auf Caravaning konzentriert, und bietet eine eindrucksvolle Ausstellung von Reisemobilen, Caravans und Campervans. Zu dem breiten Angebot geh\u00f6ren aber auch Zubeh\u00f6r, technisches Equipment, Ausbauteile, Dachzelte, Mobilheime und Campingzubeh\u00f6r. Der Salon ist auch ein Ort, an dem Besucher Reiseziele, Campingpl\u00e4tze und Wohnmobilstellpl\u00e4tze entdecken k\u00f6nnen. Besucher haben die M\u00f6glichkeit, die Fahrzeuge vor dem Kauf intensiv zu begutachten, zu testen und zu vergleichen, um das f\u00fcr ihren Lebensstil passende Modell zu finden. Als weltweit f\u00fchrendes Event in diesem Bereich versammelt der CARAVAN SALON sowohl nationale als auch internationale Hersteller, und pr\u00e4sentiert die neuesten Produkte, Innovationen und Weltneuheiten. Mit einer neuen und \u00fcbersichtlichen Hallenstruktur sind die Ausstellungsst\u00fccke leicht zu finden und zu vergleichen. Der CARAVAN SALON zeichnet sich dadurch aus, dass er allen Besuchern, ob Neueinsteiger oder Luxus-Liebhaber, ein spannendes Messeerlebnis bietet. Laut dem Gesch\u00e4ftsf\u00fchrer des Caravaning Industrie Verbandes, Daniel Onggowinarso, spiegelt der Salon auch die steigende Beliebtheit und das Wachstum der Caravaningbranche wider. Der Preview Day bietet eine ruhige Atmosph\u00e4re f\u00fcr diejenigen, die die Neuheiten der Branche in Ruhe entdecken wollen. Der Ticketverkauf beginnt am 11. Juni und weitere Informationen sind auf der Website www.caravan-salon.de zu finden.", + "tags": [ + "Caravaning", + "CARAVAN SALON", + "Reisemobile" + ], + "status": "Process", "link": "https://www.camping-in-deutschland.de/index.php?pid=meldung&id=5926", "images": [ { @@ -572,6 +598,13 @@ "caption": "Bild aus Originalartikel", "copyright": "Unbekannt", "copyright_url": "https://www.camping-in-deutschland.de/index.php?pid=meldung&id=5926" + }, + { + "url": "https://oaidalleapiprodscus.blob.core.windows.net/private/org-YimPc01cYtOXjUpCATUqDABw/user-eA31w0vmy3fOrb3G64Ygndsr/img-6d1irbwhkDKGNvLJG50pYaZK.png?st=2025-07-08T07%3A39%3A16Z&se=2025-07-08T09%3A39%3A16Z&sp=r&sv=2024-08-04&sr=b&rscd=inline&rsct=image/png&skoid=cc612491-d948-4d2e-9821-2683df3719f5&sktid=a48cca56-e6da-484e-a814-9c849652bcb3&skt=2025-07-07T20%3A35%3A26Z&ske=2025-07-08T20%3A35%3A26Z&sks=b&skv=2024-08-04&sig=DVMzSGr162NqN8830eX0tAH5Wtm5NAnTPxk2C7NQgTs%3D", + "alt": "KI-generiertes Titelbild zu: Das weltweit gr\u00f6\u00dfte Caravaning-Erlebnis", + "caption": "KI-generiertes Titelbild zu: Das weltweit gr\u00f6\u00dfte Caravaning-Erlebnis", + "copyright": "OpenAI DALL\u00b7E", + "copyright_url": "https://openai.com/dall-e" } ] }, diff --git a/logs/rss_tool.log b/logs/rss_tool.log index d1d04d6..01b220e 100644 --- a/logs/rss_tool.log +++ b/logs/rss_tool.log @@ -92,3 +92,51 @@ 2025-07-07 10:38:21,362 - INFO - Lade Feed: https://www.camping-news.de/rss/ 2025-07-07 10:38:21,538 - INFO - 0 neue Artikel gefunden in https://www.camping-news.de/rss/ 2025-07-07 10:38:21,538 - INFO - Keine neuen Artikel gefunden. +2025-07-08 09:28:17,147 - INFO - Lade Feed: https://www.camping-news.de/rss/ +2025-07-08 09:28:17,409 - INFO - 0 neue Artikel gefunden in https://www.camping-news.de/rss/ +2025-07-08 09:28:17,409 - INFO - Keine neuen Artikel gefunden. +2025-07-08 09:29:05,882 - INFO - ✍️ Umschreiben von: Frühjahrsaktionen vom Verein WOHNmobil für Klimaschutz +2025-07-08 09:29:28,434 - INFO - HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK" +2025-07-08 09:29:31,336 - INFO - HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK" +2025-07-08 09:29:31,339 - INFO - ✅ Artikel umgeschrieben: Frühjahrsaktionen vom Verein WOHNmobil für Klimaschutz +2025-07-08 09:29:31,343 - INFO - Alle Artikel mit Status 'Rewrite' wurden verarbeitet. +2025-07-08 09:32:08,168 - INFO - 🧠 Generiere DALL·E-Bild für Prompt: Frühjahrsaktionen vom Verein WOHNmobil für Klimaschutz +2025-07-08 09:32:20,090 - INFO - HTTP Request: POST https://api.openai.com/v1/images/generations "HTTP/1.1 200 OK" +2025-07-08 09:32:20,096 - INFO - ✅ Bild generiert: https://oaidalleapiprodscus.blob.core.windows.net/private/org-YimPc01cYtOXjUpCATUqDABw/user-eA31w0vmy3fOrb3G64Ygndsr/img-TNJKFEUCBFmLnSUoZMXBlDdV.png?st=2025-07-08T06%3A32%3A20Z&se=2025-07-08T08%3A32%3A20Z&sp=r&sv=2024-08-04&sr=b&rscd=inline&rsct=image/png&skoid=cc612491-d948-4d2e-9821-2683df3719f5&sktid=a48cca56-e6da-484e-a814-9c849652bcb3&skt=2025-07-07T20%3A25%3A11Z&ske=2025-07-08T20%3A25%3A11Z&sks=b&skv=2024-08-04&sig=62C8D6N0YVYMRpgEhUnTgO9YGITstqAxRa370dT2Aq4%3D +2025-07-08 09:39:01,010 - INFO - Lade Feed: https://www.camping-news.de/rss/ +2025-07-08 09:39:01,311 - INFO - 📷 Extrahiere Bilder von https://www.camping-in-deutschland.de/index.php?pid=meldung&id=5927 +2025-07-08 09:39:01,669 - INFO - 10 Bilder gefunden bei https://www.camping-in-deutschland.de/index.php?pid=meldung&id=5927 +2025-07-08 09:39:01,670 - INFO - 📷 Extrahiere Bilder von https://www.camping-in-deutschland.de/index.php?pid=meldung&id=5928 +2025-07-08 09:39:01,886 - INFO - 10 Bilder gefunden bei https://www.camping-in-deutschland.de/index.php?pid=meldung&id=5928 +2025-07-08 09:39:01,887 - INFO - 📷 Extrahiere Bilder von https://www.camping-in-deutschland.de/index.php?pid=meldung&id=5929 +2025-07-08 09:39:02,095 - INFO - 17 Bilder gefunden bei https://www.camping-in-deutschland.de/index.php?pid=meldung&id=5929 +2025-07-08 09:39:02,096 - INFO - 📷 Extrahiere Bilder von https://www.camping-in-deutschland.de/index.php?pid=meldung&id=5925 +2025-07-08 09:39:02,305 - INFO - 16 Bilder gefunden bei https://www.camping-in-deutschland.de/index.php?pid=meldung&id=5925 +2025-07-08 09:39:02,306 - INFO - 📷 Extrahiere Bilder von https://www.camping-in-deutschland.de/index.php?pid=meldung&id=5926 +2025-07-08 09:39:02,518 - INFO - 10 Bilder gefunden bei https://www.camping-in-deutschland.de/index.php?pid=meldung&id=5926 +2025-07-08 09:39:02,519 - INFO - 📷 Extrahiere Bilder von https://www.camping-in-deutschland.de/index.php?pid=meldung&id=5923 +2025-07-08 09:39:02,702 - INFO - 10 Bilder gefunden bei https://www.camping-in-deutschland.de/index.php?pid=meldung&id=5923 +2025-07-08 09:39:02,702 - INFO - 📷 Extrahiere Bilder von https://www.camping-in-deutschland.de/index.php?pid=meldung&id=5922 +2025-07-08 09:39:02,947 - INFO - 17 Bilder gefunden bei https://www.camping-in-deutschland.de/index.php?pid=meldung&id=5922 +2025-07-08 09:39:02,948 - INFO - 📷 Extrahiere Bilder von https://www.camping-in-deutschland.de/index.php?pid=meldung&id=5921 +2025-07-08 09:39:03,157 - INFO - 17 Bilder gefunden bei https://www.camping-in-deutschland.de/index.php?pid=meldung&id=5921 +2025-07-08 09:39:03,157 - INFO - 📷 Extrahiere Bilder von https://www.camping-in-deutschland.de/index.php?pid=meldung&id=5920 +2025-07-08 09:39:03,363 - INFO - 9 Bilder gefunden bei https://www.camping-in-deutschland.de/index.php?pid=meldung&id=5920 +2025-07-08 09:39:03,363 - INFO - 9 neue Artikel gefunden in https://www.camping-news.de/rss/ +2025-07-08 09:39:03,365 - INFO - 9 neue Artikel gespeichert. +2025-07-08 09:50:04,409 - INFO - ✍️ Umschreiben von: Den eigenen Verbrauchszahlen auf der Spur +2025-07-08 09:50:28,820 - INFO - HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK" +2025-07-08 09:50:30,722 - INFO - HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK" +2025-07-08 09:50:30,725 - INFO - ✅ Artikel umgeschrieben: Den eigenen Verbrauchszahlen auf der Spur +2025-07-08 09:50:30,729 - INFO - Alle Artikel mit Status 'Rewrite' wurden verarbeitet. +2025-07-08 09:51:09,253 - INFO - 🧠 Generiere DALL·E-Bild für Prompt: Den eigenen Verbrauchszahlen auf der Spur +2025-07-08 09:51:24,155 - INFO - HTTP Request: POST https://api.openai.com/v1/images/generations "HTTP/1.1 200 OK" +2025-07-08 09:51:24,161 - INFO - ✅ Bild generiert: https://oaidalleapiprodscus.blob.core.windows.net/private/org-YimPc01cYtOXjUpCATUqDABw/user-eA31w0vmy3fOrb3G64Ygndsr/img-w5yMQWBqUD40hBBdASWHRCGl.png?st=2025-07-08T06%3A51%3A24Z&se=2025-07-08T08%3A51%3A24Z&sp=r&sv=2024-08-04&sr=b&rscd=inline&rsct=image/png&skoid=cc612491-d948-4d2e-9821-2683df3719f5&sktid=a48cca56-e6da-484e-a814-9c849652bcb3&skt=2025-07-07T20%3A13%3A47Z&ske=2025-07-08T20%3A13%3A47Z&sks=b&skv=2024-08-04&sig=8r2oI6by0IXMpsxHTc9VK/2fFJOzdxPwGoXFiiA8Eiw%3D +2025-07-08 10:36:28,283 - INFO - ✍️ Umschreiben von: Das weltweit größte Caravaning-Erlebnis +2025-07-08 10:36:50,617 - INFO - HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK" +2025-07-08 10:36:52,619 - INFO - HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK" +2025-07-08 10:36:52,622 - INFO - ✅ Artikel umgeschrieben: Das weltweit größte Caravaning-Erlebnis +2025-07-08 10:36:52,627 - INFO - Alle Artikel mit Status 'Rewrite' wurden verarbeitet. +2025-07-08 10:38:57,857 - INFO - 🧠 Generiere DALL·E-Bild für Prompt: Das weltweit größte Caravaning-Erlebnis +2025-07-08 10:39:16,622 - INFO - HTTP Request: POST https://api.openai.com/v1/images/generations "HTTP/1.1 200 OK" +2025-07-08 10:39:16,627 - INFO - ✅ Bild generiert: https://oaidalleapiprodscus.blob.core.windows.net/private/org-YimPc01cYtOXjUpCATUqDABw/user-eA31w0vmy3fOrb3G64Ygndsr/img-6d1irbwhkDKGNvLJG50pYaZK.png?st=2025-07-08T07%3A39%3A16Z&se=2025-07-08T09%3A39%3A16Z&sp=r&sv=2024-08-04&sr=b&rscd=inline&rsct=image/png&skoid=cc612491-d948-4d2e-9821-2683df3719f5&sktid=a48cca56-e6da-484e-a814-9c849652bcb3&skt=2025-07-07T20%3A35%3A26Z&ske=2025-07-08T20%3A35%3A26Z&sks=b&skv=2024-08-04&sig=DVMzSGr162NqN8830eX0tAH5Wtm5NAnTPxk2C7NQgTs%3D diff --git a/test_checklist.md b/test_checklist.md new file mode 100644 index 0000000..16e15fa --- /dev/null +++ b/test_checklist.md @@ -0,0 +1,35 @@ +## ✅ Artikel-Rewrite prüfen + +| Testschritt | Erwartung | Erfüllt? (✔/✘) | +|-----------------------------------------------------|-------------------------------|----------------| +| Artikel mit Status "Rewrite" umschreiben | Text wird ersetzt | | +| Andere Artikel bleiben unverändert | Kein Datenverlust | | +| Tags bei anderen Artikeln bleiben erhalten | Keine versehentliche Änderung | | +| Nur bearbeitete Artikel bekommen neue Tags | Zielgenaue Verarbeitung | | +| JSON enthält alle Artikel | Kein Verlust nach save() | | + +## ✅ DALL·E-Bildgenerierung prüfen + +| Testschritt | Erwartung | Erfüllt? (✔/✘) | +|-----------------------------------------------------|-------------------------------------------|----------------| +| KI-Button klickbar | Nur wenn noch kein DALL·E-Bild vorhanden | | +| Bild wird korrekt generiert | URL, Metadaten vorhanden | | +| Nur ein Bild wird hinzugefügt | Keine Duplikate | | +| Bild wird korrekt gespeichert | In `images[]` mit passendem Prompt | | +| Andere Artikel bleiben unverändert | Kein Datenverlust | | + +## ✅ Statusänderung prüfen + +| Testschritt | Erwartung | Erfüllt? (✔/✘) | +|-----------------------------------------------------|-------------------------------|----------------| +| Artikelstatus ändern (z. B. auf Trash) | Wird korrekt übernommen | | +| Nur ein Artikel wird verändert | Kein Einfluss auf andere | | +| Artikel bleibt in JSON erhalten | Kein versehentliches Löschen | | + +## ✅ Gesamtsystemprüfung + +| Testschritt | Erwartung | Erfüllt? (✔/✘) | +|-----------------------------------------------------|-------------------------------------------|----------------| +| `articles.json` vollständig | Alle Artikel erhalten | | +| Keine Fehlermeldungen im UI oder Log | Logging funktioniert, keine Exceptions | | +| Filterfunktion bleibt erhalten nach Aktion | Kein Verlust des Statusfilters | | diff --git a/utils/dalle_generator.py b/utils/dalle_generator.py new file mode 100644 index 0000000..80ea607 --- /dev/null +++ b/utils/dalle_generator.py @@ -0,0 +1,29 @@ +import openai +import logging +import os + +openai.api_key = os.getenv("OPENAI_API_KEY") + +def generate_dalle_image(prompt: str) -> str: + """ + Erzeugt ein Bild mit DALL·E basierend auf dem übergebenen Prompt. + Gibt die URL zum generierten Bild zurück. + """ + try: + logging.info(f"🧠 Generiere DALL·E-Bild für Prompt: {prompt}") + + response = openai.images.generate( + model="dall-e-3", + prompt=prompt, + n=1, + size="1024x1024", + quality="standard" + ) + + image_url = response.data[0].url + logging.info(f"✅ Bild generiert: {image_url}") + return image_url + + except Exception as e: + logging.exception("❌ Fehler bei der DALL·E-Bildgenerierung") + return None