Automatisches Einlesen, Umschreiben & Vorbereiten von RSS-Artikeln zur Veröffentlichung
The first pass only covered published posts, so 137 scheduled ones were
still uncategorised. Seven of them matched no rule at all and exposed
real gaps: the regions Pfalz and Erzgebirge, and the gear nouns in
"Duschzelte", "Outdoor-Messer" and "Outdoor-Stuhl", which the existing
compound keywords could not reach because the noun sits at the end.
Adding those flipped two discount posts ("Lidl Zelt im Angebot", "Aldi
Relax-Stuhl") into the gear category, because the new product keywords
outweighed the weaker "lidl"/"aldi" signals. Both retailers only ever
appear in discount posts here, so they now carry enough weight to
trigger the offer override themselves.
Region keywords are weight 2, not 3: at 3 they outranked an explicit
"Campingplatz" in the title and pulled campsite articles into
"Reiseziele". Bare "pfalz" is weight 1 because it double-counts inside
"rheinland-pfalz".
Scheduled posts now match a rule 136 of 137 times. Ten published posts
change category as a result and were updated in WordPress to keep the
archive and the rules in sync.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
||
|---|---|---|
| .dedupe | ||
| .github | ||
| backend | ||
| data | ||
| docs | ||
| internal | ||
| logs | ||
| pages | ||
| scripts | ||
| static | ||
| tools | ||
| utils | ||
| .env.example | ||
| .gitignore | ||
| __version__.py | ||
| AGENTS.md | ||
| app.py | ||
| CHANGELOG.md | ||
| LICENCE | ||
| main.py | ||
| pytest.ini | ||
| README.md | ||
| requirements.txt | ||
| test_checklist.md | ||
| versioning.py | ||
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.dewird bis zum Go-Live der neuen App aufhttps://vanityontour.deumgeleitet.- 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
.envlokal/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.