前言
HLINK是一款非常适用于PT用户的影音整理辅助工具,使用此工具可以在保种的前提下整理自己的影音库,不会对保种有任何影响。不用和以前一样为了保种,只能复制一份文件进行整理,多占用硬盘空间。
Docker部署
version: '2'
services:
docker:
image: likun7981/hlink:latest
restart: on-failure
ports:
- 9090:9090
volumes:
- /volume1/media:/pt
- /volume1/docker/hlink/config:/data
environment:
- PUID=1000
- PGID=1000
- HLINK_HOME=/data
使用
然后打开群晖IP:9090,打开WEB界面,添加配置和任务。
在创建配置里添加以下配置,修改pathsMapping段里的硬链路径。
前面的是你是你下载的视频文件路径,后面是要生成硬链的路径。
示例配置(已经开启好缓存)。
// 重要说明路径地址都请填写 绝对路径!!!!
export default {
/**
* 源路径与目标路径的映射关系
* 例子:
* pathsMapping: {
* '/path/to/exampleSource': '/path/to/exampleDest',
* '/path/to/exampleSource2': '/path/to/exampleDest2'
* }
*/
pathsMapping: {
'/pt/transmission/电影': '/pt/LINK/电影',
'/pt/transmission/纪录片': '/pt/LINK/纪录片',
'/pt/transmission/动画片': '/pt/LINK/动画片',
'/pt/transmission/剧集': '/pt/LINK/剧集'
},
/**
* 需要包含的后缀,如果与exclude同时配置,则取两者的交集
* include 留空表示包含所有文件
*
* 后缀不够用? 高阶用法: https://hlink.likun.me/other/v2.html#%E6%96%B0%E5%A2%9E%E5%8A%9F%E8%83%BD
*/
include: [
'mp4',
'flv',
'f4v',
'webm',
'm4v',
'mov',
'cpk',
'dirac',
'3gp',
'3g2',
'rm',
'rmvb',
'wmv',
'avi',
'asf',
'mpg',
'mpeg',
'mpe',
'vob',
'mkv',
'ram',
'qt',
'fli',
'flc',
'mod',
'iso',
],
/**
* 需要排除的后缀,如果与include同时配置,则取两者的交集
*
* 后缀不够用? 高阶用法: https://hlink.likun.me/other/v2.html#%E6%96%B0%E5%A2%9E%E5%8A%9F%E8%83%BD
*/
exclude: [],
/**
* @scope 该配置项 hlink 专用
* 是否保持原有目录结构,为false时则只保存一级目录结构
* 可选值: true/false
* 例子:
* - 源地址目录为:/a
* - 目标地址目录为: /d
* - 链接的文件地址为 /a/b/c/z/y/mv.mkv;
* 如果设置为true 生成的硬链地址为: /d/b/c/z/y/mv.mkv
* 如果设置为false 生成的硬链地址为:/d/y/mv.mkv
*/
keepDirStruct: true,
/**
* @scope 该配置项 hlink 专用
* 是否打开缓存,为true表示打开
* 可选值: true/false
* 打开后,每次硬链后会把对应文件存入缓存,就算下次删除硬链,也不会进行硬链
*/
openCache: true,
/**
* @scope 该配置项 hlink 专用
* 是否为独立文件创建同名文件夹,为true表示创建
* 可选值: true/false
*/
mkdirIfSingle: true,
/**
* @scope 该配置项为 hlink prune 命令专用
* 是否删除文件及所在目录,为false只会删除文件
* 可选值: true/false
*/
deleteDir: false,
}
配置完后,在创建任务列表,里添加任务,然后运行即可。
我的配置里已经打开了缓存。官方的默认不打开,你们注意一下。
缓存的作用:
就是比如你运行了一次任务生成了硬链,但是有一些不需要的文件也硬链过来了,但为了使用方便整理、刮削,你把不需要的删除了,但是下次再执行任务时又硬链过来了,每次都得删除,太麻烦了。开启缓存后,就是记住了你硬链过的文件,当你硬链后把不需要的硬链文件删除后,再次运行硬链任务,那删除过的硬链接文件也不会再次生成了。
命令行安装
首先要安装nodejs,如何安装这里不写了,自行搜索。
hlink需要14.14以上的nodejs。
安装nodejs完成后,使用以下命令安装HLINK。
npm i -g hlink
然后输入以下命令开启HLINK服务。服务开启,会生成一个后台允许的进程,并且会自动添加开机启动。(我在群晖里并没有开机启动……也反馈作者,作者问了一下就没有下文了……)。
hlink start
成功会输出一个你的机器IP:9090的地址,直接访问页面地址即可开始玩耍了。
服务关闭。
hlink stop
我在群使用关闭后,然后卸载node.js,输入群晖IP:9090还会占用端口,还会显示信息。我在这里不建议大家使用命令行。作者没有写如何卸载这个工具。
命令行下使用
- 在指定位置生成配置文件
hlink gen /path/outputDir
如果没有指定/path/outputDir,则默认用户目录生成。可以通过 echo ~ 查看用户目录的具体路径。
我使用的是root用户登陆的,所以就会显示出我的用户目录为root。
echo ~
/root
如果你是用的root用户登陆的,他的的配置文件默认地址为/root/.hlink/configs/xxxx.mjs。
- 执行硬链任务
hlink /path/xxx.mjs
hlink prune命令
协助你同步管理硬链接和源文件。
- 正向整理:删除的是硬链文件,去除比源文件多的硬链文件
- 反向整理:删除的是源文件,去除比硬链多的源文件。
- 正向整理:一定要列全所有的源目录。
- 反向整理:一定要列全所有的硬链目录。
- -r
开记反向整理,不加-r默认为正向整理。
hlink prune -r /path/xxx.mjs
- -d
是否删除文件所在目录,不加-d只会删除文件。
hlink prune -d /path/xxx.mjs
- -w
删除前是否需确认。默认不需要。在GUI计划任务是无需确认的,所以开启计划任务前确认好。
hlink prune -w /path/xxx.mjs
当然你也可以组合配置选项。
hlink -rdw /path/xxx.mjs
下载完自动硬链
复制脚本。
新建一个文本文档,复制下面的格式写一个脚本,把刚才复制的脚本替换,然后命名为xx.sh。
# !/bin/bash
curl http://a.wort.cloud:9090/api/task/run?name=KODI&alive=0
然后把sh脚本放到服务器,并赋予执行权限。
chmod +xr /volume1/PT/LINK/hlink.sh
然后在Transmission客户端或者qBittrorretn里,填写脚本的地址,即可在下载完成时自动执行硬链任务。