🎨 代码格式化

This commit is contained in:
BTMuli
2023-06-25 16:15:15 +08:00
parent 7982649bbc
commit 7567bba147
174 changed files with 29970 additions and 29840 deletions

View File

@@ -6,7 +6,7 @@ Update: 2023-06-18
---
> 本文档 [`Front-matter`](https://github.com/BTMuli/Mucli#FrontMatter) 由 [MuCli](https://github.com/BTMuli/Mucli) 自动生成于 `2023-03-30 15:39:49`
>
>
> 更新于 `2023-06-18 15:02:31`
# CHANGELOG v0.1.x
@@ -113,7 +113,6 @@ FullCommits: [`v0.1.2 ~ v0.1.3`](https://github.com/BTMuli/Tauri.Genshin/compare
- 咨讯:支持多种游戏咨讯查看
- 米游社解析:添加 `mention` 类型解析
### Fix
- 首页:近期活动、限时祈愿结束处理

View File

@@ -6,7 +6,7 @@ Update: 2023-03-07
---
> 本文档 [`Front-matter`](https://github.com/BTMuli/Mucli#FrontMatter) 由 [MuCli](https://github.com/BTMuli/Mucli) 自动生成于`2023-03-07 14:17:11`
>
>
> 更新于 `2023-03-07 14:17:11`
> 本文档为 [`UIAF`](https://github.com/DGP-Studio/Snap.Genshin.Docs/blob/main/docs/development/UIAF.md) 的备份。
@@ -14,18 +14,19 @@ Update: 2023-03-07
# 统一可交换成就标准 v1.1
> Uniformed Interchangeable Achievement Format standard (UIAF)
## 前言
由于原神的第三方成就识别、导出、记录软件越来越多,在有了 UIGF 的经验后,
我们
* [babalae/genshin achievement toy](https://github.com/babalae/genshin-achievement-toy)
* [DGP Studio/Snap.Genshin](https://github.com/DGP-Studio/Snap.Genshin)
* [HolographicHat/genshin achievement export](https://github.com/HolographicHat/genshin-achievement-export)
* [YuehaiTeam/cocogoat](https://github.com/YuehaiTeam/cocogoat)
- [babalae/genshin achievement toy](https://github.com/babalae/genshin-achievement-toy)
- [DGP Studio/Snap.Genshin](https://github.com/DGP-Studio/Snap.Genshin)
- [HolographicHat/genshin achievement export](https://github.com/HolographicHat/genshin-achievement-export)
- [YuehaiTeam/cocogoat](https://github.com/YuehaiTeam/cocogoat)
(上述名称以字典顺序排序,不代表其他任何意义)
在此一起制定了此项标准旨在加强各个原神相关的App间的数据可交换性。
在此一起,制定了此项标准,旨在加强各个原神相关的 App 间的数据可交换性。
## 注意事项
@@ -61,10 +62,7 @@ Update: 2023-03-07
"description": "导出UNIX时间戳"
}
},
"required": [
"export_app",
"uiaf_version"
],
"required": ["export_app", "uiaf_version"],
"description": "包含导出方定义的基本信息"
},
"list": {
@@ -83,12 +81,7 @@ Update: 2023-03-07
"status": {
"type": "number",
"description": "完成状态",
"enum": [
0,
1,
2,
3
],
"enum": [0, 1, 2, 3],
"enumDesc": "ACHIEVEMENT_INVALID = 0; ACHIEVEMENT_UNFINISHED = 1; ACHIEVEMENT_FINISHED = 2;ACHIEVEMENT_POINT_TAKEN = 3;"
},
"timestamp": {
@@ -96,21 +89,13 @@ Update: 2023-03-07
"description": "完成的时间"
}
},
"required": [
"id",
"current",
"status",
"timestamp"
],
"required": ["id", "current", "status", "timestamp"],
"description": "表示一个成就"
},
"description": "包含完成或未完成的成就"
}
},
"required": [
"info",
"list"
]
"required": ["info", "list"]
}
```
@@ -118,46 +103,48 @@ Update: 2023-03-07
可以包含我们认可的以下字段
|字段名|值|说明|
|-|-|-|
|`export_timestamp`|导出UNIX时间戳||
|`export_app_version`|导出此份记录的App版本号||
|`uiaf_version`|所应用的 `UIAF` 的版本,包含此字段以防 `UIAF` 出现中断性变更时App无法处理||
| 字段名 | 值 | 说明 |
| -------------------- | --------------------------------------------------------------------------- | ---- |
| `export_timestamp` | 导出 UNIX 时间戳 | |
| `export_app_version` | 导出此份记录的 App 版本号 | |
| `uiaf_version` | 所应用的 `UIAF` 的版本,包含此字段以防 `UIAF` 出现中断性变更时App 无法处理 | |
#### `uiaf_version`
合法值
|值|说明|向下兼容的最低版本|
|-|-|-|
|`v1.0`|首个正式版本|v1.0|
|`v1.1`|`achievement` 中引入了 `status` 字段,指示成就的完成情况|v1.1|
| 值 | 说明 | 向下兼容的最低版本 |
| ------ | ----------------------------------------------------------- | ------------------ |
| `v1.0` | 首个正式版本 | v1.0 |
| `v1.1` | `achievement` 中引入了 `status` 字段,指示成就的完成情况 | v1.1 |
#### `export_app`
未实现导出支持的以 `-` 代替
|导出 App|`export_app` 的值|
|-|-|
|Empty|Empty|
| 导出 App | `export_app` 的值 |
| -------- | ----------------- |
| Empty | Empty |
### `achievement`
#### `id`
原神的成就在游戏内部带有Id对于扫描类导出软件在取得成就的外在表现形式呈现文本便可对应到内部的Id
原神的成就在游戏内部带有 Id对于扫描类导出软件在取得成就的外在表现形式呈现文本便可对应到内部的 Id
> 导入/导出软件应自行负责Id与呈现文本间的转换
> 导入/导出软件应自行负责 Id 与呈现文本间的转换
> 成就的信息可以从 [Dimbreath/GenshinData](https://github.com/Dimbreath/GenshinData) 库中获取
#### `timestamp`
* 对于识别成功的值直接将时间转换为对应的UNIX 时间戳(秒)
- 对于识别成功的值,直接将时间转换为对应的 UNIX 时间戳(秒)
* 对于识别失败的值,直接将时间设置为 `9999-12-31 23:59:59`253402271999
- 对于识别失败的值,直接将时间设置为 `9999-12-31 23:59:59`253402271999
#### `current`
* 对于识别成功的值,如 30/40 `current` 的值应设置为30
- 对于识别成功的值,如 30/40 `current` 的值应设置为 30
> 因为始终可以从原神的数据中找到目标达成值
* 对于识别失败的值,请将该字段的值设为 `0`
- 对于识别失败的值,请将该字段的值设为 `0`

View File

@@ -6,7 +6,7 @@ Update: 2023-04-07
---
> 本文档 [`Front-matter`](https://github.com/BTMuli/Mucli#FrontMatter) 由 [MuCli](https://github.com/BTMuli/Mucli) 自动生成于`2023-04-07 19:51:40`
>
>
> 更新于 `2023-04-07 19:51:40`
> 本文档为 [`UIGF`](https://github.com/UIGF-org/UIGF-org.github.io/blob/main/docs/zh/standards/UIGF-pre-release.md) 的备份。
@@ -17,24 +17,26 @@ Update: 2023-04-07
## 更新记录
|版本|说明|兼容|
|-|-|-|
|`v2.0`| 首个正式版本 | v2.0 |
|`v2.1`| 简化了部分语言表述,与 v2.0在数据格式上完全一致 | v2.1 and lower |
|`v2.2`| 新增 `info.export_timestamp` 填充 UNIX 时间戳 | v2.2 and lower |
|`v2.3`| 扩充至非中文语境,使用 Json Schema 表述 | v2.3 and lower |
| 版本 | 说明 | 兼容 |
| ------ | ------------------------------------------------ | -------------- |
| `v2.0` | 首个正式版本 | v2.0 |
| `v2.1` | 简化了部分语言表述,与 v2.0 在数据格式上完全一致 | v2.1 and lower |
| `v2.2` | 新增 `info.export_timestamp` 填充 UNIX 时间戳 | v2.2 and lower |
| `v2.3` | 扩充至非中文语境,使用 Json Schema 表述 | v2.3 and lower |
## Id
原神的祈愿记录物品内包含了一项较为特殊的字段: `id` ,该值在 1.3版本后加入
原神的祈愿记录物品内包含了一项较为特殊的字段: `id` ,该值在 1.3 版本后加入
所以**先前查询出的物品**若无特殊兼容性修改则不会包含相应的 `id`
App 导出 UIGF 时
* 需要确保每个物品的 `id` 的有效性。
* 从最后一个自带有效 `id` 的物品开始,向前(相对于时间)依次递减 `id` 的值,每次递减的值应保持为 `1`
- 需要确保每个物品的 `id` 的有效性。
- 从最后一个自带有效 `id` 的物品开始,向前(相对于时间)依次递减 `id` 的值,每次递减的值应保持为 `1`
导入 UIGF 到 App 时
* App不应假设所有的 `gacha_item` 都有有效的 `id`
* App应具有处理 `id` 字段为 `null`或 `` 空字符串的能力
- App 不应假设所有的 `gacha_item` 都有有效的 `id`
- App 应具有处理 `id` 字段为 `null`或 `` 空字符串的能力
## GachaType
@@ -44,19 +46,19 @@ App 导出 UIGF 时
### 映射关系
|`uigf_gacha_type`|`gacha_type`|
|-|-|
|`100`|`100`|
|`200`|`200`|
|`301`|`301` or `400`|
|`302`|`302`|
| `uigf_gacha_type` | `gacha_type` |
| ----------------- | -------------- |
| `100` | `100` |
| `200` | `200` |
| `301` | `301` or `400` |
| `302` | `302` |
## Json 格式
> Uniformed Interchangeable GachaLog Format standard of Json (UIGF.J)
Json 格式 由于 与从官方接口获取到的格式一致
更便于各App的导入与导出我们也在此做出规范
该格式应仅用于各App间的数据互通
> Json 格式 由于 与从官方接口获取到的格式一致
> 更便于各 App 的导入与导出,我们也在此做出规范
> 该格式应仅用于各 App 间的数据互通
### 导出的格式
@@ -107,11 +109,7 @@ Json 格式 由于 与从官方接口获取到的格式一致
}
},
"title": "Infomation",
"required": [
"uid",
"lang",
"uigf_version"
],
"required": ["uid", "lang", "uigf_version"],
"description": "包含导出方定义的基本信息"
},
"list": {
@@ -166,13 +164,7 @@ Json 格式 由于 与从官方接口获取到的格式一致
"description": "向接口查询时需要的 gacha_type"
}
},
"required": [
"gacha_type",
"name",
"id",
"uigf_gacha_type",
"time"
],
"required": ["gacha_type", "name", "id", "uigf_gacha_type", "time"],
"title": "Gacha Item",
"description": "祈愿物品"
},
@@ -180,10 +172,7 @@ Json 格式 由于 与从官方接口获取到的格式一致
"description": "物品列表"
}
},
"required": [
"info",
"list"
],
"required": ["info", "list"],
"description": "UIGF 根对象"
}
```
@@ -194,95 +183,95 @@ Json 格式 由于 与从官方接口获取到的格式一致
### 单元格的格式
* 在填充单元格内的数据时,应统一转换到 `String` 字符串类型后填入
- 在填充单元格内的数据时,应统一转换到 `String` 字符串类型后填入
### 表名及内容
|表名|内容|类型|是否必要|
|-|-|-|-|
|统计分析|统计分析内容等|任意|否|
|角色活动祈愿|`gacha_type` : `301 or 400` 的祈愿数据|祈愿表|否,但是应该导出|
|武器活动祈愿|`gacha_type` : `302` 的祈愿数据|祈愿表|否,但是应该导出|
|常驻祈愿|`gacha_type` : `200` 的祈愿数据|祈愿表|否,但是应该导出|
|新手祈愿|`gacha_type` : `100` 的祈愿数据|祈愿表|否,但是应该导出|
|原始数据|全部祈愿数据|数据表|**详见下方原始数据表结构说明**|
| 表名 | 内容 | 类型 | 是否必要 |
| ------------ | -------------------------------------- | ------ | ------------------------------ |
| 统计分析 | 统计分析内容等 | 任意 | 否 |
| 角色活动祈愿 | `gacha_type` : `301 or 400` 的祈愿数据 | 祈愿表 | 否,但是应该导出 |
| 武器活动祈愿 | `gacha_type` : `302` 的祈愿数据 | 祈愿表 | 否,但是应该导出 |
| 常驻祈愿 | `gacha_type` : `200` 的祈愿数据 | 祈愿表 | 否,但是应该导出 |
| 新手祈愿 | `gacha_type` : `100` 的祈愿数据 | 祈愿表 | 否,但是应该导出 |
| 原始数据 | 全部祈愿数据 | 数据表 | **详见下方原始数据表结构说明** |
* 表的顺序可以是任意的
* 可以隐藏部分表,防止用户随意篡改数据
* Sheet 的名称应与游戏内祈愿记录页面显示的名称保持一致
- 表的顺序可以是任意的
- 可以隐藏部分表,防止用户随意篡改数据
- Sheet 的名称应与游戏内祈愿记录页面显示的名称保持一致
> App间应依据 `原始数据表` 的内容,来进行数据互通
> App 间应依据 `原始数据表` 的内容,来进行数据互通
### 祈愿表结构
本节内容是为了规范兼容分析类App
本节内容是为了规范兼容分析类 App
* 表头对应的内容填充**顺序需要严格按照下方说明**排布
* **共享保底的卡池**按祈愿类型 (`gacha_type`) 区分
* 此类 `Sheet` 存在的目的,是为了便于用户观看与祈愿分析工具的分析
- 表头对应的内容填充**顺序需要严格按照下方说明**排布
- **共享保底的卡池**按祈愿类型 (`gacha_type`) 区分
- 此类 `Sheet` 存在的目的,是为了便于用户观看与祈愿分析工具的分析
|表头|内容|是否必要|
|-|-|-|
|时间|`yyyy-MM-dd HH:mm:ss` 格式的 `time` 时间|是|
|名称|`name`物品名称|是|
|物品类型|`item_type`|是|
|星级|`rank_type`|是|
|祈愿类型|`gacha_type` 的转义名称|是,尽管部分工具不会分析此项|
|...|...|否|
| 表头 | 内容 | 是否必要 |
| -------- | ---------------------------------------- | ---------------------------- |
| 时间 | `yyyy-MM-dd HH:mm:ss` 格式的 `time` 时间 | 是 |
| 名称 | `name`物品名称 | 是 |
| 物品类型 | `item_type` | 是 |
| 星级 | `rank_type` | 是 |
| 祈愿类型 | `gacha_type` 的转义名称 | 是,尽管部分工具不会分析此项 |
| ... | ... | 否 |
> 如果你认为有必要的话,可以额外增加其他表头,但请确保表头的前几列为上表规范的内容
> 表内的数据通常按祈愿Id升序或降序排列分析App不应假设表内的顺序为特定的升序与降序
> 表内的数据通常按祈愿 Id 升序或降序排列,分析 App 不应假设表内的顺序为特定的升序与降序
#### `gacha_type` 转义名称
|gacha_type|名称|
|-|-|
|100|新手祈愿|
|200|常驻祈愿|
|301|角色活动祈愿|
|400|角色活动祈愿-2|
|302|武器活动祈愿|
| gacha_type | 名称 |
| ---------- | -------------- |
| 100 | 新手祈愿 |
| 200 | 常驻祈愿 |
| 301 | 角色活动祈愿 |
| 400 | 角色活动祈愿-2 |
| 302 | 武器活动祈愿 |
#### 示例
|时间|名称|类别|星级|祈愿类型|...|
|-|-|-|-|-|-|
|2021-02-17 18:45:09|以理服人|武器|3|角色活动祈愿-2|...|
|...|...|...|...|...|...|
| 时间 | 名称 | 类别 | 星级 | 祈愿类型 | ... |
| ------------------- | -------- | ---- | ---- | -------------- | --- |
| 2021-02-17 18:45:09 | 以理服人 | 武器 | 3 | 角色活动祈愿-2 | ... |
| ... | ... | ... | ... | ... | ... |
### 原始数据表结构
导出时
* App 在导出时应尽可能询问用户是否应包含原始数据表
* 一旦在工作簿内包含了名为 `原始数据` 的表,即表示支持本格式
* 该表内的内容应严格按照本格式所述填充
* **表头的顺序需严格按照下表设置**。
* 现有的字段采用**字典顺序**递增排序,后续新增的字段依添加的顺序排在后侧。
* 若无特殊需求我们建议导出所有json 数据内包含的字段
- App 在导出时应尽可能询问用户是否应包含原始数据表
- 一旦在工作簿内包含了名为 `原始数据` 的表,即表示支持本格式
- 该表内的内容应严格按照本格式所述填充
- **表头的顺序需严格按照下表设置**。
- 现有的字段采用**字典顺序**递增排序,后续新增的字段依添加的顺序排在后侧。
- 若无特殊需求,我们建议导出所有 json 数据内包含的字段
导入时
* 强烈建议您编写不依赖于列的顺序位置便可实现导入的程序,以达到最大化的兼容。
* 如果省略了其中某些非必要字段的值,请保持表头存在,对应的列则空置。
- 强烈建议您编写不依赖于列的顺序位置便可实现导入的程序,以达到最大化的兼容。
- 如果省略了其中某些非必要字段的值,请保持表头存在,对应的列则空置。
|表头|是否必要|
|-|-|
|`count`|否,但是建议保留,不排除后续会有`count`不为1的情况|
|`gacha_type`|是|
|`id`|且大部分App按此字段排序数据|
|`item_id`|否,目前官方已经弃用了此字段|
|`item_type`|是|
|`lang`|否,但建议保留,以便国际化|
|`name`|是|
|`rank_type`|否,但建议保留,以便分析|
|`time`|否,但建议保留,以便分析|
|`uid`|否,但建议将选择权交予用户,保留以便分析|
|`uigf_gacha_type`|是|
| 表头 | 是否必要 |
| ----------------- | ---------------------------------------------------- |
| `count` | 否,但是建议保留,不排除后续会有`count`不为 1 的情况 |
| `gacha_type` | 是 |
| `id` | 是,且大部分 App 按此字段排序数据 |
| `item_id` | 否,目前官方已经弃用了此字段 |
| `item_type` | 是 |
| `lang` | 否,但建议保留,以便国际化 |
| `name` | 是 |
| `rank_type` | 否,但建议保留,以便分析 |
| `time` | 否,但建议保留,以便分析 |
| `uid` | 否,但建议将选择权交予用户,保留以便分析 |
| `uigf_gacha_type` | 是 |
#### 示例
|count|gacha_type|id|item_id|item_type|lang|name|rank_type|time|uid|uigf_gacha_type|
|-|-|-|-|-|-|-|-|-|-|-|
|1|301|1613556360008291100||武器|zh-cn|以理服人|3|2021-02-17 18:45:09|123456789|301|
|...|...|...|...|...|...|...|...|...|...|...|
| count | gacha_type | id | item_id | item_type | lang | name | rank_type | time | uid | uigf_gacha_type |
| ----- | ---------- | ------------------- | ------- | --------- | ----- | -------- | --------- | ------------------- | --------- | --------------- |
| 1 | 301 | 1613556360008291100 | | 武器 | zh-cn | 以理服人 | 3 | 2021-02-17 18:45:09 | 123456789 | 301 |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |

View File

@@ -6,7 +6,7 @@ Update: 2023-05-19
---
> 本文档 [`Front-matter`](https://github.com/BTMuli/Mucli#FrontMatter) 由 [MuCli](https://github.com/BTMuli/Mucli) 自动生成于`2023-03-10 22:05:44`
>
>
> 更新于 `2023-05-19 23:02:49`
## 说明
@@ -16,7 +16,7 @@ Update: 2023-05-19
相关仓库:[TGAssistant](https://github.com/BTMuli/TGAssistant)。
> 如下 JSON 均经过处理,并未直接作为项目 JSON 数据使用。
>
>
> 如下图像均经过 Sharp 处理转换为 webp 格式,并未直接作为项目图像资源使用。
## 侧边栏图标
@@ -48,7 +48,7 @@ Update: 2023-05-19
### 图像资源
- [36691244|米游社](https://www.miyoushe.com/ys/article/36691244)
- [成就系统|原神WIKI](https://wiki.biligame.com/ys/%E6%88%90%E5%B0%B1%E7%B3%BB%E7%BB%9F)
- [成就系统|原神 WIKI](https://wiki.biligame.com/ys/%E6%88%90%E5%B0%B1%E7%B3%BB%E7%BB%9F)
- [HoneyHunterWorld](https://genshin.honeyhunterworld.com/?lang=EN)
### 格式说明
@@ -57,8 +57,8 @@ Update: 2023-05-19
关于图像资源格式,涉及到的图像类型及格式如下:
- 原石图标:`source/material/原石.webp`256x25632位深度
- 成就系列图标:`source/achievementSeries/${series_id}.webp`256x25632位深度
- 原石图标:`source/material/原石.webp`256x25632 位深度
- 成就系列图标:`source/achievementSeries/${series_id}.webp`256x25632 位深度
- 成就系列对应名片图标:见 [名片相关](#名片相关)
## 名片相关
@@ -70,7 +70,7 @@ Update: 2023-05-19
参考:
- [HoneyHunterWorld](https://genshin.honeyhunterworld.com/?lang=CHS)
- [原神WIKI|名片](https://wiki.biligame.com/ys/%E5%90%8D%E7%89%87)
- [原神 WIKI|名片](https://wiki.biligame.com/ys/%E5%90%8D%E7%89%87)
### 图像资源
@@ -78,13 +78,13 @@ Update: 2023-05-19
### 格式说明
- 名片图标:`source/nameCard/icon/${card.name}.webp`250x16532位深度
- 名片bg`source/nameCard/bg/${card.name}.webp`880x14032位深度
- 名片profile`source/nameCard/profile/${card.name}.webp`840x40032位深度
- 名片图标:`source/nameCard/icon/${card.name}.webp`250x16532 位深度
- 名片 bg`source/nameCard/bg/${card.name}.webp`880x14032 位深度
- 名片 profile`source/nameCard/profile/${card.name}.webp`840x40032 位深度
### 格式说明
- 卡牌图标:`source/gcg/card/${cardType}/${cardName}.webp`420x72032位深度
- 卡牌图标:`source/gcg/card/${cardType}/${cardName}.webp`420x72032 位深度
## 素材日历相关
@@ -101,9 +101,9 @@ Update: 2023-05-19
> 角色&武器资源见 [Wiki](#wiki)。
- 素材图标:`source/calendar/material/${sourceName}.webp`128x12832位深度
- 星级图标:`icon/star/${star}.webp`133x2932位深度
- 地区图标: `icon/nation/${nation}.webp`256x25632位深度
- 素材图标:`source/calendar/material/${sourceName}.webp`128x12832 位深度
- 星级图标:`icon/star/${star}.webp`133x2932 位深度
- 地区图标: `icon/nation/${nation}.webp`256x25632 位深度
## Wiki
@@ -131,9 +131,8 @@ Update: 2023-05-19
>
> iconType 为 `normal` 或 `special`,目前只有 `normal`。
- 角色图鉴:`WIKI/character/icon/${avatarId}.webp`256x25632位深度
- 武器图鉴:`WIKI/weapon/icon/${weaponId}.webp`256x25632位深度
- 角色图鉴:`WIKI/character/icon/${avatarId}.webp`256x25632 位深度
- 武器图鉴:`WIKI/weapon/icon/${weaponId}.webp`256x25632 位深度
- 卡牌图鉴:
- 卡牌背景:`WIKI/GCG/${iconType}/${cardName}.webp`420x72032位深度
- 卡牌图标:`WIKI/GCG/bg.${bgType}.webp`420x72032位深度
- 卡牌背景:`WIKI/GCG/${iconType}/${cardName}.webp`420x72032 位深度
- 卡牌图标:`WIKI/GCG/bg.${bgType}.webp`420x72032 位深度