• dfjk

    OP
    水王
  • #1
  • 已编辑

2025-04-08 更新

程序主帖里有提到,为以后支持前后端分离提前修改了一些模板函数,本着负责到底的态度特此更新。huaji02

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

2025-03-19 更新

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

修复了 #6 dfjk 提到的 bug。

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

原帖

这个是 【影视站程序】极低内存占用…… 的扩展模板,因坛友提出需要可以播放要先解析的链接,基于默认模板修改的。现仅需两到三步配置一下即可实现该需求:

使用方法

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

1. 设置反代

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

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

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

此内容需要 回复 并刷新页面可见

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

打赏

  • dfjk

    OP
    水王
  • #3

#2 Drift 感谢分享大师帮我挽尊 huaji03

  • #4

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

    • James

      MANAGER
    • #5

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

      • dfjk

        OP
        水王
      • #6

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

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

      .then((res) => loader({ src: res[solution[2]] }))

      把它改成:

      .then((res) => { const key = solution[2]; loader({ src: res[key] })})

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

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

        • dfjk

          OP
          水王
        • #10

        #9 KQ xhj08     

        感谢楼主分享。

        8 天 后
        dfjk 更改标题为「【影视站程序】官解模板下载,支持【去广告】
        • dfjk

          OP
          水王
        • #14

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

        7 天 后

        Just see see

        感谢op分享

        14 天 后

        感谢分享,我来看看

        虽然不用,也要支持