全球主机交流论坛

标题: 【更新分享率控制】qBittorrent + Rclone 自动上传脚本 [打印本页]

作者: xcy1020    时间: 2019-11-25 17:37
标题: 【更新分享率控制】qBittorrent + Rclone 自动上传脚本
本帖最后由 xcy1020 于 2019-12-1 15:49 编辑

通过添加标签或者分类,再添加定时任务,可以指定种子分享率达到期望值再删除数据,避免吸血
请自行安装jq


确保两个脚本的auto_del_flag变量一致,否则没办法删除分享率达标的种子
只吸血的同学只需要将qu_auto.sh的leeching_mode设为true即可
需要控制分享率的需要两个脚本
并添加监控任务


  1. */1 * * * * bash /root/ratio_mon.sh
复制代码

------------------------------------------------------------------------------------------------------------------
闲着无聊写了个qb+Rclone自动上传到Google Drive的脚本
大佬们那么多无限容量Google Drive,不塞点东西浪费了
水平有限,写得有点烂,各位大佬见笑了
支持qBittorrent v3.2.0+
不支持v3.1.x

实测v4.2.0Beta1功能可用
其他版本未测,等大佬测试反馈!

配合RSS+磁盘配额控制的话,应该可以全自动,坐等大佬写

使用方法:
qB WEB UI 勾选“Torrent 完成时运行外部程序”
填上:
  1. bash /root/qb_auto.sh  "%N" "%F" "%R" "%D" "%C" "%Z" "%I"
复制代码


  1. chmod +x qb_auto.sh
复制代码

自行配置好rclone即可




