from ..connection import connect def get_xapi_settings(slug: str) -> dict[str, str]: """Réglages xAPI de CE jeu (voir set_xapi_settings.py — stockés dans _meta, même convention que 'name'/'onboarding_type', voir db/games/game_type_catalog.py) : URL du LRS (Learning Record Store) + identifiants, saisis une seule fois par le créateur du jeu (voir routes/publish/xapi_settings.py) plutôt que négociés à chaque lancement (jamais le protocole cmi5 complet, voir publish/ build_scorm_package.py::build_scorm_zip). Chaînes vides si non configuré — `endpoint` vide signifie "xAPI désactivé pour ce jeu".""" conn = connect(slug) rows = conn.execute( "SELECT key, value FROM _meta WHERE key IN ('xapi_lrs_endpoint', 'xapi_lrs_login', 'xapi_lrs_password')" ).fetchall() conn.close() values = {row["key"]: row["value"] for row in rows} return { "endpoint": values.get("xapi_lrs_endpoint") or "", "login": values.get("xapi_lrs_login") or "", "password": values.get("xapi_lrs_password") or "", }