mirror of
https://github.com/zhinianboke/xianyu-auto-reply.git
synced 2025-08-29 17:17:38 +08:00
5.3 KiB
5.3 KiB
账号自动回复暂停时间配置功能
功能概述
为每个账号单独配置自动回复暂停时间,当检测到手动发出消息后,该账号的自动回复会暂停指定的时间长度。
功能特性
1. 个性化配置
- 每个账号可以单独设置暂停时间(1-60分钟)
- 默认暂停时间为10分钟
- 支持实时修改,立即生效
2. 直观界面
- 在账号管理表格中新增"暂停时间"列
- 点击暂停时间可直接编辑
- 带有说明工具提示,解释功能作用
3. 智能验证
- 暂停时间范围限制:1-60分钟
- 输入验证和错误提示
- 支持键盘操作(Enter保存,Escape取消)
界面展示
表格列头
账号ID | Cookie值 | 关键词 | 状态 | 默认回复 | AI回复 | 自动确认发货 | 备注 | 暂停时间 | 操作
暂停时间列
- 显示格式:
🕐 10分钟
- 工具提示:
检测到手动发出消息后,自动回复暂停的时间长度(分钟)。如果在暂停期间再次手动发出消息,会重新开始计时。
- 点击可编辑,支持数字输入框
技术实现
数据库结构
-- cookies表新增字段
ALTER TABLE cookies ADD COLUMN pause_duration INTEGER DEFAULT 10;
后端API
1. 更新暂停时间
PUT /cookies/{cid}/pause-duration
Content-Type: application/json
Authorization: Bearer {token}
{
"pause_duration": 15
}
响应:
{
"message": "暂停时间更新成功",
"pause_duration": 15
}
2. 获取暂停时间
GET /cookies/{cid}/pause-duration
Authorization: Bearer {token}
响应:
{
"pause_duration": 15,
"message": "获取暂停时间成功"
}
前端功能
1. 表格显示
- 在账号列表中显示每个账号的暂停时间
- 默认显示为"🕐 10分钟"格式
2. 内联编辑
function editPauseDuration(cookieId, currentDuration) {
// 创建数字输入框
// 支持1-60分钟范围
// Enter保存,Escape取消
// 实时验证和错误提示
}
3. 工具提示
- 使用Bootstrap Tooltip组件
- 自动初始化和重新初始化
暂停管理器集成
动态获取暂停时间
def pause_chat(self, chat_id: str, cookie_id: str):
"""暂停指定chat_id的自动回复,使用账号特定的暂停时间"""
# 获取账号特定的暂停时间
try:
from db_manager import db_manager
pause_minutes = db_manager.get_cookie_pause_duration(cookie_id)
except Exception as e:
logger.error(f"获取账号 {cookie_id} 暂停时间失败: {e},使用默认10分钟")
pause_minutes = 10
pause_duration_seconds = pause_minutes * 60
pause_until = time.time() + pause_duration_seconds
self.paused_chats[chat_id] = pause_until
# 记录日志
end_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(pause_until))
logger.info(f"【{cookie_id}】检测到手动发出消息,chat_id {chat_id} 自动回复暂停{pause_minutes}分钟,恢复时间: {end_time}")
使用流程
1. 查看当前设置
- 登录系统,进入账号管理页面
- 在表格中查看"暂停时间"列
- 鼠标悬停在列头的问号图标上查看功能说明
2. 修改暂停时间
- 点击要修改的账号的暂停时间(如"🕐 10分钟")
- 输入框出现,输入新的暂停时间(1-60分钟)
- 按Enter键保存,或按Escape键取消
- 系统显示成功提示
3. 验证生效
- 修改后的设置立即生效
- 下次该账号检测到手动发出消息时,会使用新的暂停时间
- 在日志中可以看到使用的暂停时间
日志示例
使用自定义暂停时间
2025-08-05 15:30:15.123 | INFO | XianyuAutoAsync:pause_chat:49 - 【abc123】检测到手动发出消息,chat_id chat_456 自动回复暂停15分钟,恢复时间: 2025-08-05 15:45:15
获取暂停时间失败时使用默认值
2025-08-05 15:30:15.124 | ERROR | XianyuAutoAsync:pause_chat:42 - 获取账号 abc123 暂停时间失败: Database error,使用默认10分钟
2025-08-05 15:30:15.125 | INFO | XianyuAutoAsync:pause_chat:49 - 【abc123】检测到手动发出消息,chat_id chat_456 自动回复暂停10分钟,恢复时间: 2025-08-05 15:40:15
配置建议
不同场景的推荐设置
-
高频互动商品:5-10分钟
- 适用于需要快速响应的热门商品
- 减少客户等待时间
-
普通商品:10-15分钟(默认)
- 平衡自动化和人工干预
- 适合大多数场景
-
低频互动商品:20-30分钟
- 适用于不常有咨询的商品
- 给予更多人工处理时间
-
特殊商品:30-60分钟
- 需要详细沟通的复杂商品
- 避免自动回复干扰深度交流
注意事项
- 范围限制:暂停时间必须在1-60分钟之间
- 立即生效:修改后的设置立即生效,无需重启
- 默认值:新账号默认使用10分钟暂停时间
- 错误处理:获取暂停时间失败时自动使用默认10分钟
- 权限控制:只能修改自己账号的暂停时间设置
兼容性
- 向后兼容:现有账号自动获得默认10分钟设置
- 数据迁移:系统启动时自动添加pause_duration字段
- API兼容:现有API继续正常工作,新增字段可选