Jellyfin番号过滤

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

المؤلف
Squirtle07
التثبيت اليومي
1
إجمالي التثبيت
1,119
التقييمات
24 0 0
الإصدار
2.3.3
تم إنشاؤه
29-05-2024
تم تحديثه
21-07-2025
Size
97.3 KB
الترخيص
MIT
ينطبق على

功能说明

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

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

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

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

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

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

使用方法

jellyfin

打开设置,enable设为true,填入apiKey、serverUrl、userId等设置,点击确定 注意:从2.3.0版本开始将不再支持emby,只支持jellyfin。

2.3.0版本更新内容

随着片库越来越大,jellyfin的查询开始变得缓慢,实测2w个番号,查询用时1s左右,这大大降低了用户体验。 所以,我修改了jellyfin查重的逻辑,将所有数据存在本地,ee查询时只查缓存,不再每个番号都去请求服务器,这极大提高了操作的响应速度。 如果jellyfin片库有更新,则通过 @@ 快捷键查询最近入库的一批番号,并更新缓存即可。 如果个别番号有更新或删除,只需ctrl+鼠标左键点击链接,即可将该番号在jellyfin服务器的状态同步到本地缓存。 类似于alt+鼠标左键同步115番号的状态。

另外,如果你同时在使用 embyToLocalPlayer,可以设置下deviceId,这样当你在任何页面点击jellyfin图标时(而不仅仅是jellyfin页面),将会调用本地播放器进行播放。

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设置,手动填入cookie字符串
  • 否则先手机扫码登录网页端,打开115设置,点击获取cookie,则会自动获取当前已登录的cookie

如此设置之后,关闭浏览器也不会清除登录状态了。

补充本地番号

手动输入番号,如果匹配成功,会显示一个L图标。

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

再打开补充本地番号,输入任意番号,番号之间可用空格、换行、逗号、分号分隔,番号命名格式较为宽松,脚本会自动识别并修正,未识别的输入将会被忽略。

新增匹配名称

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

标签设置

可以给jellyfin中的合集添加一个标签,当页面中出现该合集中的项目时(比如演员或影片),就会显示该标签。id为合集的id,title即为自定义标签名,color为标签颜色,order为一个数字,表示该标签的排序顺序,仅用来在jellyfin中的演职人员页面进行排序,按ee触发过滤显示出标签之后,再按,,触发排序。 首先添加好标签,然后按!!获取并缓存设置的合集项目, 然后按ee触发过滤。如果合集后面有更新再按!!重新获取。

按键说明

键鼠组合

对于链接:

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

对于按钮或图标:

  • 鼠标左键:打开按钮绑定的链接
  • ctrl+鼠标左键:
    • 为防止误触,设置中某些按钮和离线操作,必须按住ctrl才生效。
    • 其他按钮表现等同于非番号型链接,即打开链接且焦点留在当前页面
  • alt+鼠标左键:
    • 115图标: 表示从115中删除该文件
  • shift+鼠标左键:
    • jellyfin图标:当你设置了deviceId,则默认你已经启用了embyToLocalPlayer。单纯的鼠标左键点击jellyfin图标就变成了调用本地播放器播放视频。原来的打开详情页操作则就被改为了shift+鼠标左键点击。

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

快捷键

  • ee : 开始匹配
  • ss : 页面恢复原状
  • aa : 复制磁力链接
  • qq : 复制ed2k链接
  • ww : 复制番号
  • cc : 复制匹配userRegexp的番号
  • !! : 获取标签设置中集合中的数据
  • ,, : 在jellyfin中的演职人员页面按标签设置中order进行排序
  • ;; : jellyfin中的心形图标只有当鼠标hover上去才会出现,按;;可以额外显示一个心形
  • @@ : 批量获取jellyfin数据的快捷键,默认一次获取最新入库的200条,可通过extraFetchParams设置。

设置项说明

