闲着无聊写了个qb+rclone自动上传到GD的脚本。水平有限,写得有点烂,各位大佬见笑了。
支持qBittorrent v3.2.0+ ,不支持v3.1.x,实测v4.2.0Beta1功能可用,其他版本未测。等大佬测试反馈!
配合RSS+磁盘配额控制的话,应该可以全自动,坐等大佬写。
使用方法:
qB WEB UI 勾选“Torrent 完成时运行外部程序”
填上:
bash /root/qb_auto.sh "%N" "%F" "%R" "%D" "%C" "%Z" "%I"
chmod +x qb_auto.sh
自行配置好rclone即可
#!/bin/shtorrent_name=$1content_dir=$2root_dir=$3save_dir=$4files_num=$5torrent_size=$6file_hash=$7qb_versiON="4.2.0"#如4.0.4、4.1.9.1、4.2.0等,不支持3.1.Xqb_username="hostloc"#qb用户名qb_password="hostloc.com"#qb密码qb_web_url="https://hostloc.com"#QB web路径,可以填写本地http://localhost:8080leeching_mode="true"#吸血模式 设为true 上传完后自动删除种子及数据 否则不删除,继续做种log_dir="/root/qbauto"#日志目录rclone_dest="gdrive"#rclone destination关键字 运行rclone config查看name字段即可rclone_parallel="32"#rclone上传线程 默认4if [ ! -d ${log_dir} ]then mkdir -p ${log_dir}fiversion=$(echo $qb_version | grep -P -o "([0-9]\.){2}[0-9]" | sed s/\\.//g)function qb_login(){ if [ ${version} -gt 404 ] then qb_v="1" 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}') elif [[ ${version} -le 404 && ${version} -ge 320 ]] then qb_v="2" 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}') elif [[ ${version} -ge 310 && ${version} -lt 320 ]] then qb_v="3" echo "陈年老版本,请及时升级" exit else qb_v="0" exit fi}function qb_del(){ if [ ${leeching_mode} == "true" ] then if [ ${qb_v} == "1" ] then curl "${qb_web_url}/api/v2/torrents/delete?hashes=${file_hash}&deleteFiles=true" --cookie ${cookie} echo "Cookie:${cookie}" >> ${log_dir}/qb.log elif [ ${qb_v} == "2" ] then curl -X POST -d "hashes=${file_hash}" "${qb_web_url}/command/deletePerm" --cookie ${cookie} else echo "删除错误" >> ${log_dir}/qb.log echo "qb_v=${qb_v}" >> ${log_dir}/qb.log fi else echo "不自动删除已上传种子" >> ${log_dir}/qb.log fi}function rclone_copy(){ if [ ${type} == "file" ] then rclone_copy_cmd=$(rclone -v copy --transfers ${rclone_parallel} --log-file ${log_dir}/qbauto_copy.log "${content_dir}" ${rclone_dest}:qbauto/) elif [ ${type} == "dir" ] then rclone_copy_cmd=$(rclone -v copy --transfers ${rclone_parallel} --log-file ${log_dir}/qbauto_copy.log "${content_dir}"/ ${rclone_dest}:qbauto/"${torrent_name}") fi}if [ -f "${content_dir}" ]then echo "类型:文件" >> ${log_dir}/qb.log type="file" rclone_copy qb_login qb_delelif [ -d "${content_dir}" ]then echo "类型:目录" >> ${log_dir}/qb.log type="dir" rclone_copy qb_login qb_delelse echo "未知类型,取消上传" >> ${log_dir}/qb.logfiecho "种子名称:${torrent_name}" >> ${log_dir}/qb.logecho "内容路径:${content_dir}" >> ${log_dir}/qb.logecho "根目录:${root_dir}" >> ${log_dir}/qb.logecho "保存路径:${save_dir}" >> ${log_dir}/qb.logecho "文件数:${files_num}" >> ${log_dir}/qb.logecho "文件大小:${torrent_size}Bytes" >> ${log_dir}/qb.logecho "HASH:${file_hash}" >> ${log_dir}/qb.logecho "Cookie:${cookie}" >> ${log_dir}/qb.logecho -e "-------------------------------------------------------------\n" >> ${log_dir}/qb.log
未经允许不得转载:Just My Socks中文教程网 » qBittorrent + Rclone自动上传到GD的脚本 支持qBittorrent v3.2.0+