Skip to content

Releases: zhujinrun/FongMi-Player

1.3.4

Choose a tag to compare

@github-actions github-actions released this 27 Oct 04:23

自 v1.3.3 起共 3 次提交,全部是内嵌网关(gateway.jar)的更新,界面无改动。两件事:加固壳源的域名现在跟着源站自己走,以及饭太硬配置里的 .js(drpy)源能用了。

新增

  • 支持 drpy(.js)源:这类源把规则写在一个 var rule = {...} 的文件里,接口地址只指向源站自己的框架,以前网关判定「不支持的爬虫」直接返回空——饭太硬 49 个源里虎牙、斗鱼、兔小贝三站一直是无数据。现在网关自己解释规则(规则当数据读,只有零散的 JS 片段交给内嵌的 Rhino 执行),不跑源站的框架。实测三站都能出片:虎牙 4 分类 120 条、斗鱼 9 分类 8 条、兔小贝 4 分类 30 条;兔小贝的播放直链能直接解出来,虎牙/斗鱼是直播页,交给播放器嗅探。饭太硬 49 个源的整体可用数 29 → 32,且没有源掉队。
  • 加固壳源的域名跟随源站更新:这类爬虫的接口域名写在源站自己的配置里(目前 16 个键,含 wogg 玩偶、duoduo 多多等),以前只能把域名快照打进版本里,源站一换域名就得等我们发新版。现在网关启动后会去拉源站当期的映射(最多 6 小时一次),几个候选域名逐个探测、挑一个能连通的用;上游拉不到就保留本地上一份,不会把本来能用的源弄坏,仓库里的快照降级为兜底。

修复

  • 6 个加固壳源在域名失效时静默返回空:v1.3.3 之后的第一版网关补上了仓库侧的域名表,玩偶等 6 个源不再对着一个没有 DNS 记录的硬编码域名查询(实测玩偶首页 7 个分类、分类页出《末世行者》、能搜到《斗罗》)。
  • 域名表全量对齐官方渠道的 16 个键:此前只有零星几个键,其余源要等上游自拉成功才生效,上游一断就退回旧域名。

升级提示

  • 覆盖安装即可,配置与历史记录保留。
  • 如果你在用饭太硬这类含 .js 源的接口:同步一次配置就能看到新增的三个站,不用手动添加。

Full Changelog: v1.3.3...v1.3.4

1.3.3

Choose a tag to compare

@github-actions github-actions released this 26 Oct 14:37

自 v1.3.2 起共 4 次提交,是一个必须升级的修复版:已发布的 v1.3.0 ~ v1.3.2 内嵌的网关缺少关键类,加固壳类接口(王二小这类)实际上是跑不起来的,这次把网关换成与 Gateway 仓库一致的构建。

修复

  • 内嵌网关落后于 Gateway 仓库:v1.3.0 起打进去的 gateway.jar 是一份旧构建,缺 Repo、JarLoader、Main 的当前版本——没有 Repo 就解析不了 jar/ 通道、认不了 -Dgateway.repo,旧 JarLoader 也没有对预置翻译产物的 md5 校验。结果是 99 个加固壳源里 89 个回落 d2j 后抛 ClassNotFoundException。现已用 Gateway 当前构建重新打包(28116843 → 28131921 B),两次构建产物 md5 一致。
  • 安卓专属源被误报成「无数据」:王二小这类接口已经换成安卓壳爬虫(classes.dex + wexguard_v7/v8.so + 加密 payload),桌面网关解析不到里面的类。以前界面上显示成「无数据」,看起来像网络问题,现在网关会标出每个源是否受支持,检测时直接显示「不支持」,并归入同一类不再反复重试。
  • 王二小内置接口地址失效:tvbox.王二小放牛娃.top 现在只会跳到一张 HTML 落地页,能返回 JSON 的只剩 9280.kstore.vip 上的直连地址。内置预设已改为 https://9280.kstore.vip/newwex.json,并在读取时自动迁移老地址,已装的用户不用手动改。

体验

  • 同步配置时按支持情况打标:跑不了的源照样建行但默认禁用,不再拖累聚搜速度。
  • 批量检测后汇总提示不受支持的源有多少个,并建议换接口(例如饭太硬),而不是逐个弹窗刷屏。

Full Changelog: v1.3.2...v1.3.3

1.3.2

Choose a tag to compare

@github-actions github-actions released this 25 Oct 12:03

针对「搜索结果封面加载很久」的优化。v1.3.1 为了快速止血把列表海报改回直连原图,这次换成修好的缩略代理:首次不劣化,之后每张从几百 KB 降到二十几 KB。

