Alist已在v2.6.2支持加载xml弹幕文件,原文仅做记录
Alist是一款优秀的支持多存储的文件列表程序,播放器采用artplayer。
artplayer支持xml弹幕加载但Alist没有添加相关功能,遂自己改动
- 环境准备
构建前端
Alist的前端项目是Alist-web,clone并进入目录,
安装artplayer-plugin-danmuku插件:yarn add artplayer-plugin-danmuku
播放器文件是/src/pages/list/preview/video.tsx,导入库文件:
import artplayerPluginDanmuku from 'artplayer-plugin-danmuku';
artplayer-plugin-danmuku 默认没有声明文件,所以要在库文件下添加声明:
在alist-web-2\node_modules\artplayer-plugin-danmuku文件下新建index.d.ts文件,内容填入declare module 'artplayer-plugin-danmuku';
根据artplayer-plugin-danmuku文档添加所需功能后
执行yarn && yarn build
得到dist目录下的目标文件
构建后端
构建后端需要安装一堆环境,故选择使用github Action进行构建
将构建前端生成的dist目录打包为dist.tar.gz,上传至某处获得直链
clone Alist到自己的Github,修改build.sh文件开头,修改为自己的dist文件直链#!/bin/bash # 构建前端,在当前目录产生一个dist文件夹 BUILD_WEB() { curl -L https://xxxx.xxx/dist.tar.gz -o dist.tar.gz tar -zxvf dist.tar.gz rm -f dist.tar.gz } CDN_WEB() { curl -L https://xxxx.xxx/dist.tar.gz -o dist.tar.gz tar -zxvf dist.tar.gz rm -f dist.tar.gz }
如果你需要构建在其他操作系统运行的alist,还需要在xgo -targets添加你需要的版本
并且需要设定golang版本以避免默认版本的bugxgo -go go-1.17.1 -targets=linux/arm64,windows/amd64,darwin/amd64 -out "$appName" -ldflags="$ldflags" -tags=jsoniter .
提交后,GitHub会自动构建。
- 使用
大约10分钟,GitHub构建完成,在Actions里找到构建的程序下载并启动
启动后修改dataconfig.json 的assets字段为 "/",以确保程序正确加载重新构建的前端文件
这里好像不能评论···