qb_auto.sh
------------------------------------------------------------------------------------------------------------------
  1. #!/bin/sh
  2. torrent_name=$1
  3. content_dir=$2
  4. root_dir=$3
  5. save_dir=$4
  6. files_num=$5
  7. torrent_size=$6
  8. file_hash=$7

  9. qb_version="4.2.0" #如4.0.4、4.1.9.1、4.2.0等,不支持3.1.X
  10. qb_username="hostloc" #qb用户名
  11. qb_password="hostloc.com" #qb密码
  12. qb_web_url="https://443502.xyz" #QB web路径,可以填写本地http://localhost:8080
  13. leeching_mode="true" #吸血模式 设为true 上传完后自动删除种子及数据 否则不删除,继续做种
  14. log_dir="/root/qbauto" #日志目录
  15. rclone_dest="gdrive" #rclone destination关键字 运行rclone config查看name字段即可
  16. rclone_parallel="32" #rclone上传线程 默认4
  17. auto_del_flag="rclone"#添加标签或者分类来标识已上传的种子 v4.0.4+版本添加标签“rclone”,低版本通过添加分类“rclone”标识

  18. if [ ! -d ${log_dir} ]
  19. then
  20.         mkdir -p ${log_dir}
  21. fi

  22. version=$(echo $qb_version | grep -P -o "([0-9]\.){2}[0-9]" | sed s/\\.//g)

  23. function qb_login(){
  24.         if [ ${version} -gt 404 ]
  25.         then
  26.                 qb_v="1"
  27.                 cookie=$(curl -i --header "Referer: ${qb_web_url}" --data "username=${qb_username}&password=${qb_password}" "${qb_web_url}/api/v2/auth/login" | grep -P -o 'SID=\S{32}')
  28.                 if [ -n ${cookie} ]
  29.                 then
  30.                         echo "[$(date '+%Y-%m-%d %H:%M:%S')] 登录成功!cookie:${cookie}" >> ${log_dir}/autodel.log

  31.                 else
  32.                         echo "[$(date '+%Y-%m-%d %H:%M:%S')] 登录失败!" >> ${log_dir}/autodel.log
  33.                 fi
  34.         elif [[ ${version} -le 404 && ${version} -ge 320 ]]
  35.         then
  36.                 qb_v="2"
  37.                 cookie=$(curl -i --header "Referer: ${qb_web_url}" --data "username=${qb_username}&password=${qb_password}" "${qb_web_url}/login" | grep -P -o 'SID=\S{32}')
  38.                 if [ -n ${cookie} ]
  39.                 then
  40.                         echo "[$(date '+%Y-%m-%d %H:%M:%S')] 登录成功!cookie:${cookie}" >> ${log_dir}/autodel.log
  41.                 else
  42.                         echo "[$(date '+%Y-%m-%d %H:%M:%S')] 登录失败" >> ${log_dir}/autodel.log
  43.                 fi
  44.         elif [[ ${version} -ge 310 && ${version} -lt 320 ]]
  45.         then
  46.                 qb_v="3"
  47.                 echo "陈年老版本,请及时升级"
  48.                 exit
  49.         else
  50.                 qb_v="0"
  51.                 exit
  52.         fi
  53. }



  54. function qb_del(){
  55.         if [ ${leeching_mode} == "true" ]
  56.         then
  57.                 if [ ${qb_v} == "1" ]
  58.                 then
  59.                         curl "${qb_web_url}/api/v2/torrents/delete?hashes=${file_hash}&deleteFiles=true" --cookie ${cookie}
  60.                         echo "[$(date '+%Y-%m-%d %H:%M:%S')] 删除成功!种子名称:${torrent_name}" >> ${log_dir}/qb.log
  61.                 elif [ ${qb_v} == "2" ]
  62.                 then
  63.                         curl -X POST -d "hashes=${file_hash}" "${qb_web_url}/command/deletePerm" --cookie ${cookie}
  64.                 else
  65.                         echo "[$(date '+%Y-%m-%d %H:%M:%S')] 删除成功!种子文件:${torrent_name}" >> ${log_dir}/qb.log
  66.                         echo "qb_v=${qb_v}" >> ${log_dir}/qb.log
  67.                 fi
  68.         else
  69.                 echo "[$(date '+%Y-%m-%d %H:%M:%S')] 不自动删除已上传种子" >> ${log_dir}/qb.log
  70.         fi
  71. }

  72. function rclone_copy(){
  73.         if [ ${type} == "file" ]
  74.         then
  75.                 rclone_copy_cmd=$(rclone -v copy --transfers ${rclone_parallel} --log-file  ${log_dir}/qbauto_copy.log "${content_dir}" ${rclone_dest}:qbauto/)
  76.         elif [ ${type} == "dir" ]
  77.         then
  78.                 rclone_copy_cmd=$(rclone -v copy --transfers ${rclone_parallel} --log-file ${log_dir}/qbauto_copy.log "${content_dir}"/ ${rclone_dest}:qbauto/"${torrent_name}")
  79.         fi
  80. }

  81. function qb_add_auto_del_tags(){
  82.         if [ ${qb_v} == "1" ]
  83.         then
  84.                 curl -X POST -d "hashes=${file_hash}&tags=${auto_del_flag}" "${qb_web_url}/api/v2/torrents/addTags" --cookie "${cookie}"
  85.         elif [ ${qb_v} == "2" ]
  86.         then
  87.                 curl -X POST -d "hashes=${file_hash}&category=${auto_del_flag}" "${qb_web_url}/command/setCategory" --cookie ${cookie}
  88.         else
  89.                 echo "qb_v=${qb_v}" >> ${log_dir}/qb.log
  90.         fi
  91. }

  92. if [ -f "${content_dir}" ]
  93. then
  94.    echo "[$(date '+%Y-%m-%d %H:%M:%S')] 类型:文件" >> ${log_dir}/qb.log
  95.    type="file"
  96.    rclone_copy
  97.    qb_login
  98.    qb_add_auto_del_tags
  99.    qb_del
  100. elif [ -d "${content_dir}" ]
  101. then
  102.    echo "[$(date '+%Y-%m-%d %H:%M:%S')] 类型:目录" >> ${log_dir}/qb.log
  103.    type="dir"
  104.    rclone_copy
  105.    qb_login
  106.    qb_add_auto_del_tags
  107.    qb_del
  108. else
  109.    echo "[$(date '+%Y-%m-%d %H:%M:%S')] 未知类型,取消上传" >> ${log_dir}/qb.log
  110. fi

  111. echo "种子名称:${torrent_name}" >> ${log_dir}/qb.log
  112. echo "内容路径:${content_dir}" >> ${log_dir}/qb.log
  113. echo "根目录:${root_dir}" >> ${log_dir}/qb.log
  114. echo "保存路径:${save_dir}" >> ${log_dir}/qb.log
  115. echo "文件数:${files_num}" >> ${log_dir}/qb.log
  116. echo "文件大小:${torrent_size}Bytes" >> ${log_dir}/qb.log
  117. echo "HASH:${file_hash}" >> ${log_dir}/qb.log
  118. echo "Cookie:${cookie}" >> ${log_dir}/qb.log
  119. echo -e "-------------------------------------------------------------\n" >> ${log_dir}/qb.log
复制代码

------------------------------------------------------------------------------------------------------------------
ratio_mon.sh
帖子长度限制 贴不出,自行下载压缩文件
------------------------------------------------------------------------------------------------------------------

(, 下载次数: 1228)

(, 下载次数: 53)
作者: 懒无止境丶    时间: 2019-11-25 17:38
第一次离大佬这么近
作者: creeper1    时间: 2019-11-25 17:39
不错不错,等我搞个馒头账号租个3o去
作者: C51    时间: 2019-11-25 17:39
上传到gd算保种不?
作者: xcy1020    时间: 2019-11-25 17:40
C51 发表于 2019-11-25 17:39
上传到gd算保种不?

本地不删继续保种就行,下完传完就删,那肯定是吸血
作者: 飘云    时间: 2019-11-25 17:41
亲,要的就是这个,非常感谢!!!
作者: xxhjkl    时间: 2019-11-25 17:43
这个配合pt的话 搬运大jj爽啊
作者: jpfree    时间: 2019-11-25 17:53
一般小硬盘才用,大营坡用不上吧。。。
还要留种
作者: etc    时间: 2019-11-25 18:01
未知类型,取消上传

不知道什么原因
作者: topman2018    时间: 2019-11-25 18:04
牛啊。。3O的专用了吧
作者: xcy1020    时间: 2019-11-25 18:07
etc 发表于 2019-11-25 18:01
未知类型,取消上传

不知道什么原因

看看log
作者: Lebron    时间: 2019-11-25 18:11
这个可以,大佬厉害啊
作者: etotakeo    时间: 2019-11-25 18:11
提示: 作者被禁止或删除 内容自动屏蔽
作者: xcy1020    时间: 2019-11-25 18:12
etotakeo 发表于 2019-11-25 18:11
大佬出一个上传到od的撒

od跟gd没区别呀,看你rclone怎么配而已,rclone_dest改一下就好
作者: 海苔    时间: 2019-11-25 18:14
马克
作者: sunsea    时间: 2019-11-25 18:16
上传完之后还可以再挂载回来,然后限制上传速度,就可以保种赚魔力了
作者: stonesnake    时间: 2019-11-25 18:49
提示: 作者被禁止或删除 内容自动屏蔽
作者: hiagfh    时间: 2019-11-25 19:01
很有必要,mark
作者: ouhtr    时间: 2019-11-25 19:04
绑定
作者: nightmare    时间: 2019-11-25 19:07
不错啊,github拉一份吧
作者: xcy1020    时间: 2019-11-25 19:26
nightmare 发表于 2019-11-25 19:07
不错啊,github拉一份吧

不了不了 ,写得有点挫 上不了台面
作者: ultramancliub    时间: 2019-11-25 19:56
不错不错,等我搞个馒头账号租个3o去
作者: saysee    时间: 2019-11-25 20:09
谢谢楼主!膜拜大神!
作者: yushui    时间: 2019-11-25 20:11
大佬牛逼  不过吸血不好 判断下分享率达到1以上再删?
作者: xcy1020    时间: 2019-11-25 20:32
yushui 发表于 2019-11-25 20:11
大佬牛逼  不过吸血不好 判断下分享率达到1以上再删?

可以 后期考虑改改
作者: wutiao    时间: 2019-11-25 20:36
给大佬加精,加分!赶紧的
作者: pydos    时间: 2019-11-25 20:56
jav = os.listdir(path)                         if jav != []:                                 os.chdir('/root/')                                 print('本页下载完成,上传到Google Drive...')                                 subprocess.call(["rclone move /root/**hub/HD-**/ pydos:**hub/HD-**/"], shell=True)
作者: xcy1020    时间: 2019-11-25 21:54
pydos 发表于 2019-11-25 20:56
jav = os.listdir(path)                         if jav != []:                                 os.chdir('/root/')                                 print('本页下载完成,上传到Google ...

大佬这是开车呀
作者: yfn    时间: 2019-11-25 22:51
sunsea 发表于 2019-11-25 18:16
上传完之后还可以再挂载回来,然后限制上传速度,就可以保种赚魔力了

上传完,上传到GD,挂载的话,目录不会更改吗

作者: Winsonkill    时间: 2019-11-25 23:07
可惜我的3欧被馒头标记了
作者: 卟想起床    时间: 2019-11-25 23:09
git有一个现成的项目,我自己装了一个,支持离线下载。挺不错的
作者: 卟想起床    时间: 2019-11-25 23:13

我试试看帖个图片,电影还支持在线观看的,还有分享
作者: burde    时间: 2019-11-25 23:18
mark 一下。
作者: Luna    时间: 2019-11-26 00:26
提示: 作者被禁止或删除 内容自动屏蔽
作者: 9012    时间: 2019-11-26 01:14
先收藏起来。
作者: yfans    时间: 2019-11-26 01:14
Winsonkill 发表于 2019-11-25 23:07
可惜我的3欧被馒头标记了

启用ipv6
作者: Ruclinux    时间: 2019-11-26 01:23


第4页怎么回事? 又签名插代码了?
作者: _____________Cc    时间: 2019-11-26 02:33
卟想起床 发表于 2019-11-25 23:09
git有一个现成的项目,我自己装了一个,支持离线下载。挺不错的

求项目地址
作者: RackNerd    时间: 2019-11-26 02:34
提示: 作者被禁止或删除 内容自动屏蔽
作者: yfn    时间: 2019-11-26 08:13
没有成功  怎么看日志呢
作者: maiawpyg    时间: 2019-11-26 10:45
这个不错 收藏下
作者: xcy1020    时间: 2019-11-26 11:28
yfn 发表于 2019-11-26 08:13
没有成功  怎么看日志呢

默认在/root/qbauto/qb.log
作者: hiagfh    时间: 2019-11-28 12:21
yfans 发表于 2019-11-26 01:14
启用ipv6

怎么启用而且只用ipv6
作者: hiagfh    时间: 2019-11-28 12:24
可惜我的是deluge
作者: 无时崩溃    时间: 2019-11-28 12:36
大佬太强了
作者: 浪曦的月牙尘    时间: 2019-12-1 14:46
本帖最后由 浪曦的月牙尘 于 2019-12-1 14:50 编辑

以前这么用过,不过下载用的transmission
有些时候同时完成好几个然后同时自动运行rclone上传,一会就把磁盘io全部占满了transmission也给卡死了
现在是用flexget根据rss和类型筛选然后添加标签,路径根据标签不同而不同然后传入qbit,打开种子各种使用自动管理,'保存未完成的 torrents 到'选项指定一个目录A,然后只有下载完成的会进入flexget里设置的那个目录,没下完的都在目录A里
之后只要corntab定时运行rclone就好了,至今没出过差错
作者: xcy1020    时间: 2019-12-1 14:56
浪曦的月牙尘 发表于 2019-12-1 14:46
以前这么用过,不过下载用的transmission
有些时候同时完成好几个然后同时自动运行rclone上传,一会就把磁 ...

感谢分享经验 qb还是挺好用的
作者: maiawpyg    时间: 2019-12-1 15:15
收藏下备用
作者: 海苔    时间: 2019-12-4 22:18
大佬qbittorrent一般没有root权限,最好把路径改一下,然后rclone --config也要加上,就更加通用了
作者: 妖言惑众    时间: 2019-12-4 22:20
马克
作者: xcy1020    时间: 2019-12-4 22:21
海苔 发表于 2019-12-4 22:18
大佬qbittorrent一般没有root权限,最好把路径改一下,然后rclone --config也要加上,就更加通用了 ...

感谢大佬建议
作者: dole    时间: 2019-12-9 09:26
本帖最后由 dole 于 2019-12-9 09:33 编辑

大佬, 我这提示未知类型,取消上传
种子名称:%N
内容路径:%F
根目录:%R
保存路径:%D
文件数:%C
文件大小:%ZBytes
HASH:%I
Cookie:



作者: nisekoi    时间: 2019-12-9 09:43
支持,这个应该会有用,先留个名
作者: xcy1020    时间: 2019-12-9 11:56
dole 发表于 2019-12-9 09:26
大佬, 我这提示未知类型,取消上传
种子名称:%N
内容路径:%F

看看日志 方便留个TG吗
作者: wugg    时间: 2019-12-9 13:45
老哥按照你的都设置完了但是下载完了不运行啊!连LOG都没有
作者: xcy1020    时间: 2019-12-9 13:49
wugg 发表于 2019-12-9 13:45
老哥按照你的都设置完了但是下载完了不运行啊!连LOG都没有

不会吧 赋权了没
作者: wugg    时间: 2019-12-9 13:54
xcy1020 发表于 2019-12-9 13:49
不会吧 赋权了没

777了都也不行
作者: xcy1020    时间: 2019-12-9 13:56
wugg 发表于 2019-12-9 13:54
777了都也不行

PM我TG吧 帮你看看不应该呀
作者: wugg    时间: 2019-12-9 14:07
xcy1020 发表于 2019-12-9 13:56
PM我TG吧 帮你看看不应该呀

老哥PM了
作者: ultramancliub    时间: 2019-12-9 14:16
这个还是不错的
作者: 海苔    时间: 2019-12-9 15:06
wugg 发表于 2019-12-9 13:54
777了都也不行

这个就是我说的,qb没有权限读root,所以就算你给777权限都不行,你把它移到home,然后把rclone配置也拷贝一份到同目录就行了
作者: wugg    时间: 2019-12-9 16:16
海苔 发表于 2019-12-9 15:06
这个就是我说的,qb没有权限读root,所以就算你给777权限都不行,你把它移到home,然后把rclone配置也拷 ...

谢了  老哥我去试试
作者: dole    时间: 2019-12-9 16:30
xcy1020 发表于 2019-12-9 11:56
看看日志 方便留个TG吗

已pm 多谢大佬
作者: fwo    时间: 2019-12-9 16:30
好教程收藏了
作者: fwo    时间: 2019-12-9 21:12
正在寻找此类教程,多谢共享
作者: angus1220    时间: 2019-12-12 16:28
用星大脚本qb 都不能用 log也没出现 https://github.com/Aniverse/inexistence
作者: xcy1020    时间: 2019-12-12 17:52
angus1220 发表于 2019-12-12 16:28
用星大脚本qb 都不能用 log也没出现 https://github.com/Aniverse/inexistence

权限对了吗 看看系统日志有没有执行脚本




欢迎光临 全球主机交流论坛 (https://443502.xyz/) Powered by Discuz! X3.4