67 lines
2.3 KiB
Python
67 lines
2.3 KiB
Python
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 |