Yabot 是一个基于 Telegram 的媒体任务管理机器人,支持快速部署和多种功能,如文件入库、转存和批量处理任务。
- 入库:适用于小雅项目,通过命令控制生成 STRM 文件。
- 转存:配合天翼转存系统,将分享链接转存到天翼云盘。
- 批量执行:配合天翼转存系统,一次性处理所有任务。
- 删除任务:配合天翼转存系统,删除任务及网盘对应目录。
- 常用目录:配合天翼转存系统,从最近保存的10次目录选择默认保存目录。
- 已安装 Docker 和 Docker Compose。
- Telegram 机器人 Token(通过 BotFather 获取)。
-
拉取镜像:
docker pull leslie56912/yabot:latest
-
配置环境变量:
- 创建
.env文件并填入以下内容(参考.env.example):TOKEN=your-telegram-bot-token TARGET_CHAT_ID=your-chat-id TARGET_SENDER=your-sender-id SCRIPT_PARAM=/path/to/your/storage SCRIPT_PATH_CREATE_TASK=/app/create_task.py SCRIPT_PATH_EXECUTE_TASKS=/app/execute_tasks.py DB_PATH=/app/data/messages.db SERVER_URL=http://your-server:3000 USERNAME=your-username PASSWORD=your-password TARGET_FOLDER_ID=your-folder-id TZ=Asia/Shanghai
- 注意:
.env文件包含敏感信息,请勿上传至 GitHub 或公开。
- 创建
-
运行容器:
docker run -d \ --name yabot \ --network host \ --restart unless-stopped \ --env-file .env \ -v $(pwd)/data:/app/data \ -v $(pwd)/logs:/app/logs \ -v <your-media-path>:/media \ -v <your-media-path>/strm.txt:/strm.txt \ leslie56912/yabot:latest
- 命令说明:
--name yabot:容器名称。-v $(pwd)/data:/app/data:将本地data目录挂载到容器,用于数据持久化。-v <your-media-path>:/media:挂载 STRM 文件目录(根据实际路径替换,同SCRIPT_PARAM)。-v <your-media-path>/strm.txt:/strm.txt:挂载 strm.txt(同SCRIPT_PARAM)。
- 命令说明:
-
验证运行:
- 检查容器状态:
docker ps
- 查看日志:
docker logs yabot
- 检查容器状态:
-
克隆仓库:
git clone https://github.com/leslie56912/yabot.git cd yabot -
配置环境变量:
- 复制示例文件:
cp .env.example .env
- 编辑
.env文件,填入与方法 1 相同的配置。
- 复制示例文件:
-
运行服务:
- 确保
docker-compose.yml文件已正确配置,例如:version: '3' services: yabot: image: leslie56912/yabot:latest container_name: yabot env_file: - .env volumes: - ./data:/app/data - /path/to/your/storage:/mnt/nvme0n1-4/xiaoya_emby/xiaoya restart: unless-stopped
- 启动服务:
docker-compose up -d
- 确保
-
验证运行:
- 检查容器状态:
docker ps
- 查看日志:
docker logs yabot
- 检查容器状态:
-
克隆仓库:
git clone https://github.com/leslie56912/yabot.git cd yabot -
安装依赖:
pip install -r requirements.txt
-
配置环境变量:
- 复制示例文件:
cp .env.example .env
- 编辑
.env文件,填入与方法 1 相同的配置。
- 复制示例文件:
-
运行服务:
python yabot.py
-
启动机器人:
- 部署完成后,机器人会自动响应 Telegram 消息。
-
命令列表:
/save <链接> [目录]:转存文件到指定目录(例:/save https://cloud.189.cn/t/xxx 电影)。/strm:执行入库操作,生成 STRM 文件,需要自己准备小雅strm工具的strm.txt文件放到SCRIPT_PARAM定义的目录。/execute:批量执行所有转存任务。/delete <任务ID>:删除指定任务(例:/delete 123删除任务 ID 为 123 的任务)。/commonfolders:显示常用目录列表并选择默认目录。
-
触发词:
转存 <链接> [目录]:同/save功能。入库:同/strm功能。全部执行:同/execute功能。删除 <任务ID>:同/delete功能。常用目录:同/commonfolders功能。
yabot.py:机器人主程序。create_task.py:任务创建脚本。execute_tasks.py:任务执行脚本。delete_task.py:任务删除脚本。init4.sh:入库脚本。docker-compose.yml:Docker Compose 配置文件。Dockerfile:Docker 镜像构建文件。.env.example:环境变量模板。requirements.txt:Python 依赖列表。
- v1.0.4(2025-04-13):
- 优化了目录寻找逻辑,先从历史记录查询,其次我的转存目录,最后全局枚举。
- v1.0.3(2025-04-13):
- 修复
create_task.py中get_folder_name_by_id函数的无限循环问题。 - 更新数据库路径为
/app/data/messages.db,确保数据持久化。 - 更新转存命令为
/save,并同步文档。 - 更新项目结构,新增
delete_task.py。 - 完善常用目录功能,新增
/commonfolders命令,用于显示常用目录列表并选择默认目录。
- 修复
- v1.0.2(2025-04-11):
- 适配
cloud189-auto-save:v2.2.9。
- 适配
- v1.0.1(2025-04-11):
- 修复
create_task.py中的文件夹匹配NameError错误。 - 修复
yabot.py中/transfer命令未触发问题。 - 新增转存目录支持及模糊匹配功能。
- 修复
- v1.0.0(2025-04-09):
- 初始版本,支持入库和转存功能。
-
Q:转存任务失败,日志显示 "未找到目标目录"?
A:检查.env文件中的TARGET_FOLDER_ID是否正确。可以通过 API 查询目录 ID:curl -X GET "http://your-server:3000/api/folders/<account_id>?folderId=-11" -H "Cookie: <your_cookie>"
-
Q:容器启动后,数据库文件未生成?
A:确保docker-compose.yml或docker run命令中正确映射了/app/data目录,例如-v $(pwd)/data:/app/data。 -
Q:如何备份数据库?
A:数据库文件位于宿主机的./data/messages.db,可以定期备份:cp ./data/messages.db ./data/messages.db.bak
欢迎通过提交 Issue 或 Pull Request 提供反馈和改进建议。
本项目采用 MIT 许可证,详情见 LICENSE 文件。