import yaml from pathlib import Path from typing import List _CONFIG_PATH = Path(__file__).parent / "keyring.yaml" def _load() -> dict: with open(_CONFIG_PATH, "r", encoding="utf-8") as f: return yaml.safe_load(f) or {} _cfg = _load() FEISHU_APP_ID: str = _cfg["FEISHU_APP_ID"] FEISHU_APP_SECRET: str = _cfg["FEISHU_APP_SECRET"] OPENAI_BASE_URL: str = _cfg["OPENAI_BASE_URL"] OPENAI_API_KEY: str = _cfg["OPENAI_API_KEY"] OPENAI_MODEL: str = _cfg.get("OPENAI_MODEL", "glm-4.7") WORKING_DIR: Path = Path(_cfg.get("WORKING_DIR", Path.home())).expanduser().resolve() METASO_API_KEY: str = _cfg.get("METASO_API_KEY", "") ALLOWED_OPEN_IDS: List[str] = _cfg.get("ALLOWED_OPEN_IDS", []) if ALLOWED_OPEN_IDS and not isinstance(ALLOWED_OPEN_IDS, list): ALLOWED_OPEN_IDS = [str(ALLOWED_OPEN_IDS)] def is_user_allowed(open_id: str) -> bool: """Check if a user is allowed to use the bot.""" if not ALLOWED_OPEN_IDS: return True return open_id in ALLOWED_OPEN_IDS