IINA-DanmakuCosmos-Patch 是一个很小、也很明确的一次性工具:把我原本会手动改进插件源码的几项偏好,整理成可检查、可重复执行的构建流程。
它建立在什么之上
真正提供 IINA 弹幕体验的是 karappo-yu 与贡献者们开发的 Danmaku Cosmos。这个 patcher 不重新实现播放器插件,也不替代原项目;没有 Danmaku Cosmos,就没有这里要修改的对象。
它做的事情可以缩成一条式子:
经过校验的上游插件 + profile = 新的可安装 .iinaplgz
为什么不直接改已安装插件
直接进入 IINA 的插件目录改 JavaScript 和 HTML,短期很快,但下次更新后很难记得改过什么,也很难判断上游代码是否已经变化。这个构建器会下载或接收一份干净的上游包,验证 SHA-256 和精确的代码锚点,在临时目录中应用全部变更,最后才原子化输出新包。
如果上游不再匹配,它会停止并指出受影响的文件,不猜测替换,也不会碰当前安装在 IINA 中的插件。
可以改什么
Profile 目前覆盖弹幕透明度、字号、描边、滚动速度、renderer、DandanPlay 自动联网、默认启用状态与评论数量限制。仓库自带一个较紧凑、滚动较慢的 profile,也可以复制默认 profile 做自己的版本。
它为什么开源
这个项目不复杂,甚至很可能只需要用一次。正因为如此,把它公开的价值不在于建立一个庞大产品,而在于留下一个可读的做法:下载、校验、patch、style customization,各自有清楚边界;以后上游变化时,要么明确更新兼容规则,要么安全失败。
源码使用 Python 标准库,测试使用合成的最小插件 fixture;上游插件包、生成结果和本地 profile 都不会进入 Git。