refactor: 重构代码结构和导入路径

fix(ws): 修复反向WebSocket管理器中的循环导入问题
docs: 删除不再使用的文档文件
style: 统一模型导入路径为neobot.models
chore: 更新配置文件中的API密钥和连接地址
This commit is contained in:
aakiscool1314
2026-03-27 14:14:09 +08:00
committed by 镀铬酸钾
parent 5c11910ce2
commit 53007af2ad
4 changed files with 22 additions and 327 deletions

View File

@@ -66,8 +66,28 @@ class DiscordAdapter(discord.Client if DISCORD_AVAILABLE else object):
self.start_heartbeat_task(interval=30)
# 启动 Redis 订阅以处理跨平台消息
if self._redis_sub_task is None or self._redis_sub_task.done():
if self._redis_sub_task is not None and not self._redis_sub_task.done():
self._redis_sub_task.cancel()
try:
await self._redis_sub_task
except asyncio.CancelledError:
pass
self._redis_sub_task = asyncio.create_task(self.start_redis_subscription())
async def on_resumed(self):
"""当 Bot 重新连接到 Discord 时触发"""
self.logger.success(f"Discord Bot 已重新连接: {self.user} (ID: {self.user.id})")
self.start_heartbeat_task(interval=30)
if self._redis_sub_task is None or self._redis_sub_task.done():
if self._redis_sub_task is not None and not self._redis_sub_task.done():
self._redis_sub_task.cancel()
try:
await self._redis_sub_task
except asyncio.CancelledError:
pass
self._redis_sub_task = asyncio.create_task(self.start_redis_subscription())
async def on_message(self, message: 'discord.Message'):
@@ -198,12 +218,7 @@ class DiscordAdapter(discord.Client if DISCORD_AVAILABLE else object):
if not self.is_closed():
self.logger.info(f"[DiscordAdapter] 正在发送消息到频道 {channel_id}")
else:
self.logger.error(f"[DiscordAdapter] 会话已关闭,无法发送消息到频道 {channel_id}")
# 触发重连
self.logger.warning(f"[DiscordAdapter] 会话已关闭,将触发重连")
if self.ws is not None:
# 关闭 WebSocket 连接,让 discord.py 自动重连
await self.ws.close(4000)
self.logger.warning(f"[DiscordAdapter] 会话已关闭,消息将被丢弃: channel_id={channel_id}")
return
embed = None
@@ -297,11 +312,6 @@ class DiscordAdapter(discord.Client if DISCORD_AVAILABLE else object):
self.logger.success(f"[DiscordAdapter] 消息已发送到频道 {channel_id}")
except Exception as send_error:
self.logger.error(f"[DiscordAdapter] 发送消息失败 (channel.send): {send_error}")
# 如果发送失败,尝试检查会话状态
if self.is_closed():
self.logger.warning(f"[DiscordAdapter] 会话已关闭,将触发重连")
if self.ws is not None:
await self.ws.close(4000)
raise
else:
self.logger.debug(f"[DiscordAdapter] 没有内容需要发送到频道 {channel_id}")