// 默认设置项
const defaultSettings = {
    // 是否开启jellyfin功能
    enable: true,
    // 是否开启本地番号填写功能
    localCodeEnable: false,
    // 在其他图标已存在时,是否依然显示本地图标
    forceShowLocalBtn: false,
    // 是否开启标签功能
    labelEnable: true,
    // 从jellyfin 控制台获取
    apiKey: '',
    // 服务器地址
    serverUrl: 'http://127.0.0.1:8096',
    // jellyfin中的用户id,建议填写,否则一些功能不可用,浏览器控制台输入ApiClient._currentUser.Id获取
    userId: '',
    // 设备Id,在jellyfin页面按F12打开控制台,输入ApiClient._deviceId获取
    // 仅在你同时在用 embyToLocalPlayer 插件时需要填写 https://greasyfork.org/zh-CN/scripts/448648-embytolocalplayer/feedback
    // 打开本地播放器时需要该参数
    deviceId: '',
    // 额外的搜索参数,格式为:parentId=xxx;isFavorite=true
    extraSearchParams: '',
    // 若为true,则在页面加载完成后自动触发一次过滤
    triggerOnload: false,
    // 是否显示收藏按钮
    showFavoriteBtn: false,
    // 自定义快捷键,可以是任意长度的字母或数字
    hotKeys: 'ee',
    // 脚本会改变页面的原有结构,此处定义可使页面恢复原状的快捷键
    recoverHotKeys: 'ss',
    // 复制所有磁力链接快捷键
    copyMagnetHotKeys: 'aa',
    // 复制所有ed2k链接快捷键
    copyEd2kHotKeys: 'qq',
    // 复制所有番号快捷键
    copyCodeHotKeys: 'ww',
    // 复制与用户自定义正则匹配的字符串
    copyUserRegHotKeys: 'cc',
    // 在jellyfin的卡片上显示一个心形图标显示
    addFavBtnHotKeys: ';;',
    // 获取jellyfin合集信息
    getCollectionHotKeys: '!!',
    // 根据标签的order进行排序,仅在jellyfin中生效
    sortLabelHotKeys: ',,',
    // 默认从小到大排序
    sortLabelAsc: true,
    // 获取jellyfin数据快捷键
    fetchItemsHotKeys: '@@',
    // 额外的fetch参数,格式为:limit=200;parentId=xxx
    // limit不填则默认为200,填入0则获取全部数据
    extraFetchParams: 'limit:200',
    // 点击番号时的默认跳转链接,${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}',
    // 若番号被识别为fc2,按住shift键时跳转的链接
    secondaryFc2Site: 'https://missav.live/search/${code}',
    // 设为true时浏览器控制台会输出log
    debug: false,
    // 定义生成链接的默认颜色
    linkColor: '#236ED0FF',
    // 定义被访问过的链接颜色
    linkVisitedColor: 'brown',
    // 番号在jellyfin/115/本地中存在时显示的链接颜色
    linkExistColor: '#2A7B5FFF',
    // 定义磁力和ed2k链接的颜色
    magnetColor: 'indianred',
    // 高亮卡片边框样式
    emphasisOutlineStyle: '2px solid red',
    // 默认会高亮不存在的番号,设置为true则反之
    reverseEmphasis: false,
    // 是否尽量复用窗口,可以加快打开速度
    openLinkInSameTab: false,
    // 自定义正则,匹配优先级最低
    // \d*[a-z]+\d*[-_]s*\d{2,}
    userRegexp: '',
    // 自定义正则匹配的高亮颜色
    userRegColor: 'orange',
    // 在jellyfin的movies页面是否自动触发过滤
    jellyfinAutoTrigger: false,
    // 在jellyfin页面中是否开启过滤,默认不开启
    enableInJellyfin: false
}

// 默认115设置项
const defaultOOFSettings = {
    // 是否开启115相关功能
    enable: false,
    // 115的cookie,可自行输入或点击自动获取,任选其一
    cookie: '',
    // 自定义cookie过期时间,单位为天
    expiresIn: '30',
    // 一个番号如果在jellyfin和115中都存在,默认只显示一个jellyfin图标,若设置为true,则也会显示115图标
    forceShowOOFBtn: false,
    // 115在线观看链接
    openSite: 'https://115vod.com/?pickcode=${pickcode}',
    // 搭配115Master插件使用时,可使用以下链接,按住shift键再点击
    secondarySite: 'https://dl.115cdn.net/master/video/?pick_code=${pickcode}&cid=0',
    // 首次匹配115网盘文件时,需要批次获取全量数据
    // limit定义每次获取条数,根据实际情况谨慎填写,过大可能导致服务器返回缓慢,过小请求次数过多可能触发115风控
    limit: '500',
    // 离线目录id, 留空则115会保存在云下载目录
    offlineCid: '',
    // 获取该目录下的文件来更新缓存缓存,包括点击刷新按钮时
    fetchCid: '0',
    // 将115中某个目录中所有匹配番号规则的视频文件移动到另一个目录
    // 格式为cid对,比如 1111:2222 会将目录1中的文件移动到目录2
    move: ''
}