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在前的格式
51 lines
1.5 KiB
Python
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
|