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
This commit is contained in:
rene 2026-04-15 22:01:58 +02:00
parent 097295c628
commit 32d630d5a1
6 changed files with 598 additions and 3 deletions

View file

@ -525,6 +525,22 @@ def _migrate(conn_factory):
ON events(external_id) WHERE external_id IS NOT NULL;
""")
# Wiki: User-Foto-Einreichungen
conn.executescript("""
CREATE TABLE IF NOT EXISTS wiki_foto_submissions (
id INTEGER PRIMARY KEY AUTOINCREMENT,
user_id INTEGER NOT NULL REFERENCES users(id) ON DELETE CASCADE,
rasse_id INTEGER NOT NULL REFERENCES wiki_rassen(id) ON DELETE CASCADE,
foto_url TEXT NOT NULL,
status TEXT NOT NULL DEFAULT 'pending',
created_at TEXT NOT NULL DEFAULT (datetime('now')),
reviewed_by INTEGER REFERENCES users(id),
reviewed_at TEXT,
reject_reason TEXT
);
CREATE INDEX IF NOT EXISTS idx_wfs_status ON wiki_foto_submissions(status, created_at DESC);
""")
# Freundschaften + Direktnachrichten
conn.executescript("""
CREATE TABLE IF NOT EXISTS friendships (