备案权重域名预定

 找回密碼
 加入我們

qBittorrent + Rclone 自動上傳腳本

[複製鏈接]
老黑醬 發表於 2019-11-30 10:39:17 | 顯示全部樓層 |閱讀模式

xcy1020閒著無聊寫了個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://hostloc.com"#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
複製代碼


通過添加標籤或者分類,再添加定時任務,可以指定種子分享率達到期望值再刪除數據,避免吸血
請自行安裝jq


確保兩個腳本的auto_del_flag變量一致,否則沒辦法刪除分享率達標的種子
只吸血的同學只需要將qu_auto.sh的leeching_mode設為true即可
需要控制分享率的需要兩個腳本
並添加監控任務

  1. */1 * * * * bash /root/ratio_mon.sh
複製代碼


完整代碼百度原帖或者聯繫小豬哼囔有下載
回復

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 加入我們

本版積分規則

备案权重域名预定

4um點擊跨境網編創業社區

GMT+8, 2024-11-24 03:35

By DZ X3.5

QQ

快速回復 返回頂部 返回列表