Plugin neuheiten: Web-Quellen-Crawler (4 Adapter, Rate-Limit, Dedup-Gate, Sync-UI)

This commit is contained in:
Flo Hartmann
2026-08-23 00:41:02 +00:00
parent 8c9f542b8c
commit 3b0626c774
18 changed files with 2247 additions and 18 deletions

View File

@@ -0,0 +1,57 @@
"""Quellen-Adapter des Neuheiten-Plugins (Adapter-Pattern).
Ein Modul pro Quelle plus gemeinsame Basis (`basis.py`); die
Orchestrierung (alle aktiven Quellen, Fehler-Isolation, Dedup, Upsert,
Statusprotokoll) liegt in `quellen_sync.py` des Plugin-Pakets.
Neue Quelle hinzufügen:
1. Modul `meine_quelle.py` mit einer `QuellenAdapter`-Unterklasse
(Klassenattribute `name` und `anzeigename` setzen).
2. Klasse in `ADAPTER_KLASSEN` ergänzen — Env-Schalter, Statuszeile und
Sync-Übersicht ergeben sich automatisch aus dem `name`
(SPIELE_NEUHEITEN_QUELLE_<NAME_GROSS>_AKTIV).
"""
from __future__ import annotations
from .basis import (
USER_AGENT,
QuellenAdapter,
QuellenAntwort,
QuellenFehler,
QuellenTreffer,
SammelErgebnis,
WebQuellenClient,
jahr_aus_datumsangabe,
titel_aehnlichkeit,
titel_normalisieren,
)
from .brettspielbox import BrettspielboxQuelle
from .cliquenabend import CliquenabendQuelle
from .spielessen import SpielEssenQuelle
from .spielbox import SpielboxQuelle
#: Alle verfügbaren Web-Quellen in fester Reihenfolge.
ADAPTER_KLASSEN: tuple[type[QuellenAdapter], ...] = (
SpielboxQuelle,
BrettspielboxQuelle,
SpielEssenQuelle,
CliquenabendQuelle,
)
__all__ = [
"ADAPTER_KLASSEN",
"USER_AGENT",
"QuellenAdapter",
"QuellenAntwort",
"QuellenFehler",
"QuellenTreffer",
"SammelErgebnis",
"WebQuellenClient",
"jahr_aus_datumsangabe",
"titel_aehnlichkeit",
"titel_normalisieren",
"SpielboxQuelle",
"BrettspielboxQuelle",
"SpielEssenQuelle",
"CliquenabendQuelle",
]