性能

  • 列表封面重新走缩略代理:卡片只显示两百多像素宽,源站海报却常是没压缩的原图(实测 690×1035 就有 343KB)。代理把它缩到 280px 宽再返回,单张约 21KB,体积降到 1/16,并落盘缓存 7 天。
  • 代理不再只挂一个端口:浏览器对同一个地址只有 6 个并发连接,之前几十张海报全挤在 9978 会排队——这正是上一个版本回退代理的原因。现在同时开 4 个本地端口按图片地址分散,最多 24 个并发。
  • 首次访问不再等主进程转码:缓存没命中时仍让浏览器直接取原图(十几个图床各自并发,实测比主进程先转码快 3 倍),转码放到后台按 6 并发慢慢做,不与屏幕上正在显示的图抢带宽。
  • 转码改用 Electron 原生解码,替代原来的纯 JS 实现,单张从几十毫秒降到几毫秒。

修复

  • 修掉上一版代理「转了但没生效」的根因:webp 格式两个解码器都不支持,导致预热永远静默失败、缓存目录一直是空的。现在识别出这类图片后不再重复下载——webp 本身只有 17KB,缩放也没有收益。

升级提示

  • 覆盖安装即可。首次浏览同一批内容仍要下载原图(这一步省不掉),之后翻回来或下次打开都直接命中本机缓存。

Full Changelog: v1.3.1...v1.3.2

1.3.1

Choose a tag to compare

@github-actions github-actions released this 25 Oct 07:02

自 v1.3.0 起共 4 次提交,是一次以搜索为核心的修复版:聚搜由串行改为并发、搜索不再显示上一屏内容,并修掉 v1.3.0 引入的海报缩略代理导致的封面一直转圈。

搜索

  • 聚搜改为并发:6 个源同时发起、谁先回来谁先上屏,不再一次只搜一个源。原先结果一多、列表把加载哨兵顶出视口后,后面的源就再也不会被搜——24 个源要手动滚动约 20 次、耗时近一分钟;现在全站搜索首屏约 0.7 秒出图,十余秒内跑完全部源。
  • 修复空源无限循环:某个源没有结果时,旧逻辑会让同一个源被反复重搜,一次滚动能打出几十个请求。现在搜索游标一路向前、到末尾即收尾,请求数与源的数量一致。
  • 修复搜索时先显示上一屏内容:开始新搜索时清空用于「切源占位」的快照,输入回车后直接显示新结果(含无结果时的空态),不再先闪一下上一次的列表。
  • drpy 类源在聚搜中单独串行,避免并行调用互相覆盖运行状态导致请求挂起。

修复

  • 修复列表封面一直转圈:v1.3.0 引入的海报缩略代理把列表里所有海报收敛到本机单一地址,撞上浏览器同域并发上限,图片排队等待。现已回退为直连原图地址,各图床各自并发,封面正常显示。
  • 修复清除搜索历史的确认框被遮挡:确认框层级低于搜索面板,几乎整块被面板盖住、只剩右侧一条可点。现在确认框浮于面板与遮罩之上,取消后仍可在面板里继续选历史词。

升级提示

  • 覆盖安装即可,配置与历史记录保留。

Full Changelog: v1.3.0...v1.3.1

1.3.0

Choose a tag to compare

@github-actions github-actions released this 25 Oct 03:52

自 v1.2.0 起共 13 次提交,重点在切源/切分类稳定性、启动与二次进入提速,并带来海报缩略代理与启动骨架屏两项新特性。

新特性

  • 海报缩略代理:列表海报统一走本地缩放代理,超大原图不再整张拉回,列表加载更快、内存更省,坏图与慢图区分显示。
  • 启动骨架屏:启动时的转圈动画改为与真实布局一致的骨架屏,打开即可预览页面结构,观感更流畅。

稳定性修复

  • 修复切分类列表不更新:移除列表卡片的 v-memo 缓存,切换分类/源后整列替换不再残留上一屏内容(此前会出现数据已换、界面仍显示旧分类的假象)。
  • 修复切源后转圈直到失败:默认源在启动时即后台预热,首次点开不再承担源站冷启动成本,避免超过超时上限而「网络请求失败」。
  • 修复切回源后显示过期筛选残集:客户端筛选重写不再污染切回用的快照,切回时恢复的是源站完整列表而非被筛过的子集。
  • 分类/列表缓存加上容量上限,且空结果不再缓存:长期运行不再无界累积内存;空分类/空列表不会冻结空态,切源/重试能正常恢复。
  • 图片代理重定向设上限,异常图床循环重定向不再无限递归拖垮主进程。

