XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet

XFEEDToolBox

【WinUI】XFE精英危险工具箱

公开
关注 0 Fork 0 Star 0
UTF-8

独立重建站点与行情缓存

该工具只读官方 Spansh 站点包,在全新 SQLite 文件中批量导入;不调用游戏,不修改 Journal 或 settings,不合并或改写旧报价的采集时间。

dotnet build research/MarketCacheRebuild/MarketCacheRebuild.csproj -c Release -o artifacts/market-redownload/importer
artifacts/market-redownload/importer/MarketCacheRebuild.exe import path/to/galaxy_stations.json.gz artifacts/market-redownload/new.db artifacts/market-redownload/import.json

官方完整站点包是 https://downloads.spansh.co.uk/galaxy_stations.json.gz。下载须保留 Content-Length、ETag、Last-Modified、实际字节数与 SHA256;断点续传不能混合不同 ETag 的文件。import 会完整读取 gzip/JSON 数组,再创建查询索引,验证 SQLite 全完整性、来源及快照关联,并在关闭后重新打开验证。失败文件只留作诊断,不会改变当前缓存。报告每约 5 秒更新一次,status=verified 才表示完成。

reference 以现有 SpanshImporter 导入相同小型源文件,可用于对照解析结果。批量导入使用同一 MarketParser、CommodityCatalog 和 JSON 辅助函数;JSON 空白压缩以减少缓存体积。来源的报价时间不会变成导入时间。

关闭使用行情缓存的工具箱后,才能发布独立完成的新库:

artifacts/market-redownload/importer/MarketCacheRebuild.exe activate-move artifacts/market-redownload/new.db path/to/markets.db artifacts/market-redownload/activation.json artifacts/market-redownload/import.json

activate-move 仅允许把当前 workspace 的 artifacts/ 下已验证文件移入同卷工具箱 LocalAppData generation,并在操作前输出绝对路径。必须提供已完成完整 integrity/来源关联检查及独立重开的 status=verified 收据;源数据库、原始完整包字节数及报告健康条数必须一致。源不能仍被其他连接打开,WAL 必须为空且 checkpoint 成功,文件修改时间不能晚于收据。移动前后整库 SHA256、长度和修改时间必须相同,重新打开后条数与最大行情时间也必须与收据一致,再保存绑定实际文件身份的启动凭据,最后原子切换 markets.db.active。这避免对仅作同卷改名的大库重复运行两次完整 integrity_check。activate 保留复制模式,适用于有足够空间的隔离演练。

reopen <db> <first-full-integrity.json> <reopen.json> 可在完整第一遍检查已经通过后,使用同版 SQLite 的 ReadOnly、512MiB cache 与已确认支持的 mmap,独立运行 quick_check/实际计数/最大时间及长度和mtime一致性校验。不得把中止旧进程伪称成功;旧进程中止事实与第一遍结果须分别保存,新校验进程正常退出并生成自己的收据。seal <activated.db> <activation.json> <startup.json> 为已完成 SHA 一致激活的当前代补启动凭据,并记录实际初始化和重复统计耗时。

原始库、旧 generation 和个人数据保留;活动记录只指向同目录 markets.db.recovered-*.db。磁盘余量足够时可通过 MarketRepository.SaveVerifiedBackupAsync 保存新活动库的健康备份;空间不足时继续保留旧验证备份,不能宣称旧备份已覆盖新全量。正式客户端还需验证真实数据和默认时效。切换报告记录之前与之后的文件名,便于可逆恢复。