修改飞书配置
This commit is contained in:
@@ -44,16 +44,74 @@ class ConfigManager:
|
|||||||
return {
|
return {
|
||||||
"app_id": feishu.app_id or "",
|
"app_id": feishu.app_id or "",
|
||||||
"app_secret": feishu.app_secret or "",
|
"app_secret": feishu.app_secret or "",
|
||||||
|
"app_token": feishu.app_token or "",
|
||||||
"table_id": feishu.table_id or "",
|
"table_id": feishu.table_id or "",
|
||||||
"verification_token": feishu.verification_token or "",
|
"verification_token": feishu.verification_token or "",
|
||||||
"encrypt_key": feishu.encrypt_key or "",
|
"encrypt_key": feishu.encrypt_key or "",
|
||||||
"status": "active" if (feishu.app_id and feishu.app_secret) else "inactive"
|
"status": "active" if (feishu.app_id and feishu.app_secret and feishu.app_token and feishu.table_id) else "inactive"
|
||||||
}
|
}
|
||||||
|
|
||||||
def update_feishu_config(self, **kwargs) -> bool:
|
def update_feishu_config(self, **kwargs) -> bool:
|
||||||
"""更新飞书配置(仅用于兼容性,实际应修改 .env 文件)"""
|
"""更新飞书配置并同步到 .env 文件"""
|
||||||
logger.warning("飞书配置应该在 .env 文件中修改,而不是通过 API 更新")
|
try:
|
||||||
return False
|
import os
|
||||||
|
from src.config.unified_config import reload_config
|
||||||
|
|
||||||
|
env_path = os.path.join(os.getcwd(), '.env')
|
||||||
|
env_content = ""
|
||||||
|
|
||||||
|
# 读取现有内容
|
||||||
|
if os.path.exists(env_path):
|
||||||
|
with open(env_path, 'r', encoding='utf-8') as f:
|
||||||
|
lines = f.readlines()
|
||||||
|
else:
|
||||||
|
lines = []
|
||||||
|
|
||||||
|
# 准备更新的映射
|
||||||
|
mapping = {
|
||||||
|
'app_id': 'FEISHU_APP_ID',
|
||||||
|
'app_secret': 'FEISHU_APP_SECRET',
|
||||||
|
'app_token': 'FEISHU_APP_TOKEN',
|
||||||
|
'table_id': 'FEISHU_TABLE_ID',
|
||||||
|
'verification_token': 'FEISHU_VERIFICATION_TOKEN',
|
||||||
|
'encrypt_key': 'FEISHU_ENCRYPT_KEY'
|
||||||
|
}
|
||||||
|
|
||||||
|
updates = {mapping[k]: v for k, v in kwargs.items() if k in mapping and v is not None}
|
||||||
|
|
||||||
|
# 更新或添加行
|
||||||
|
new_lines = []
|
||||||
|
seen_keys = set()
|
||||||
|
|
||||||
|
for line in lines:
|
||||||
|
key_part = line.split('=')[0].strip()
|
||||||
|
if key_part in updates:
|
||||||
|
new_lines.append(f"{key_part}={updates[key_part]}\n")
|
||||||
|
seen_keys.add(key_part)
|
||||||
|
else:
|
||||||
|
new_lines.append(line)
|
||||||
|
|
||||||
|
# 添加原文件中不存在的键
|
||||||
|
for key, value in updates.items():
|
||||||
|
if key not in seen_keys:
|
||||||
|
if new_lines and not new_lines[-1].endswith('\n'):
|
||||||
|
new_lines.append('\n')
|
||||||
|
new_lines.append(f"{key}={value}\n")
|
||||||
|
|
||||||
|
# 写回文件
|
||||||
|
with open(env_path, 'w', encoding='utf-8') as f:
|
||||||
|
f.writelines(new_lines)
|
||||||
|
|
||||||
|
# 重新加载全局配置
|
||||||
|
reload_config()
|
||||||
|
# 更新本地引用的统一配置实例
|
||||||
|
self._unified_config = get_config()
|
||||||
|
|
||||||
|
logger.info("飞书配置已成功更新并保存到 .env 文件")
|
||||||
|
return True
|
||||||
|
except Exception as e:
|
||||||
|
logger.error(f"更新飞书配置失败: {e}")
|
||||||
|
return False
|
||||||
|
|
||||||
def get_system_config(self) -> Dict[str, Any]:
|
def get_system_config(self) -> Dict[str, Any]:
|
||||||
"""获取系统配置"""
|
"""获取系统配置"""
|
||||||
|
|||||||
Reference in New Issue
Block a user