修改bug

This commit is contained in:
zhinianboke 2025-08-01 02:17:43 +08:00
parent 1dd4d9b841
commit f9a3881b74
3 changed files with 116 additions and 10 deletions

View File

@ -1723,30 +1723,43 @@ class XianyuLive:
async def _create_websocket_connection(self, headers):
"""创建WebSocket连接兼容不同版本的websockets库"""
import websockets
# 获取websockets版本用于调试
websockets_version = getattr(websockets, '__version__', '未知')
logger.debug(f"websockets库版本: {websockets_version}")
try:
# 尝试使用extra_headers参数
return websockets.connect(
self.base_url,
extra_headers=headers
)
except TypeError as e:
# 安全地检查异常信息
except Exception as e:
# 捕获所有异常类型不仅仅是TypeError
error_msg = self._safe_str(e)
logger.debug(f"extra_headers参数失败: {error_msg}")
if "extra_headers" in error_msg:
logger.warning("websockets库不支持extra_headers参数使用兼容模式")
if "extra_headers" in error_msg or "unexpected keyword argument" in error_msg:
logger.warning("websockets库不支持extra_headers参数尝试additional_headers")
# 使用additional_headers参数较新版本
try:
return websockets.connect(
self.base_url,
additional_headers=headers
)
except TypeError:
except Exception as e2:
error_msg2 = self._safe_str(e2)
logger.debug(f"additional_headers参数失败: {error_msg2}")
if "additional_headers" in error_msg2 or "unexpected keyword argument" in error_msg2:
# 如果都不支持则不传递headers
logger.warning("websockets库不支持headers参数使用基础连接模式")
return websockets.connect(self.base_url)
else:
raise
raise e2
else:
raise e
async def _handle_websocket_connection(self, websocket, toid, item_id, text):
"""处理WebSocket连接的具体逻辑"""

93
docker-rebuild.sh Normal file
View File

@ -0,0 +1,93 @@
#!/bin/bash
# ================================
# 闲鱼自动回复系统 - Docker重新构建脚本
# ================================
set -e
echo "🐳 闲鱼自动回复系统 - Docker重新构建"
echo "=================================="
# 检查Docker是否运行
if ! docker info > /dev/null 2>&1; then
echo "❌ Docker未运行请先启动Docker"
exit 1
fi
echo "📋 步骤1: 停止并删除现有容器"
echo "--------------------------------"
# 停止现有容器
if docker ps -q --filter "name=xianyu-auto-reply" | grep -q .; then
echo "🛑 停止现有容器..."
docker stop xianyu-auto-reply
fi
# 删除现有容器
if docker ps -aq --filter "name=xianyu-auto-reply" | grep -q .; then
echo "🗑️ 删除现有容器..."
docker rm xianyu-auto-reply
fi
echo "📋 步骤2: 删除现有镜像"
echo "--------------------------------"
# 删除现有镜像
if docker images -q xianyu-auto-reply | grep -q .; then
echo "🗑️ 删除现有镜像..."
docker rmi xianyu-auto-reply
fi
echo "📋 步骤3: 重新构建镜像"
echo "--------------------------------"
echo "🔨 开始构建新镜像..."
docker build -t xianyu-auto-reply .
echo "📋 步骤4: 启动新容器"
echo "--------------------------------"
echo "🚀 启动新容器..."
docker run -d \
--name xianyu-auto-reply \
--restart unless-stopped \
-p 8080:8080 \
-v "$(pwd)/data:/app/data" \
-v "$(pwd)/logs:/app/logs" \
-v "$(pwd)/backups:/app/backups" \
-e DOCKER_ENV=true \
xianyu-auto-reply
echo "📋 步骤5: 检查容器状态"
echo "--------------------------------"
# 等待容器启动
echo "⏳ 等待容器启动..."
sleep 5
# 检查容器状态
if docker ps --filter "name=xianyu-auto-reply" --filter "status=running" | grep -q xianyu-auto-reply; then
echo "✅ 容器启动成功"
echo "📋 容器信息:"
docker ps --filter "name=xianyu-auto-reply" --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}"
echo "📋 最近日志:"
docker logs --tail 20 xianyu-auto-reply
echo ""
echo "🎉 Docker重新构建完成"
echo "=================================="
echo "📱 Web界面: http://localhost:8080"
echo "📊 健康检查: http://localhost:8080/health"
echo "📋 查看日志: docker logs -f xianyu-auto-reply"
echo "🛑 停止容器: docker stop xianyu-auto-reply"
echo "🗑️ 删除容器: docker rm xianyu-auto-reply"
else
echo "❌ 容器启动失败"
echo "📋 错误日志:"
docker logs xianyu-auto-reply
exit 1
fi

View File

@ -11,7 +11,7 @@ pydantic>=2.7.0
loguru>=0.7.0
# 网络通信
websockets>=12.0
websockets>=10.0,<13.0
aiohttp>=3.9.0
requests>=2.31.0