-am (#1329)
This commit is contained in:
@@ -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>"
|
||||
|
||||
Reference in New Issue
Block a user