📋【影视站程序】官解模板下载,新增支持【分类列表】

相关资源:演示站 / 建站程序 / 建站程序 ARM 版 / 建站程序前后端分离试验版

2025-05-04 更新

破坏性更新

本次更新将原先的 /vod/list.html 重命名为 /vod/incl_list.html,将 /vod/list.html 用于影片分类列表页,以及将所有用于 include 的模板都使用 incl_ 前缀重命名,以避免未来再次出现此类破坏性更新。

兼容性说明

新版本的程序依旧兼容旧版本的模板,仅在访问分类列表页时会报错,且新版本的模板完全兼容老版本的程序。

使用说明

这个模板中没有直接添加分类链接,使用者在需要的位置自行添加 <a href="/vod/list/?kw={关键词}">{关键词}</a> HTML 代码。{关键词} 可以用英文逗号分隔同义词,用来兼容各源站不同的命名风格,比如 /vod/list/?kw=动漫,动画 会按更新时间倒序合并列出诸如动漫日韩动漫日韩动画国产动画动画电影动画短片等分类的影片。

为保证查询性能,只返回前 20 页共 600 条数据,应该能满足日常需要。

2025-04-30 更新

新增了 IPTV 页面。

2025-04-08 更新

⚡️【影视站程序】更新【分类列表】极低内存占用,可在软路由、NAS 上流畅运行 里有提到,为以后支持前后端分离提前修改了一些模板函数,本着负责到底的态度特此更新。:huaji02:

如果老模板没改动过,把 solutions 数组和反代地址粘贴过来就行了。

2025-03-19 更新

替换了原帖内容里的下载链接,支持了去广告功能。

修复了 📋【影视站程序】官解模板下载,新增支持【分类列表】 - #6,来自 dfjk 提到的 bug。

因为我自己没有采集需要官解的片源,所以不太确定有没有其他 bug,普通片源我试了没有问题。

原帖

这个是 ⚡️【影视站程序】更新【分类列表】极低内存占用,可在软路由、NAS 上流畅运行 的扩展模板,因坛友提出需要可以播放要先解析的链接,基于默认模板修改的。现仅需两到三步配置一下即可实现该需求:

使用方法

如果你使用的是直接返回播放器代码的解析接口,则无须反代,直接跳到第二步。

1. 设置反代

如果你想使用本模板自带的播放器,需要使用返回 JSON 数据的解析接口,以及自己使用 Nginx 或宝塔配置一个反向代理,以解决接口不支持跨域的问题。或者,如果你能联系到接口提供方,向他们建议给 HTTP 返回头增加一句 Access-Control-Allow-Origin: *,就可以无须架设反代了。

反代的架设方法自己搜索,不在本说明范围内。

2. 下载并解压(2025-04-08 更新)

[reply]
新版本的论坛还不能上传附件,待站长修复后我会补上。
[/reply]

3. 编辑模板

打开文件 tempaltes/kq/vod/play.html,在上方你会看到如下代码:

const loadPlayer = ({ code, src, loader }) => {
    if (src.endsWith('.m3u8') || src.endsWith('.mp4')) {
        return loader({ src })
}
    // JSON 接口反代地址,比如:https://my-vod-site.com:8080/?json_url=
    const proxy = ''
    const solutions = [
        // ['播放编码', '解析地址', '键名或 null'],
        // `播放编码`就是后台`线路设置`中的`播放编码`,只填写需要解析的线路,
        // 第三个元素如果有值,则通过反代地址向解析地址发送 JSON 请求,取出返回值相应的键值,
        // 如果是 null,则以 iframe 的形式载入解析地址提供的播放器。下面是例子:
        // ['iqiyi', 'https://jiexi.com/?json=', 'url'],
        // ['youku', 'https://jiexi.com/?player=', null],
]

代码中已经简单写了注释,我再详细说明一下:

编辑位置 1

无需反代的可跳过本步骤。

架设好反代的,定位到 const proxy = '',在两个单引号之间填入你架设的反代接口地址。

编辑位置 2

找到这个数组的位置:

const solutions = [
    // ['播放编码', '解析地址', '键名或 null'],
    // `播放编码`就是后台`线路设置`中的`播放编码`,只填写需要解析的线路,
    // 第三个元素如果有值,则通过反代地址向解析地址发送 JSON 请求,取出返回值相应的键值,
    // 如果是 null,则以 iframe 的形式载入解析地址提供的播放器。下面是例子:
    // ['iqiyi', 'https://jiexi.com/?json=', 'url'],
    // ['youku', 'https://jiexi.com/?player=', null],
]

solutions 中按注释的格式填入一或多个三元素数组。注意第三个元素的数据类型:键名带引号,null 不要带引号。

至此模板编辑部分已经完成。

4. 使用模板

templates 文件夹和可执行文件放在同一个目录中,将网站后台“站点设置”页中的“模板名称”项改为“kq”,提交。

至此全部完成,以后添加新线路时依照第三步编辑模板即可。

完结散花 :xhj20:

王婆:精心设计的程序架构,优雅的代码结构,仅在模板层就解决了新需求,无须改动主程序,太酷啦。:huaji02:

2 个赞

:ac05:

@“Drift”#p256498 感谢分享大师帮我挽尊 :huaji03:

我简单测试了一下,报错了“Tplua Error: syntax error: [string “/var/www/vodg/repo/tplua/src/func/rt.rs:69:14…”]:1007: unexpected symbol near ‘}’” 不确定是我的问题还是代码出错了,我也原封不动的测试了没改的代码也是报同样的错误

感谢大佬分享,模版是生态。默认模版简单了一些

@“KQ”#p256633 忘记了,改模板时顺手修了一个模板引擎的 bug。

`solutions` 下面 `for` 循环里你找到这句:

javascript</s><i> </i>.then((res) =&gt; loader({ src: res[solution[2]] }))<i> </i><e>

把它改成:

javascript</s><i> </i>.then((res) =&gt; { const key = solution[2]; loader({ src: res[key] })})<i> </i><e>

这样能避开还没修复的 bug。

@"James"#p256634 是啊,我为了自己代码写得爽手搓了一个全新的模板引擎,又懒得写使用教程,属于自己断送了生态。:huaji37:

有没有演示站可以看看

@“玩卡教授”#p256770 我签名里那个站就是 :huaji28:

@“dfjk”#p256668 实测可用,非常感谢

@“KQ”#p256916 :xhj08:

感谢楼主分享。

[“\u3010\u5f71\u89c6\u7ad9\u7a0b\u5e8f\u3011\u5b98\u89e3\u6a21\u677f\u4e0b\u8f7d”,“\u3010\u5f71\u89c6\u7ad9\u7a0b\u5e8f\u3011\u5b98\u89e3\u6a21\u677f\u4e0b\u8f7d\uff0c\u652f\u6301\u3010\u53bb\u5e7f\u544a\u3011”]

看看最新版

@“不想翻身的咸鱼”#p264515 需要配合新程序用哦,现在这个模板直接调用了去广告接口,老程序没有

感谢:folded_hands:

Just see see

感谢op分享,来看看

感谢op分享

1 个赞

感谢分享,我来看看

虽然不用,也要支持