refactor(discord-cross): 使用模块专用日志记录器替换全局日志记录器

将各模块中的全局日志记录器替换为模块专用日志记录器,以提供更清晰的日志来源标识
同时在适配器中添加会话状态检查和重连机制,提升消息发送的可靠性
This commit is contained in:
2026-03-21 18:03:26 +08:00
committed by 镀铬酸钾
parent 1c874e6da0
commit 7eb585748d
4 changed files with 98 additions and 14 deletions

View File

@@ -0,0 +1,64 @@
# -*- coding: utf-8 -*-
"""
跨平台消息互通插件配置模块
"""
import os
from typing import Dict, Any
from core.utils.logger import ModuleLogger
# 创建模块专用日志记录器
logger = ModuleLogger("CrossPlatformConfig")
class CrossPlatformConfig:
def __init__(self):
self.CROSS_PLATFORM_MAP: Dict[int, Dict[str, Any]] = {}
self.CROSS_PLATFORM_CHANNEL = "neobot_cross_platform"
self.ENABLE_CROSS_PLATFORM = True
# DeepSeek API 配置
self.DEEPSEEK_API_KEY = "sk-Cn4BeHyTHDPRKuDadLy6dUnjSSHxrz5wQa54ZFAdQovXguLD"
self.DEEPSEEK_API_URL = "https://api.gptgod.online/v1/chat/completions"
self.DEEPSEEK_MODEL = "gemini-3-flash-preview"
# 是否启用翻译功能
self.ENABLE_TRANSLATION = True
async def reload(self):
"""重新加载配置"""
try:
config_path = os.path.join(os.path.dirname(__file__), "..", "..", "config.toml")
if os.path.exists(config_path):
try:
import tomllib
except ImportError:
import tomli as tomllib
with open(config_path, "rb") as f:
config_data = tomllib.load(f)
cross_platform_config = config_data.get("cross_platform", {})
self.ENABLE_CROSS_PLATFORM = cross_platform_config.get("enabled", True)
# 重新加载映射配置
mappings = cross_platform_config.get("mappings", {})
self.CROSS_PLATFORM_MAP.clear()
if isinstance(mappings, dict) and mappings:
for key, value in mappings.items():
if isinstance(value, dict) and "qq_group_id" in value:
try:
discord_id = int(key) if str(key).isdigit() else int(str(key).split('.')[-1])
self.CROSS_PLATFORM_MAP[discord_id] = {
"qq_group_id": int(value.get("qq_group_id", 0)),
"name": value.get("name", "")
}
except (ValueError, AttributeError):
continue
logger.success(f"[CrossPlatform] 配置已重新加载: {len(self.CROSS_PLATFORM_MAP)} 个映射")
except Exception as e:
logger.error(f"[CrossPlatform] 重新加载配置失败: {e}")
config = CrossPlatformConfig()

View File

@@ -9,11 +9,14 @@ from core.managers.command_manager import matcher
from models.events.message import GroupMessageEvent, MessageEvent
from models.message import MessageSegment
from core.permission import Permission
from core.utils.logger import logger
from core.utils.logger import ModuleLogger
from .config import config
from .parser import parse_forward_nodes
from .sender import forward_discord_to_qq, forward_qq_to_discord
# 创建模块专用日志记录器
logger = ModuleLogger("CrossPlatform")
async def handle_discord_message(
username: str,
discriminator: str,