Appearance
脚本配置持久化
当前来源状态分散在 login UI、source/book/chapter variable、CookieJar 和 CacheManager。变量适合 保存线路、分页游标和短期 token;持久敏感凭据不应随公共 JSON 导出。
三层变量,生命周期不同
写脚本时最容易搞混的是“这个值该存在哪一层”,三层各自的生命周期完全不同:
text
规则内变量 @put:{k}/@get:{k} 只在当前一次规则求值链路里有效,求值结束就丢弃
典型用途:搜索→详情→目录同一次请求链路里传递中间值
书籍/章节变量 book.putVariable(k,v) 跟随这本书 / 这一章持久化,换源、重启 App 后仍在
chapter.putVariable(k,v) 典型用途:记录这本书当前解锁到第几章、这一章的下载状态
书源变量 source.put(k,v)/source.get(k) 跟随整个书源持久化,这个源下所有书共享
典型用途:当前选中的线路、登录后拿到的 token选错层级的常见症状:把线路信息存进规则内变量,结果“每次搜索都要重新选线路”;把只对 单本书有效的状态存进书源变量,结果“换一本书线路设置也跟着变了”。
来源配置边界
- 配置按 source identity 隔离;
- 字符串、字节和缓存数据分别设置配额;
- 导入、删除和更新时执行明确迁移;
- 用户可以查看和清除来源配置;
- HTML bridge 只能访问白名单配置。
不要让脚本读取应用全局 UserDefaults、Keychain 或其他来源数据。
