import os import json import logging from pathlib import Path class Config: def __init__(self): self.api_base_url = "https://cursorapi.nosqli.com/admin" self.config_dir = Path(os.path.expanduser("~")) / ".cursor_switcher" self.config_file = self.config_dir / "config.json" self.member_file = self.config_dir / "member.json" self.load_config() def load_config(self): """加载配置""" try: self.config_dir.mkdir(parents=True, exist_ok=True) if not self.config_file.exists(): self.save_default_config() with open(self.config_file, "r", encoding="utf-8") as f: config = json.load(f) self.api_token = config.get("api_token", "") except Exception as e: logging.error(f"加载配置失败: {str(e)}") self.api_token = "" def save_member_info(self, info: dict): """保存会员信息""" try: with open(self.member_file, "w", encoding="utf-8") as f: json.dump(info, f, indent=2, ensure_ascii=False) except Exception as e: logging.error(f"保存会员信息失败: {str(e)}") def load_member_info(self) -> dict: """读取会员信息""" try: if self.member_file.exists(): with open(self.member_file, "r", encoding="utf-8") as f: return json.load(f) except Exception as e: logging.error(f"读取会员信息失败: {str(e)}") return { "expire_time": "", "days": 0, "new_days": 0 } def save_default_config(self): """保存默认配置""" config = { "api_token": "" } with open(self.config_file, "w", encoding="utf-8") as f: json.dump(config, f, indent=2, ensure_ascii=False) def save_config(self, api_token: str): """保存新的配置""" config = { "api_token": api_token } with open(self.config_file, "w", encoding="utf-8") as f: json.dump(config, f, indent=2, ensure_ascii=False) self.api_token = api_token