性能

  • 分类与列表按需缓存:切分类再切回、来回滚动时秒出,命中缓存省掉一整跳源站往返。
  • 设为默认源即预热:勾选默认源后立即后台填充分类缓存,首次点开即命中。
  • 切源时的分类/列表请求串行化,修复切源瞬间的白遮罩残留。

其它

  • 网关(gateway.jar)同步升级:默认源优先预热、空结果不缓存、云盘/蜘蛛稳定性修复随包更新。
  • 提交信息统一为英文;新增稳定性修复项的端到端实测探针。

升级提示

  • 覆盖安装即可,配置与历史记录保留。

Full Changelog: v1.2.0...v1.3.0

1.2.0

Choose a tag to compare

@github-actions github-actions released this 25 Oct 03:37

自 v1.1.3 起共 18 次提交,重点在播放体验、状态反馈与启动性能。

播放体验

  • 每集独立记忆进度:同一影片的每一集各自保存播放位置,切换剧集不再丢失上一集进度,看完的剧集重开时从头播放;切换线路保持当前进度。
  • 自动连播倒计时:本集播完进入 5 秒倒计时,可「立即播放下一集」或取消;下一集加载失败时不再静默跳过。
  • 全屏内可直接选集/换线路:切换剧集、换线路、看到播放错误提示都不用退出全屏,全屏下新增悬浮选单与暗色选集面板。
  • 统一键盘快捷键:播放/暂停、快进快退、音量、静音、上一集/下一集等按键在四种播放器内核下行为一致,不再因切换内核而「同样的手指按出不同结果」。
  • 倍速键对齐音量键:< / > 以统一档位步进倍速;调低音量时不再悄悄解除静音。

状态反馈

  • 空态与错误态有了出路:电影、IPTV、网盘在没有配置或配置读取失败时,从「一行提示/白屏」改为带图标、说明和「前往设置」按钮的状态页;失败时可一键重试。
  • 图片加载与加载失败区分显示:海报加载中显示灰色骨架,加载失败才显示占位图,慢图和坏图不再长得一样。
  • nplayer 内核补上画中画按钮。

页面与设置

  • 搜索框新增候选列表:优先本地历史/热门,单源兜底,无需再输入完整标题回车。
  • 电影页切换分类不再闪白:保留上一屏卡片直到下一页就绪,无内容可保留时显示骨架屏。
  • 追更页切换标签不再重建整页:历史/收藏来回切不再反复重拉第一页、丢失滚动位置。
  • 详情页不再硬编码:评分不再是凭空「0.0」,简介不再被硬塞进 150px 高度。
  • 更新检查改为启动后静默执行:新版本发布后不再只能手动点「检查更新」才发现,检测到更新时在布局角落显示可关闭的提示卡片。

性能

  • 首屏脚本体积进一步下降:异步页不再把编辑器、播放内核、规则引擎拖进首屏,lodash 改为按方法引入,moment/webdav/免责声明 markdown 改为按需加载;首屏脚本由约 4.2MB 降至约 2.8MB。
  • 写源工具按需加载:打开写源工具不再连带下载约 5.9MB 的播放内核,试播放弹窗首次点击才创建实例。
  • 无限列表去重与追加渲染线性化,翻页追加卡片不再整列重渲染。

其它

  • 提交信息统一为英文;新增安全债评估文档(记录 disable-web-security / ignore-certificate-errors 的依赖与不可删除原因,无运行时代码改动)。

升级提示

  • 覆盖安装即可,配置与历史记录保留。

Full Changelog: v1.1.3...v1.2.0

1.1.3

Choose a tag to compare

@github-actions github-actions released this 23 Oct 12:56

安全加固

  • 彻底切断 XSS → RCE 链路:远程 HTML(CMS 详情简介、AI 结果、GitHub 更新说明)统一走 DOMPurify 白名单清洗;生产构建注入 CSP 限制脚本来源(仅本地源码 + 规则引擎所需的 eval 与第三方 iframe 嵌入),恢复 webSecurity: true,关闭不安全内容加载。
  • 修复命令注入:外部播放器与缩略图 ffmpeg 改为参数数组调用,URL 不再经过 shell;open-url 仅放行 http/https,open-path 禁止逃出用户数据目录。
  • 本地 API 服务只监听 127.0.0.1,不再对局域网暴露;文件读写路由统一解析路径并拒绝目录穿越。
  • 网关 token 首次启动自动随机生成并贯穿内部请求;移除调试模式下远程加载的 page-spy 脚本。

