refactor: 重构代码结构和导入路径
fix(ws): 修复反向WebSocket管理器中的循环导入问题 docs: 删除不再使用的文档文件 style: 统一模型导入路径为neobot.models chore: 更新配置文件中的API密钥和连接地址
This commit is contained in:
@@ -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}")
|
||||
|
||||
Reference in New Issue
Block a user