This commit is contained in:
NotSoToothless
2026-06-17 00:32:30 -07:00
committed by GitHub
parent d07afdee21
commit 7bd8a1b72c
10 changed files with 808 additions and 32 deletions
+25
View File
@@ -39,6 +39,7 @@ log = logging.getLogger("tssbot.preferences")
PREFERENCES_DIR: Path = STORAGE_DIR / "PREFERENCES"
TEAMS_JSON_PATH: Path = STORAGE_DIR / "TEAMS.json"
FEATURES_DIR: Path = STORAGE_DIR / "FEATURES"
_CHANNEL_ID_RE = re.compile(r"(\d{17,20})")
@@ -182,3 +183,27 @@ def set_guild_team(guild_id: int | str, team_id: int, name: str) -> bool:
teams = load_teams()
teams[str(guild_id)] = {"TM_Name": name, "team_id": int(team_id)}
return _write_json(TEAMS_JSON_PATH, teams)
# ---------------------------------------------------------------------------
# FEATURES.json — per-guild feature flags (shared with SREBOT; we use Language)
# ---------------------------------------------------------------------------
def _guild_features_path(guild_id: int | str) -> Path:
return FEATURES_DIR / f"{guild_id}-features.json"
def load_features(guild_id: int | str) -> dict[str, Any]:
"""Load a guild's feature flags (shared SREBOT/TSSBOT file)."""
data = _read_json(_guild_features_path(guild_id), {})
return data if isinstance(data, dict) else {}
def save_features(guild_id: int | str, features: dict[str, Any]) -> bool:
"""Persist a guild's feature flags."""
return _write_json(_guild_features_path(guild_id), features)
def guild_language_column(guild_id: int | str) -> str:
"""Return the guild's LangTableReader column, e.g. ``<English>`` (the default)."""
return load_features(guild_id).get("Language") or "<English>"