网关

  • 网关 token 覆盖媒体流、m3u8 分片、弹幕、外链播放、缩略图与浏览器打开等全部路径,解决开启鉴权后播放 401。
  • 网关登录态查询提速:状态轮询由约 5.3 秒降至约 20 毫秒;未扫码时不再误报“网盘不支持扫码”。
  • 网关/窗口管理 4 项修复:子进程退出只清理自己持有的句柄、重复同步返回 changed: false 不再抛错、窗口复用避免重复挂载监听、状态轮询丢弃乱序响应。

播放

  • 新增「自动连播」开关,连播失败自动重试一次,仍失败则跳过并提示,不再卡在错误页。
  • 播放失败兜底:播放器/流错误监听 + 失败浮层与重试入口,创建、嗅探、解析各环节均有保护。
  • 切换片源/解析时销毁旧流、按集数位置重映射并重播,修复切换后黑屏与重复播放。
  • 修复进度条不更新、seek 竞态(四个播放器统一先判断就绪)、下一集预加载弹幕取错地址、nplayer 种子实例提前销毁、xgplayer 自定义 dash 回退等播放器问题。
  • 历史记录保存治理:进度写入节流 250ms、保存失败保留本地状态、避免重复入库、空值保护。

页面与设置

  • 电影页 10 项修复:详情/选集对话框使用正确的关联站点、事件总线不再泄漏或重复注册、区域/年份筛选空值保护、切页丢弃过期响应、筛选格式缓存恢复等。
  • 追更页(History/Binge)18 项修复。
  • 搜索页 4 项修复:热门/配置异常时清理骨架屏、非数组数据源不再崩溃、切换源丢弃过期响应、清空历史先等服务端再清空。
  • 源编辑 6 项修复:AI 对话框按钮不再卡 loading、t3 worker 防重入、删除前二次确认、取消不再误开对话框等。
  • CMS 解析修复:classify 补全 type 2/4/6 响应体读取、筛选参数改用 URLSearchParams 序列化、drpy 播放地址走 302 重定向接口、豆瓣详情/推荐字段解析。
  • 设置项可信度:删除/启停/批量删除前确认与失败回滚,单项检测与批量检测如实提示结果;自动保存不再覆盖尚未加载成功的配置。
  • IPTV 源切换与设为默认改为「全部写入成功后再切换」;网盘源切换不再清空导航列表。
  • 设置页移除 Hipy 广告位及其图片、文案与残留样式。
  • 「随心看」接口异常时回退到默认接口,并对播放器初始化加保护。
  • 修复不存在的路由(改坏的 hash、旧深链接)触发无限重定向并抛出 Maximum call stack size exceeded,现在统一回到影视首页。
  • 修复观看历史中时长未知的条目(如网盘文件)进度显示为「已看 Infinity%」。

构建与代码质量

  • 构建期注入 CSP:修复开发模式下静态 meta 拦截内联脚本导致的首页白屏;打包版 CSP 放行 eval 与 iframe,修复打包后首屏白屏、t3 源失效与解析播放无法嵌入的问题。
  • 侧边栏图标改为内联 SVG 渲染:不再依赖 tdesign CDN 的 svg sprite,修复打包版与离线环境下左侧菜单图标空白。
  • 迁移 ESLint 9 flat config 并保留告警基线门槛,移除破坏模板作用域解析的配置项。

升级提示

  • 覆盖安装即可,配置与历史记录保留。
  • 若你此前没有为网关设置过 token,升级后首次启动网关会自动生成随机 token 并持久化;已设置过则保持原值不变。

Full Changelog: v1.1.2...v1.1.3

1.1.2

Choose a tag to compare

@github-actions github-actions released this 15 Oct 06:25

新增

  • 网盘扫码登录:设置 → 网盘 → 「网盘登录」,手机扫码即可授权夸克/阿里,无需手动填 Cookie
  • 网盘目录浏览:文件夹先弹目录窗逐层下钻,点到具体文件才进入播放

修复

  • 网盘影片可正常播放并支持拖动进度(播放地址统一经网关代理,修正分段 m3u8 与请求头透传)
  • 未登录/已停用网盘的播放线路不再出现,误点也不会卡死 120 秒(自动跳过并给出提示)
  • 网关默认监听 0.0.0.0(扫码需手机在局域网内可达),启动时报告站点解析覆盖情况

内置组件

  • 网关同步更新(登录面板、播放代理、未登录线路过滤与超时保护)

Full Changelog: v1.1.1...v1.1.2

1.1.1

Choose a tag to compare

@github-actions github-actions released this 30 Sep 00:35
v1.1.1

Release v1.1.1

1.1.0

Choose a tag to compare

@github-actions github-actions released this 28 Sep 08:18
v1.1.0

Release v1.1.0