Repository navigation
Releases: zhujinrun/FongMi-Player
Releases · zhujinrun/FongMi-Player
Release list
1.3.4
自 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
自 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
针对「搜索结果封面加载很久」的优化。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
自 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
自 v1.2.0 起共 13 次提交,重点在切源/切分类稳定性、启动与二次进入提速,并带来海报缩略代理与启动骨架屏两项新特性。
新特性
- 海报缩略代理:列表海报统一走本地缩放代理,超大原图不再整张拉回,列表加载更快、内存更省,坏图与慢图区分显示。
- 启动骨架屏:启动时的转圈动画改为与真实布局一致的骨架屏,打开即可预览页面结构,观感更流畅。
稳定性修复
- 修复切分类列表不更新:移除列表卡片的
v-memo缓存,切换分类/源后整列替换不再残留上一屏内容(此前会出现数据已换、界面仍显示旧分类的假象)。 - 修复切源后转圈直到失败:默认源在启动时即后台预热,首次点开不再承担源站冷启动成本,避免超过超时上限而「网络请求失败」。
- 修复切回源后显示过期筛选残集:客户端筛选重写不再污染切回用的快照,切回时恢复的是源站完整列表而非被筛过的子集。
- 分类/列表缓存加上容量上限,且空结果不再缓存:长期运行不再无界累积内存;空分类/空列表不会冻结空态,切源/重试能正常恢复。
- 图片代理重定向设上限,异常图床循环重定向不再无限递归拖垮主进程。
性能
- 分类与列表按需缓存:切分类再切回、来回滚动时秒出,命中缓存省掉一整跳源站往返。
- 设为默认源即预热:勾选默认源后立即后台填充分类缓存,首次点开即命中。
- 切源时的分类/列表请求串行化,修复切源瞬间的白遮罩残留。
其它
- 网关(gateway.jar)同步升级:默认源优先预热、空结果不缓存、云盘/蜘蛛稳定性修复随包更新。
- 提交信息统一为英文;新增稳定性修复项的端到端实测探针。
升级提示
- 覆盖安装即可,配置与历史记录保留。
Full Changelog: v1.2.0...v1.3.0
1.2.0
自 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
安全加固
- 彻底切断 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
新增
- 网盘扫码登录:设置 → 网盘 → 「网盘登录」,手机扫码即可授权夸克/阿里,无需手动填 Cookie
- 网盘目录浏览:文件夹先弹目录窗逐层下钻,点到具体文件才进入播放
修复
- 网盘影片可正常播放并支持拖动进度(播放地址统一经网关代理,修正分段 m3u8 与请求头透传)
- 未登录/已停用网盘的播放线路不再出现,误点也不会卡死 120 秒(自动跳过并给出提示)
- 网关默认监听
0.0.0.0(扫码需手机在局域网内可达),启动时报告站点解析覆盖情况
内置组件
- 网关同步更新(登录面板、播放代理、未登录线路过滤与超时保护)
Full Changelog: v1.1.1...v1.1.2