Jellyfin番号过滤

标记所有番号,并添加跳转链接。支持jellyfin、emby、115、手动输入的番号查重。

نووسەر
Squirtle07
Daily installs
1
Total installs
789
Ratings
15 0 0
وەشان
2.2.18
Created
2024-05-29
Updated
2025-01-20
Size
71.8 KB
مۆڵەت
MIT
Applies to

功能说明

匹配页面上的所有番号,并添加跳转链接。

支持对匹配的番号进行查重,查重番号来源共三种,可随意搭配:

  1. jellyfin/emby:调用本地或nas上的jellyfin/emby API进行查重。
  2. 115:调用115网盘的API查重,并提供115 Cookie持久化、一键离线、查询影片是否已离线及115在线观看功能。
  3. 手动输入的番号:对于不用jellyfin/emby/115的用户,可手动输入番号

通过快捷键触ee发匹配,也可通过快捷键ss取消匹配,控制权完全在你。

特点是:无hover弹框、响应快、请求少、操作丝滑,就像开手动挡汽车般, everything is under control。

支持常见的老司机网站javbus、javdb、javlibrary,也可自行添加@match,新增任意网站。

使用方法

jellyfin/emby

打开设置,enable设为true,填入apiKey和serverUrl,点击确定

115

要使用115功能,需注意油猴插件必须用测试版,正式版不支持设置httpOnly的cookie。

参考:https://www.tampermonkey.net/documentation.php?ext=dhdg&version=5.3.3#api:GM_cookie.list

打开115设置,enable设为true,并设置cookie,点击确定。

设置cookie有两种方式,任选一种

  • 打开115设置,手动填入cookie字符串
  • 去115官网,手机扫码登录网页端,打开115设置,点击获取cookie

手动输入番号

首先打开设置,localCodeEnable设为true。

再打开手动输入番号,复制粘贴番号到输入框,番号之间可用空格、换行、逗号、分号分隔,番号命名格式也较为宽松,脚本会自动识别并修正。

手动输入名称

这是对于非番号类名称的补充,将这类名称也当作番号处理。注意,由于这类名称千奇百怪,所以输入时仅支持换行分隔,而且页面上的名称必须跟你输入的名称完全相同才会匹配。

获取alist下载直链

如果你在用alist挂载115网盘,要下载文件时,要先打开alist页面,找到你要下载的资源,右键复制链接。你是否感觉这个过程很繁琐?

这个功能可以帮你简化这个流程,无需打开alist页面,只需要按ee匹配番号,等出现alist图标后,直接点击会跳转到alist在线观看。按住shift再点击可复制下载直链。按住alt再点击可直接调用浏览器下载。

要达到这个效果,首先需要打开alist设置-->全局-->关闭签名。此举是为了通过目录名和文件名直接获取直链。

然后打开插件的115设置,填写alistUrl和cidPair

  • alistUrl: 即文件在alist中的地址,例如http://127.0.0.1:5244/115/${dir}/${file} , dir会被替换为实际的目录,file则会被替换为实际的文件名,仅支持一级目录。
  • cidPair: cid与目录的映射关系,形如 1234:云下载; 5678:其他目录 alistUrl就是根据这个配置将dir替换为真正的目录名。cid可在115网页中打开对应的目录,地址栏中看到。

插件会对115网盘的文件数据进行缓存,而我们可能会对文件进行整理,这会导致获取到错误的直链。

比如文件本来在云下载目录,它所属的cid是1234,插件缓存了这个数据。如果文件移动到了其他目录,文件的cid变成了5678,直链应该相应地更新dir为其他目录。

但此时缓存并没有更新,所以直链的dir依然是云下载。

这个问题有三个解决办法:

  1. 如果是单个文件,那只需要按住alt然后点击番号名称后面的115图标,就会刷新这个番号的缓存

  2. 如果是多个文件,一个个点起来就会很麻烦,此时可以可以修改cidPair,比如上面的例子,我们可以把1234对应的目录也改为其他目录,即 1234:其他目录; 5678:其他目录。让所有文件的dir都默认为其他目录,但这样又会导致云下载的文件获取到错误的链接。

  3. 直接打开115设置,点击刷新所有缓存,这是兜底的办法,会请求115网盘的全量数据,要谨慎使用。

新增了一个方案,由插件提供移动功能,移动成功后就能顺便更新缓存。具体方法是打开115设置,move中填写源cid: 目的cid, 比如1234: 5678,点击确定,再打开115设置,点击批量移动,就会将1234目录中的文件移动到5678目录中,同时更新缓存。

注意,只有匹配本插件番号规则视频文件才会被移动,这意味着非番号类视频、目录、图片等文件将不会被移动。

