ForcePilot/backend/package/yuxi/channels/adapters/urbit/doctor.py
Kris 80e3f66974 refactor(urbit): 整理导入顺序并修复多处代码细节
1.  统一调整多个文件的导入排序,将TYPE_CHECKING相关导入放在正确位置
2.  修复rate_limiter中当限制数<=0时直接返回false的逻辑
3.  为message_cache新增更新消息内容的方法
4.  重构extract_graph_content支持日记类型内容提取
5.  调整@提及匹配的正则表达式,避免误匹配
6.  完善invite_manager,添加客户端和凭据支持并实现自动接受群邀请逻辑
7.  调整adapter.py中的导入顺序和初始化逻辑
8.  修复monitor中的编辑事件处理,改为异步处理并实现消息更新缓存
9.  调整datetime导入顺序,统一使用UTC在前的格式
2026-05-13 16:16:27 +08:00

51 lines
1.5 KiB
Python

from __future__ import annotations
from typing import Any
from yuxi.utils.logging_config import logger
_LEGACY_KEY_MAP: dict[str, str] = {
"allow_private_network": "network.dangerously_allow_private_network",
"allowPrivateNetwork": "network.dangerouslyAllowPrivateNetwork",
}
def create_legacy_private_network_doctor_contract(
config: dict[str, Any],
) -> list[dict[str, str]]:
migrations: list[dict[str, str]] = []
for legacy_key, new_key in _LEGACY_KEY_MAP.items():
if legacy_key in config:
migrations.append(
{
"from": legacy_key,
"to": new_key,
"value": config[legacy_key],
}
)
return migrations
def apply_doctor_migrations(
config: dict[str, Any],
migrations: list[dict[str, str]],
) -> dict[str, Any]:
config = dict(config)
for mig in migrations:
legacy_key = mig["from"]
new_key = mig["to"]
value = mig["value"]
config.setdefault("network", {})
config["network"]["dangerously_allow_private_network"] = value
config["network"]["dangerouslyAllowPrivateNetwork"] = value
config.pop(legacy_key, None)
logger.info(f"[Urbit] Doctor: migrated {legacy_key}{new_key} = {value}")
return config
def is_legacy_private_network_config(config: dict[str, Any]) -> bool:
return "allow_private_network" in config or "allowPrivateNetwork" in config