78 lines
2.7 KiB
Python
78 lines
2.7 KiB
Python
"""Zugriff auf die neuheiten-Plugin-Module über den vom Plugin-Loader
|
|
verwendeten Modulnamen (`spiele_redaktion_plugins.neuheiten`).
|
|
|
|
Der Kern teilt sich eine SQLAlchemy-MetaData; deshalb darf es pro Prozess
|
|
nur eine Modul-Identität geben. Tests importieren das Plugin daher über
|
|
diesen Helper statt direkt über `plugins.neuheiten`.
|
|
"""
|
|
from __future__ import annotations
|
|
|
|
import sys
|
|
from pathlib import Path
|
|
|
|
from redaktionskern.plugin_loader import discover_plugins
|
|
|
|
_PROJEKT_WURZEL = Path(__file__).resolve().parents[1]
|
|
|
|
if "spiele_redaktion_plugins.neuheiten" not in sys.modules:
|
|
discover_plugins(
|
|
_PROJEKT_WURZEL / "plugins",
|
|
entry_point_group="spiele_redaktion.tests.keine_entry_points",
|
|
)
|
|
|
|
_neuheiten = sys.modules["spiele_redaktion_plugins.neuheiten"]
|
|
|
|
bgg = _neuheiten.bgg
|
|
sync_modul = _neuheiten.sync
|
|
models = _neuheiten.models
|
|
|
|
BggClient = bgg.BggClient
|
|
BggFehler = bgg.BggFehler
|
|
BggAuthFehler = bgg.BggAuthFehler
|
|
MELDUNG_401 = bgg.MELDUNG_401
|
|
SuchTreffer = bgg.SuchTreffer
|
|
BggSpiel = bgg.BggSpiel
|
|
parse_suche = bgg.parse_suche
|
|
parse_things = bgg.parse_things
|
|
|
|
SyncService = sync_modul.SyncService
|
|
SyncErgebnis = sync_modul.SyncErgebnis
|
|
ist_moeglicher_prototyp = sync_modul.ist_moeglicher_prototyp
|
|
speichere_oder_aktualisiere = sync_modul.speichere_oder_aktualisiere
|
|
|
|
Neuheit = models.Neuheit
|
|
STATUS_NEUHEIT = models.STATUS_NEUHEIT
|
|
|
|
# ---------- Web-Quellen (Adapter + Sync-Orchestrierung) ----------
|
|
|
|
quellen_basis = _neuheiten.quellen.basis
|
|
quellen_sync_modul = _neuheiten.quellen_sync
|
|
models = _neuheiten.models # neu mit QuellenStatus
|
|
|
|
USER_AGENT = quellen_basis.USER_AGENT
|
|
QuellenAdapter = quellen_basis.QuellenAdapter
|
|
QuellenFehler = quellen_basis.QuellenFehler
|
|
QuellenTreffer = quellen_basis.QuellenTreffer
|
|
SammelErgebnis = quellen_basis.SammelErgebnis
|
|
WebQuellenClient = quellen_basis.WebQuellenClient
|
|
jahr_aus_datumsangabe = quellen_basis.jahr_aus_datumsangabe
|
|
titel_aehnlichkeit = quellen_basis.titel_aehnlichkeit
|
|
titel_normalisieren = quellen_basis.titel_normalisieren
|
|
|
|
SpielboxQuelle = _neuheiten.quellen.spielbox.SpielboxQuelle
|
|
BrettspielboxQuelle = _neuheiten.quellen.brettspielbox.BrettspielboxQuelle
|
|
SpielEssenQuelle = _neuheiten.quellen.spielessen.SpielEssenQuelle
|
|
CliquenabendQuelle = _neuheiten.quellen.cliquenabend.CliquenabendQuelle
|
|
|
|
ADAPTER_KLASSEN = quellen_sync_modul.ADAPTER_KLASSEN
|
|
WebQuellenSyncService = quellen_sync_modul.WebQuellenSyncService
|
|
QuellenLaufZeile = quellen_sync_modul.QuellenLaufZeile
|
|
quelle_aktiv = quellen_sync_modul.quelle_aktiv
|
|
TITEL_FUZZY_SCHWELLE = quellen_sync_modul.TITEL_FUZZY_SCHWELLE
|
|
QuellenStatus = models.QuellenStatus
|
|
|
|
|
|
def sys_modules_plugin():
|
|
"""Die geladene NeuheitenPlugin-Instanz (für Migrationen im Test)."""
|
|
return sys.modules["spiele_redaktion_plugins.neuheiten"].plugin
|