Transmission + pushplus:下载完成推到微信
效果:种子下完后,Transmission 调用
script-torrent-done.sh,脚本里 curl 一条通知。
前置条件
- 一个 pushplus token(官网扫码获取)
- 能改 Transmission 设置并放置可执行脚本
配置步骤
- 新建
/usr/local/bin/script-torrent-done.sh(路径自定):
#!/bin/sh
curl -s -X POST "https://www.pushplus.plus/send" \
-H "Content-Type: application/json" \
-d "{\"token\":\"你的token\",\"title\":\"下载完成\",\"content\":\"${TR_TORRENT_NAME}\",\"template\":\"txt\"}"
chmod +x /usr/local/bin/script-torrent-done.sh。- 在 Transmission 里启用完成后脚本:
- Web 界面:设置 → 下载 / Transfers → Call script when download is completed,填脚本路径。
- 或改
settings.json:
"script-torrent-done-enabled": true,
"script-torrent-done-filename": "/usr/local/bin/script-torrent-done.sh"
- 改
settings.json后需重启 Transmission。Docker 部署时把脚本挂进容器,并确认运行用户对该文件有执行权限。
Transmission 会注入环境变量,常用:TR_TORRENT_NAME、TR_TORRENT_DIR、TR_TORRENT_ID。不要把 token 写进仓库,可用环境变量再在脚本里引用。
验证
curl -X POST "https://www.pushplus.plus/send" \
-H "Content-Type: application/json" \
-d '{"token":"你的token","title":"Transmission 配置测试","content":"token 可用","template":"markdown"}'
再手动跑一次脚本,或下一个很小的种子看完成后是否推送。返回 JSON 的 code 应为 200。
TR_TORRENT_NAME="测试种子" /usr/local/bin/script-torrent-done.sh
常见问题
下完了没消息? 看 Transmission 日志是否调用了脚本;ls -l 确认可执行;在同一用户下手动跑脚本。
Docker 里失败? 容器网络要能访问 www.pushplus.plus,脚本路径是容器内路径,不是宿主机路径。
名字里有引号把 JSON 弄坏? 对 TR_TORRENT_NAME 做转义,或改用 jq -n --arg 生成 body。