f7370028da
KI-Vision-Model, Breed-Scraper, Karte/Routen + Release v1292
...
Parallele Arbeit (auf Staging mitgetestet): KI-Vision-Model (VISION_MODEL in
ki.py/routes, im KI-Status sichtbar), Breed-Scraper-Anpassungen
(breed_enricher/breed_evaluator, evaluate_enrichment mit user_id),
Karten-/Routen-Änderungen (map.js, routes.js), kleinere UI-Anpassungen
(admin.js, components.css), docker-compose, MARKETING, nav-loop-Test.
Version-Bump auf 1292 (VERSION, sw.js, app.js, index.html, landing.html).
2026-06-14 20:23:21 +02:00
f2e87bd681
Fix: VDH-Fallback-Events aktualisiert — Frankfurt Mai entfernt (vergangen), 7 korrekte Termine 2026
2026-05-08 13:52:37 +02:00
00b7a54a8f
Fix: VDH-Scraper ReadTimeout — 60s read-Timeout, besseres Exception-Logging
2026-05-08 13:46:31 +02:00
da036d2b93
Fix: VDH-Scraper Regex statt HTMLParser (void-element Depth-Bug), parse_spezial + parse_sport
2026-05-08 13:43:40 +02:00
4e5a13d9e2
Fix: VDH-Scraper <br> in handle_starttag statt handle_endtag (void elements)
2026-05-08 13:38:13 +02:00
bff54dcfd3
Fix: VDH-Scraper komplett neu — dedizierte Parser für /ausstellungen/liste/ und /hundesport/termine/ (neue HTML-Struktur)
2026-05-08 13:34:13 +02:00
f02b9aa4ab
Fix: VDH-Scraper URLs aktualisiert — /veranstaltungen/ → /ausstellungen/ + /hundesport/termine/ (SW by-v777)
2026-05-08 13:28:12 +02:00
2fed44fbd4
fetch_wiki_images: Commons File-Namespace-Suche entfernt
...
_commons_search() und deren Aufruf (Stufe 4+5) entfernt.
Nur WP pageimages DE/EN + Commons pageimages (exakter Treffer) bleiben.
urllib.parse Import entfernt.
2026-04-25 09:25:48 +02:00
26074a42db
Scraper: Commons-Suche nur bei vollständigem Namensmatch im Dateinamen
2026-04-25 09:22:14 +02:00
fc4cfcf19b
Scraper: fetch_wiki_images striktere Bildfilterung (kein PDF/Stadtfoto/Dokument)
2026-04-25 09:19:15 +02:00
93ea8a69fd
Scraper: fetch_wiki_images mit Commons-Dateisuche (File-Namespace)
2026-04-25 09:17:40 +02:00
0af3078a2a
Breed Enricher: sqlite3.Row zu dict konvertieren in _enrich_one
2026-04-25 08:40:30 +02:00
77f6af8817
Breed-Enricher: verbesserte Wikipedia-Suche + retry_missed für ki_enriched=2
...
- _NAME_ALIASES-Dict mit 20 Rassen-Mappings (z.B. Zwergpinscher → Miniature Pinscher)
- exsentences=5 statt exintro=1 + Threshold 80 statt 150 Zeichen (fixiert Zwergpinscher, Spinone, Thai Bangkaew)
- Neue Fallback-Kette: direkt DE/EN → name_de → Aliasse → normalisierte Namen → opensearch DE/EN
- Neue Funktion retry_missed(limit) für ki_enriched=2 ohne DB-Reset
- CLI-Flags --retry-missed und --dry-run
2026-04-25 08:36:27 +02:00
69f78219ae
Scraper: fetch_wiki_images.py — Rassen-Fotos via Wikipedia pageimages API
...
Neues standalone-Script holt fehlende Fotos für wiki_rassen direkt
von Wikipedia (de → en Fallback) und Wikimedia Commons, ohne lokalen
Download — URL wird direkt in foto_url gespeichert.
CLI: --limit N, --dry-run, --model claude-sonnet-4-6
2026-04-25 08:20:39 +02:00
d90d4f1eeb
breed_enricher: Wikipedia-grounded via Haiku, ki_source-Spalte, Gemma-Reset; SW by-v337
2026-04-24 18:43:31 +02:00
eea1de6d95
ki: return_model-Flag + ki_model in wiki_rassen; Evaluator filtert Claude-Einträge raus
2026-04-24 18:29:23 +02:00
d80abf07e5
breed_evaluator: LLM-as-Judge Qualitätsbewertung via Claude Haiku
2026-04-24 18:27:15 +02:00
228dc0170a
breed_enricher: User-Agent für Wikipedia API (Fix 403)
2026-04-24 17:43:16 +02:00
28cad893d1
breed_enricher: Wikimedia-Foto-Fetch + alle Rassen in einem Rutsch (limit 2000)
...
- breed_enricher: _fetch_wikimedia_photo() (de/en Fallback via Wikipedia API)
- breed_enricher: foto_url nach KI-Anreicherung automatisch befüllen
- scheduler: Startup- und Nacht-Job auf limit=2000 (357 ausstehende Rassen)
- scheduler: Status-Report alle 2h statt 2×/Tag
- dogs.py: sitting_access → sitting_subscriptions (SQL-Fix)
2026-04-24 17:38:40 +02:00
15f854d96c
Session 2026-04-23: Security, Content-Schutz, Wiki-Temperament-Migration
...
Security (9 Fixes):
- JWT_SECRET Pflicht-Check beim Start (Production)
- Rate-Limit: Login (10/5min), Register (5/h), KI-Training (10/h), Giftköder (3/h)
- KI-Training-Endpoint: Auth-Pflicht hinzugefügt
- Private Profile aus Freunde-Suche gefiltert
- OG-Tags XSS mit html.escape() gesichert
- Globales File-Upload-Limit 20 MB (Middleware)
- E-Mail-Maskierung für Moderatoren im Admin-Panel
- IP-Blocklist in ratelimit.py
Content-Schutz (4 Schichten):
- robots.txt: /api/ komplett Disallow, SSR-Seiten Allow
- Rate-Limit auf /api/wiki/rassen (60/min) + Detail (30/min)
- Honeypot /api/wiki/trap + unsichtbarer Link in index.html
- Wasserzeichen in KI-Enricher-Prompt
Wiki Temperament-Migration:
- 60-Wort Übersetzungsmap EN→DE
- Datenmüll-Filter (hunderasse, dog breed etc.)
- translate_existing_temperaments() + Admin-Button
- SW by-v318, APP_VER 306
2026-04-23 18:34:05 +02:00
180de32e57
Session 2026-04-21: SEO, Wiki-Anreicherung, Training, Lober
...
SEO & Crawler:
- robots.txt, llms.txt, sitemap.xml (508 Seiten bei Google)
- SSR-Seiten: /info, /wiki/rassen, /wiki/rasse/{slug}, /knigge
- Open Graph, JSON-LD, Breadcrumbs in index.html
Navigation:
- Training unter "Mein Hund", Wissen collapsible
- Welcome-Seite und Landing-Page auf 5-Gruppen-Struktur
Wiki:
- KI-Anreicherung (Claude API): beschreibung, vorkommen_de, Steckbrief
- "So einen hab ich" / Züchter-Verzeichnis
- Scheduler: 50 Rassen beim Start, 20/Nacht
Training:
- Session-Logging (Erfolgsquote, Stimmung, Zufriedenheit)
- Virtueller KI-Trainer (6h-Cache)
- Trainingskalender (Habit-Tracker)
- Top-Training → automatischer Tagebucheintrag
- Gamification ohne Druck: Badges, Streak, Stats
Fortschritts-Lober:
- Jeden Montag 09:00: Claude schreibt Lob-Text pro Hund
- Push + Karte im Tagebuch
Monitoring:
- 4× täglich Status-Mail mit Scheduler-Status + Wiki-Fortschritt
2026-04-21 19:38:20 +02:00
a7753c9cf5
Sprint 16: Chat-Fotos/Online/Read-Receipts, Gesundheit-Dokumente löschen, Bugfixes
...
- Chat: Foto-Versand (POST /api/chat/conversations/{id}/upload, media_url/media_type)
- Chat: Online-Indikator (last_seen Heartbeat, grüner Dot, 3min-Fenster)
- Chat: Read Receipts (read_at, Einzel-/Doppelhaken-Icons)
- Gesundheit: Dokument löschen (DELETE .../dokument, Datei + DB-Eintrag)
- Bug: events.user_id NOT NULL → nullable (Table-Recreation-Migration)
- Bug: scheduler INSERT user_id 0 → NULL
- Bug: Wikidata Rate-Limit: sleep 0.3s→1.0s, retries 2→4, exponentielles Backoff
- SW: by-v146, APP_VER 119
2026-04-17 22:38:33 +02:00
32d630d5a1
Sprint 11b: Wiki-Foto-Einreichungen + Wikipedia-Foto-Scraper
...
- User können Fotos für Rassen vorschlagen (Upload-Modal in Rassen-Detail)
- Mod/Admin-Review-Tab im Wiki mit Freischalten/Ablehnen + Push-Notification
- wikipedia_photos.py: holt Fotos über Wikidata-QID → Wikipedia-API
- Foto-Status: 578 lokal, 186 extern, 238 ohne Foto
- DB: wiki_foto_submissions Tabelle
- SW by-v90
2026-04-15 22:01:58 +02:00
097295c628
Sprint 11: Freunde & Chat + Phosphor-Icon-Vollmigration
...
- Freundschaften (pending/accepted), Nutzersuche, Anfragen per Push
- Direktnachrichten mit Polling, iMessage-Stil, Deep-Links aus Push
- Alle Seiten (map, places, diary, health, dog-profile, sitting, knigge,
forum, wiki, walks) vollständig auf Phosphor-Icons migriert
- Wikidata-Rassen-Scraper (~833 neue Rassen, lokal gespiegelte Fotos)
- TheDogAPI lokal gespiegelt (169 Rassen + Fotos)
- Quiz-Result-Cards horizontal (korrekte Bildproportionen)
- SW by-v89
2026-04-15 21:33:53 +02:00