• 那是云首页
  • 快捷导航
  • 更多
    设为首页收藏本站
  • |
花生壳

分享一个的qBittorrent自动硬链接脚本

群晖 Synology  / 教程分享  / 只看大图  / 倒序浏览   © 著作权归作者本人所有

#楼主# 2021-4-7 15:16

跳转到指定楼层
本帖最后由 z377409011 于 2021-4-7 15:31 编辑

一、前言
    方便qBittorrent下载完成后做种和刮削,搞了个脚本来自动按分类文件,创建视频文件硬链接。主要为了解决*.nfo文件和海报图片不知不觉中被修改,影响做种,复制一份又占空间,又不想搞其他的软件来辅种,直接对所有文件创建软连接,虽说TMM刮削时可以生成movie.nfo文件,但时常有.nfo文件和海报图片被修改影响做种的情况发生。所以搞了个脚本,自动按种子名创建文件名,自动对常见格式视频文件创建硬链接(不占用空间),自动复制(非硬链接,方便修改)其他文件到目录这样就可以在基本不占用太多额外空间的情况下,拥有两份相对独立的数据,就可以随意刮削,修改替换海报、修改nfo文件了。
二、脚本
  1. #!/bin/bash
  2. set -x
  3. #qBittorrent命令参数:
  4. #qBittorrent %N:Torrent 名称
  5. #qBittorrent %F:内容路径(与多文件 torrent 的根目录相同)
  6. #qBittorrent %L:分类
  7. #qBittorrent %G:标签(以逗号分隔)
  8. #qBittorrent %R:根目录(第一个 torrent 的子目录路径)
  9. #qBittorrent %D:保存路径
  10. #qBittorrent %C:文件数
  11. #qBittorrent %Z:Torrent 大小(字节)
  12. #qBittorrent %T:当前 tracker
  13. #qBittorrent %I:哈希值
  14. #在qBittorrent分别按如上顺序键入参数,ex:/downloads/qbittorrent.sh "%N" "%F" "%L"

  15. #设置想保存的位置
  16. your_path=/downloads/complete
  17. #获取种子名称
  18. torrent_name="$1"
  19. #获取种子路径
  20. torrent_path="$2"
  21. #获取种子分类
  22. torrent_category="$3"
  23. #根据分类、种子路径类型创建保存路径
  24. link_path_directory="$your_path"/"$3"
  25. link_path_file="$your_path"/"$3"/"$1"
  26. tmp_path="$your_path"/"$3"/tempfile
  27. #清空临时目录
  28. rm -rf "$tmp_path"/

  29. #只对电影和电视剧分类的常见电影文件创建软连接
  30. if [[ "$torrent_category" == "电影" || "$torrent_category" == "电视剧" || "$torrent_category" == "tmp" ]]; then
  31.         #判断种子路径是目录还是文件夹
  32.         if [ -d "$torrent_path" ]; then
  33.                 mkdir -p "$tmp_path"
  34.                 cp -lR "$torrent_path"/ "$tmp_path"/
  35.                 find "$tmp_path"/ -type f -regextype posix-extended -regex ".*\.(mp4|avi|mkv|rmvb|mov|rm|mpeg)" -print0 | xargs -0 -i rm -f {}
  36.             cp -R "$tmp_path"/* "$link_path_directory"/
  37.             cp -lnR "$torrent_path"/ "$link_path_directory"/
  38.             rm -rf "$tmp_path"/
  39.             #删除链接的*.nfo元数据文件
  40.             #find "$link_path_file" -regextype posix-extended -regex ".*\.(nfo)" -print0 | xargs -0 -i rm {}
  41.                 #仅链接指定类型文件,默认是链接全部文件
  42.                 #find "$torrent_path" -regextype posix-extended -regex ".*\.(mp4|avi|mkv|rmvb|mov|rm|mpeg|ass|srt|nfo)" -print0 | xargs -0 -i cp -lR {} "$link_path_directory"
  43.         elif [ -f "$torrent_path" ]; then
  44.                 #创建链接文件夹
  45.                 mkdir -p "$link_path_file"/
  46.                 #仅链接指定类型文件,默认是链接全部文件
  47.                 #find "$torrent_path" -regextype posix-extended -regex ".*\.(p4|avi|mkv|rmvb|mov|rm|mpeg|ass|srt|nfo)" -print0 | xargs -0 -i cp -lR {} "$link_path_file"
  48.                 cp -lR "$torrent_path" "$link_path_file"/
  49.         fi
  50. fi
复制代码
附件下载: qbittorrent.zip (1.07 KB, 下载次数: 55)
三、使用方法
    1)将脚本放到某个位置(如/downloads/qbittorrent.sh)后,在ssh中增加脚本执行权限:chmod +x /downloads/qbittorrent.sh
    2)在qBittorrent设置→下载中勾选“Torrent 完成时运行外部程序”并输入:/downloads/qbittorrent.sh "%N" "%F" "%L"”(不含前后中文引号)后保存,注意参数顺序。
QQ截图20210407145144.png

    3)在qBittorrent中按需添加分类,分类需与脚本对应,每次添加任务时,注意设置分类,我的tmp是大姐姐资源
image.png

添加任务时,最好就直接设置好分类:

image.png

    4)刮削和jellyfin、emby等目录,直接添加链接后的分类目录(如volume1/downloads/qbittorrent/complete/电影)即可。
四、保存位置
    your_path就是你希望链接文件保存的位置,可以按自己的喜好设置,最好使用绝对路径。注意docker中的路径和宿主的路径区别。例如希望链接文件到downloads/qbittorrent/complete中,如果我用的是插件版的qBittorrent,downloads位于储存池1中,则应该设置your_path=/volume1/downloads/qbittorrent/complete;如果使用的是docker版qBittorrent,并把我的下载目录(如:/volume1/downloads/qbittorrent映射到容器/download,那么your_path=/downloads/complete即可。
五、效果展示
image.png

    *.mkv文件均为硬链接文件(不占用空间),其他文件均为文件(独立存在,修改不影响做种)。
六、免责申明
   直接使用脚本操作文件有丢失文件和损坏文件的风险,使用脚本导致的各种问题,后果自负,请酌情使用。水平有限,基本满足当前的使用需求,希望有大神能继续完善更新。
那是云论坛 - 国内知名的NAS交流平台
http://www.nasyun.com
分享淘帖
回复 印象

使用道具

0

精华

4

回帖

142

积分

入门用户

Rank: 1

云币
0
贡献
20
活跃
40
精华
0
skygjb 发表于 2021-5-30 00:17 来自 中国四川成都
按照教程来,我怎么就没有弄成功呢?不知道哪里出问题了
回复 支持 反对 印象

使用道具 举报

0

精华

46

回帖

248

积分

入门用户

Rank: 1

云币
0
贡献
2
活跃
214
精华
0
二十九画生 发表于 2021-9-29 23:16 来自 中国山西太原
套件版qb,失败了。不用脚本文件直接在qb里填ln -s "%F" "/volume1/Links/%L/" 发现中文路径或含中文的种子都无法成功链接出文件。用了这个脚本最后无事发生。。。也不知道哪里出了问题
回复 支持 反对 印象

使用道具 举报

0

精华

23

回帖

130

积分

入门用户

Rank: 1

云币
0
贡献
2
活跃
108
精华
0
weegle 发表于 2022-5-18 15:17 来自 中国
我是直接输入指令没有用,试一试这个脚本,多谢莱lz
回复 支持 反对 印象

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关于作者

z377409011

入门用户

  • 主题

    1

  • 帖子

    9

  • 关注者

    2

etsme
快速回复 返回列表 搜索 官方QQ群
懒人地图| 手机版|小黑屋| 智能生活 , 上那是云 |闽ICP备2020018196号-1 |网站地图