按键说明

键鼠组合

对于链接:

  • 鼠标左键:打开链接,且焦点跟随新标签页(磁力链接会调用默认下载软件)
  • ctrl+鼠标左键: 打开链接,且焦点留在当前页面
  • shift+鼠标左键:打开备用链接,即secondarySite
  • alt+鼠标左键:仅对番号类型的链接生效,目的是同步该番号在115的状态

对于按钮或图标:

  • 鼠标左键:打开按钮绑定的链接
  • ctrl+鼠标左键:
    • 为防止误触,设置中某些按钮和离线操作,必须按住ctrl才生效。
    • 其他按钮表现等同于链接,即打开链接且焦点留在当前页面
  • alt+鼠标左键:
    • alist图标:表示直接调用浏览器下载文件
    • 115图标: 表示从115中删除该文件

另外无论是链接或按钮,鼠标右键都能复制文本,文本的内容根据实际情况可能是:番号、磁链、播放链接、下载链接等

快捷键

  • ee: 开始匹配
  • ss: 页面恢复原状
  • aa: 匹配完成后,复制所有磁力链接
  • qq: 匹配完成后,复制所有ed2k链接

设置项说明

// 默认设置项
const defaultSettings = {
    // 是否开启jellyfin/emby功能
    enable: true,
    // 是否开启本地番号填写功能
    localCodeEnable: false,
    // 在其他图标已存在时,是否依然显示本地图标
    forceShowLocalBtn: false,
    // 从jellyfin/emby 控制台获取
    apiKey: '',
    // 服务器地址
    serverUrl: 'http://127.0.0.1:8096',
    // jellyfin用户保持为false,emby用户需设置为true
    isEmby: false,
    // 若为true,则在页面加载完成后自动触发一次过滤
    triggerOnload: false,
    // 自定义快捷键,可以是任意长度的字母或数字
    hotKeys: 'ee',
    // 脚本会改变页面的原有结构,此处定义可使页面恢复原状的快捷键
    recoverHotKeys: 'ss',
    // 复制所有磁力链接快捷键
    copyMagnetHotKeys: 'aa',
    // 复制所有ed2k链接快捷键
    copyEd2kHotKeys: 'qq',
    // 点击番号时的默认跳转链接,${code}会被替换为真正的番号
    openSite: 'https://www.javbus.com/${code}',
    // 点击番号时按住shift键时的跳转链接
    secondarySite: 'https://javdb.com/search?q=${code}',
    // 若番号被识别为fc2,默认会跳转到的链接
    fc2Site: 'https://sukebei.nyaa.si/user/offkab?q=${code}',
    // 设为true时浏览器控制台会输出log
    debug: false,
    // 定义生成链接的默认颜色
    linkColor: '#236ED0FF',
    // 定义被访问过的链接颜色
    linkVisitedColor: '#424F5FFF',
    // 番号在jellyfin/115/本地中存在时显示的链接颜色
    linkExistColor: '#2A7B5FFF',
    // 定义磁力和ed2k链接的颜色
    magnetColor: 'orange',
    // 高亮卡片边框样式
    emphasisOutlineStyle: '2px solid red',
    // 默认会高亮不存在的番号,设置为true则反之
    reverseEmphasis: false,
    // 是否尽量复用窗口,可以加快打开速度
    openLinkInSameTab: false
}

// 默认115设置项
const defaultOOFSettings = {
    // 是否开启115相关功能
    enable: false,
    // 115的cookie,可自行输入或点击自动获取,任选其一
    cookie: '',
    // 自定义cookie过期时间,单位为天
    expiresIn: '30',
    // 一个番号如果在jellyfin和115中都存在,默认只显示一个jellyfin图标,若设置为true,则也会显示115图标
    forceShowOOFBtn: false,
    // 115在线观看链接
    openSite: 'https://v.anxia.com/?pickcode=${code}',
    // 首次匹配115网盘文件时,需要批次获取全量数据
    // limit定义每次获取条数,根据实际情况谨慎填写,过大可能导致服务器返回缓慢,过小请求次数过多可能触发115风控
    limit: '500',
    // 离线目录id, 留空则115会保存在云下载目录
    cid: '',
    // 是否开启alist功能
    alistEnable: false,
    // alist地址: http://127.0.0.1:5244/d/115/${dir}/${file}
    alistUrl: '',
    // cid与目录名的对应关系: 1111:目录1; 2222:目录2 用来匹配alistUrl
    cidPair: '',
    // 将115中某个目录中所有匹配番号规则的视频文件移动到另一个目录
    // 格式为cid对,比如 1111:2222 会将目录1中的文件移动到目录2
    move: ''
}