Automatisches Einlesen, Umschreiben & Vorbereiten von RSS-Artikeln zur Veröffentlichung
Find a file
OliverGiertz aaac5def27 feat(pipeline): image caption/credit extraction, no-image exclusion, WP attribution
source_extraction.py:
- New _extract_image_metadata(): extracts figcaption text + copyright/credit
  per image URL using 3 strategies (figure+figcaption, data-* attributes,
  adjacent credit spans)
- ExtractedArticle gets new image_metadata field
- extracted_article_to_meta() includes image_metadata in stored JSON

pipeline.py:
- After auto image selection, check if selected_url is set
- Articles without usable image → status "no_image" (excluded with Telegram notice)
- PipelineStats and summary report include no_image counter

db.py:
- Add "no_image" to articles status CHECK constraint
- Migration: recreates articles table with updated constraint on existing DBs

workflow.py / main.py:
- Map no_image as own UI status with rewrite/close transitions

wordpress.py:
- _upload_featured_media() accepts image_caption param, sends to WP media
- _get_image_meta_for_url() / _build_image_caption() helpers
- _build_attribution_block(): separator + attribution paragraph at article end
  (original link, author, Bildnachweis/credit)
- _build_post_content() appends attribution block

telegram_bot.py:
- notify_pipeline_done() shows 🖼️ no-image count

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-27 07:08:48 +00:00
.dedupe Image Dublettenprüfung 2025-08-18 07:36:48 +02:00
.github fix(deploy): correct service name and app path for Hetzner 2026-03-21 09:43:55 +00:00
backend feat(pipeline): image caption/credit extraction, no-image exclusion, WP attribution 2026-03-27 07:08:48 +00:00
data Bump version to v1.7.1 2025-08-28 11:18:30 +02:00
docs fix(rewrite): make image upload non-fatal and add rewrite tracing logs 2026-03-26 07:45:55 +00:00
internal Grundfunktionen optimiert 2025-08-16 11:13:10 +02:00
logs Bump version to v1.7.1 2025-08-28 11:18:30 +02:00
pages Bump version to v1.6.3 2025-08-18 10:33:27 +02:00
scripts feat: rebuild rss-news backend, admin ui, and legal extraction pipeline 2026-02-18 09:52:36 +01:00
static Bump version to v1.6.3 2025-08-18 10:33:27 +02:00
tools Image Dublettenprüfung 2025-08-18 07:37:32 +02:00
utils Bump version to v1.7.1 2025-08-28 11:18:30 +02:00
.env.example Bump version to v1.7.1 2025-08-28 11:18:30 +02:00
.gitignore Update .gitignore 2025-08-17 18:01:33 +02:00
__version__.py Bump version to v1.7.1 2025-08-28 11:18:30 +02:00
AGENTS.md Bump version to v1.7.1 2025-08-28 11:18:30 +02:00
app.py Bump version to v1.7.1 2025-08-28 11:18:30 +02:00
CHANGELOG.md feat: rebuild rss-news backend, admin ui, and legal extraction pipeline 2026-02-18 09:52:36 +01:00
LICENCE Release 1.1.0 2025-07-04 09:48:03 +02:00
main.py Wordpress API Anbindung imprementiert 2025-08-16 13:01:10 +02:00
pytest.ini feat: rebuild rss-news backend, admin ui, and legal extraction pipeline 2026-02-18 09:52:36 +01:00
README.md feat: rebuild rss-news backend, admin ui, and legal extraction pipeline 2026-02-18 09:52:36 +01:00
requirements.txt Update requirements.txt 2025-08-17 17:58:18 +02:00
test_checklist.md 🔖 Release v1.5.0 2025-07-08 10:48:12 +02:00
versioning.py Bump version to v1.6.2 2025-08-16 13:39:10 +02:00

rss-news (Rebuild)

rss-news wird als bestehendes Repository weitergefuehrt und schrittweise zu einer robusten, rechtssicheren News-Pipeline neu aufgebaut.

Aktueller Stand:

  • Alte Streamlit-App wird nicht produktiv genutzt.
  • news.vanityontour.de wird bis zum Go-Live der neuen App auf https://vanityontour.de umgeleitet.
  • Planung, Doku und Wiki werden als Grundlage fuer den Neuaufbau gepflegt.

Ziele

  • RSS-gestuetzte Artikelverarbeitung mit klaren Quellregeln
  • Rechtssichere Nutzung (Quellen, Attribution, Lizenzinformationen)
  • Zuverlaessige Automatisierung auf Hetzner
  • Publikation nach WordPress (IONOS aktuell, spaeter offen)
  • Zugriff nur nach Login (zunaechst User/Password)

Architektur-Richtung (MVP)

  • Backend: Python + FastAPI
  • Jobs: Queue-Worker (z. B. Redis + RQ/Celery)
  • Daten: SQLite fuer MVP, spaeter optional PostgreSQL
  • Auth: Session-Login mit einem Admin-User
  • Publishing: WordPress REST API (Status zunaechst pending)

Details: docs/PROJECT_PLAN.md

Projektsteuerung

  • GitHub Project: https://github.com/users/OliverGiertz/projects/3/views/1
  • Dieses Board ist die zentrale Steuerung fuer ToDos, Bugs, Verbesserungen.
  • Wiki-Struktur liegt unter docs/wiki/.

Dokumentation

  • Projektplan: docs/PROJECT_PLAN.md
  • ToDo-Liste: docs/TODO.md
  • Quell- und Lizenzpolicy: docs/SOURCE_POLICY.md
  • Wiki Home: docs/wiki/Home.md

Lokale Entwicklung (Legacy-Code)

Der vorhandene Legacy-Stand kann weiterhin lokal gestartet werden:

python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
streamlit run app.py

Hinweis: Diese App ist funktional historisch und wird durch die neue Architektur ersetzt.

Deployment-Zielbild

  • Betrieb auf Hetzner
  • Reverse Proxy via CloudPanel/Nginx
  • Produktive Domain: news.vanityontour.de
  • Bis zur Fertigstellung: Redirect auf https://vanityontour.de

Sicherheit

  • Keine Secrets im Repository
  • .env lokal/auf Server, nie committen
  • Auth-Pflicht fuer die neue WebApp
  • spaeter optional: Passkeys/WebAuthn

Rechtlicher Hinweis

Dieses Projekt verarbeitet nur Quellen mit dokumentierter Nutzungsgrundlage. Vor produktiver Nutzung ist eine finale rechtliche Pruefung der ausgewaehlten Feeds notwendig.