Skip to content
This repository has been archived by the owner on Nov 17, 2024. It is now read-only.

Gacha // Keep the server gacha record timestamp intact. #180

Merged
merged 4 commits into from
Apr 30, 2024

Conversation

ShikiSuen
Copy link
Collaborator

经 UIGF 群内有人实测发现:

  1. 抽卡记录在抓取的时候显示的时间的所属时区永远都是伺服器所在的时区。
  2. 天空岛、世界树、亚洲、港澳台伺服器的时区都是 UTC+8,美服 UTC-5,欧服 UTC+1。

穹披助手之前没有对抓取到的 Date String 原样备案的机制,
所以目前已知一个不可逆的资料错误(截至 v1.3.2 Beta 6 Build 417):
只要是之前用穹披助手抽取过的资料、且抓取时的设备时区与伺服器时区不一致的话,
那么抓到的每一笔抽卡资料都有时区偏移误差。

穹披助手 v1.3.2 RC1 Build 423 修复了时区 Bug。
然而,为了根除今后产生这种误差的任何可能性,这个 PR 将带来下述改变:

  1. CoreData 的 GachaItemMO 新增 Nullable 段位「timeRawValue」,用来存取原始 Date String。
  2. 网页抓取抽卡记录资料时,将获得的 Date String 原样塞到「timeRawValue」内。
  3. 汇入 SRGFv1 资料时,将获得的 SRGFv1.Entry().time 字串值也原样对接到 GachaItemMO 的「timeRawValue」上。
  4. 汇出 SRGFv1 资料时,优先从「timeRawValue」获取资料值、对接到 SRGFv1.Entry().time 上。

该 PR 的审核点:

请务必重点检查任何「将 HBMihoyoAPI.GachaItem 转储成 GachaItemMO 且塞到 CoreData 资料库内」的场合、
看看有没有我忘记将 timeRawValue 存档的场合。

@ShikiSuen ShikiSuen merged commit 3d482d5 into dev Apr 30, 2024
2 of 3 checks passed
@ShikiSuen ShikiSuen deleted the shiki/gacha-TimeZone branch April 30, 2024 08:44
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants