Compare commits

...

92 Commits

Author SHA1 Message Date
BTMuli
5eb8eb8e3b 🚀 v0.9.6 2026-02-25 23:52:29 +08:00
BTMuli
40ffb41f39 🍱 更新武器数据 2026-02-25 23:47:36 +08:00
BTMuli
fe8960687e 💄 调整样式 2026-02-25 23:33:48 +08:00
BTMuli
37882ab4bc 💄 调整垫数显示位置&样式 2026-02-25 22:44:19 +08:00
BTMuli
5d892684b8 🚸 完善输入校验 2026-02-25 22:40:36 +08:00
BTMuli
9b5f30ed22 💄 调整zIdx
close #218
2026-02-25 22:27:09 +08:00
BTMuli
564a0c173a 🚸 移除回正后的焦点处理 2026-02-25 22:21:03 +08:00
BTMuli
60a171f1ca 💄 调整样式 2026-02-25 22:20:19 +08:00
BTMuli
e0a74b0e58 🚸 处理最大化 2026-02-25 21:50:15 +08:00
BTMuli
d2ebcca18a 👽️ 更新内置YAE版本支持 2026-02-25 21:44:48 +08:00
BTMuli
a096bdcae4 🚸 调整取消回正后的窗口位置处理 2026-02-25 21:41:31 +08:00
BTMuli
e5b360b457 💄 回退菜单项合并 2026-02-25 21:21:58 +08:00
BTMuli
608c7834a1 🚸 垫数显示切换 2026-02-25 20:55:11 +08:00
BTMuli
79e935b869 📝 添加FOSSA标识 2026-02-25 19:31:44 +08:00
BTMuli
9de79611c3 🍱 更新成就触发条件 2026-02-25 19:26:08 +08:00
BTMuli
a4b4232671 👽️ migrate to vuetify4 2026-02-25 19:13:58 +08:00
BTMuli
f42e6d4c8a 💄 采用swiper 2026-02-25 10:25:41 +08:00
BTMuli
07c45ea9ca 💄 添加图标 2026-02-24 23:16:28 +08:00
BTMuli
6363d8d1a2 🍱 更新6.4版本资源 2026-02-24 22:55:33 +08:00
BTMuli
e3ffbb7ffb 🚸 版本更新后重置反馈按钮显示 2026-02-23 23:20:58 +08:00
BTMuli
8664d46938 ♻️ 重构脚本页面加载&执行逻辑 2026-02-22 18:36:15 +08:00
BTMuli
6e40784682 检测本体是否启动 2026-02-22 18:03:49 +08:00
BTMuli
eb4061748e 🔥 移除无用启动器登录扫码调用 2026-02-22 16:46:06 +08:00
BTMuli
a1fe5823da 💄 调整间距 2026-02-22 16:37:37 +08:00
BTMuli
765320168d ⬆️ 更新依赖 2026-02-22 16:20:35 +08:00
BTMuli
98ebeebf26 🚸 优化新存档创建逻辑 2026-02-22 16:06:54 +08:00
BTMuli
6293c633b4 💄 调整侧边栏,溢出滚动 2026-02-17 13:05:18 +08:00
BTMuli
0f607cea94 ✏️ 调整部分命名 2026-02-17 12:56:48 +08:00
BTMuli
2defb5740f 💄 合并侧边栏部分菜单项 2026-02-17 12:54:06 +08:00
BTMuli
f2fc45204f ♻️ 重构颂愿页面数据刷新逻辑 2026-02-17 12:43:58 +08:00
BTMuli
be48c32d0d ♻️ 重构祈愿页面数据刷新逻辑 2026-02-17 12:34:43 +08:00
BTMuli
c071538ecc 💄 修正参数名称 2026-02-16 21:58:11 +08:00
BTMuli
f89c008a5c ♻️ 重构剧诗页面数据刷新逻辑 2026-02-16 21:53:39 +08:00
BTMuli
512aae14c6 ♻️ 重构危战页面数据刷新逻辑 2026-02-16 21:39:36 +08:00
BTMuli
7ab35ea4b9 ♻️ 重构深渊页面UID加载&上传逻辑 2026-02-16 21:24:55 +08:00
BTMuli
09589995ad 💄 调整load大小 2026-02-16 21:00:54 +08:00
BTMuli
bf1711fa77 ♻️ 调整插入账号数据的SQL 2026-02-15 22:23:16 +08:00
BTMuli
ed0bc96f97 🚸 load stat 2026-02-15 22:06:00 +08:00
BTMuli
1b2b6ad490 ♻️ 重构角色列表页面数据刷新逻辑,当存在战绩时采用战绩数据对应信息 2026-02-15 21:50:37 +08:00
BTMuli
5617ba8637 ♻️ 重构战绩页面数据刷新逻辑 2026-02-14 21:47:43 +08:00
BTMuli
fcd6a6160a ✏️ 修正API路径 2026-02-14 20:53:30 +08:00
BTMuli
451b0b2762 👽️ 替换祈愿数据源为yatta 2026-02-14 20:50:34 +08:00
BTMuli
15a402d6ea 🚸 emoji加载重试 2026-02-13 21:24:05 +08:00
BTMuli
0494700d54 🐛 修复浮窗高度异常抖动导致的子回复加载异常 2026-02-13 21:08:44 +08:00
BTMuli
a748945628 🚚 调整source下的目录层级 2026-02-12 21:17:04 +08:00
BTMuli
435b1a81db 剧诗页新增绘想游迹&月谕圣牌浮窗 2026-02-12 21:04:22 +08:00
BTMuli
7f815d2452 🚸 优化分享图生成 2026-02-12 19:47:28 +08:00
BTMuli
b0e0593f65 🚸 显示 vod 占位 2026-02-12 18:40:29 +08:00
BTMuli
4d581243ef 🚸 替换帖子卡片版块图标数据源 2026-02-08 18:51:36 +08:00
BTMuli
8dd8635c04 🐛 修复特定条件下的渲染异常 2026-02-08 18:34:44 +08:00
BTMuli
b7d875b0d0 🚀 v0.9.5 2026-02-08 14:37:38 +08:00
BTMuli
1ff37b2918 展示垫数 2026-02-08 14:23:17 +08:00
BTMuli
f05a983caa 🎨 fmt 2026-02-08 14:02:02 +08:00
BTMuli
a472f2577c 检测数据 2026-02-08 13:54:48 +08:00
BTMuli
1f49ddea0c 🍱 精简颂愿元数据 2026-02-08 13:53:47 +08:00
BTMuli
ba6efd1529 🍱 更新元数据 2026-02-08 12:19:03 +08:00
BTMuli
75ba8faf9b ⬆️ 更新依赖 2026-02-07 21:32:04 +08:00
BTMuli
b1e2ace554 📝 更新备份文档 2026-02-07 21:29:43 +08:00
BTMuli
9be8c78deb 重构UIGF导入导出备份恢复,支持UIGF4.2 2026-02-07 21:24:35 +08:00
BTMuli
b5562a0fce 🏷️ 更新UIGF类型,适配UIGF4.2 2026-02-07 19:08:06 +08:00
BTMuli
0fecfb430c 🚸 处理额外奖励点击 2026-02-07 18:26:03 +08:00
BTMuli
bf70161000 ⬆️ 更新依赖 2026-02-07 18:23:55 +08:00
BTMuli
d23302706b 💄 调整签到组件额外奖励样式 2026-02-06 13:18:26 +08:00
BTMuli
7fa17b3b3b 💄 调整布局,统一比例 2/1 2026-02-01 18:56:25 +08:00
BTMuli
e8616332d4 ✏️ 修正重复后缀 2026-02-01 18:20:34 +08:00
BTMuli
54fae5e481 🌱 更新 uigf4.2 schema 2026-02-01 15:54:12 +08:00
BTMuli
6804b35043 🐛 修正星章计算逻辑 2026-02-01 15:52:02 +08:00
BTMuli
397f1b09a1 💄 修复集录祈愿卡池渲染异常 2026-01-31 23:50:01 +08:00
BTMuli
63e1c98e5d 🏷️ 修正类型 2026-01-31 00:45:30 +08:00
BTMuli
ae01e4e8ac 💄 处理特定武器没有副属性时的渲染 2026-01-31 00:44:43 +08:00
BTMuli
46efb8fa7d 💄 调整战绩数据总览样式,更为紧凑 2026-01-31 00:36:15 +08:00
BTMuli
3098581235 🚸 自定义表情加载失败点击重新加载 2026-01-29 23:27:52 +08:00
BTMuli
faa6cfe8ea 🐛 将ck更新逻辑移至首页,修正更新sql语句 2026-01-29 22:55:14 +08:00
BTMuli
e70c658608 🏷️ 冗余兼容 2026-01-29 16:49:43 +08:00
BTMuli
daeabec99f 🚸 修复图片质量调整特定条件下浮窗异常关闭
close #207
2026-01-29 16:15:04 +08:00
BTMuli
d1f4432a92 🚸 深渊上传成功后自动刷新胡桃云用户信息 2026-01-29 15:54:47 +08:00
BTMuli
48fd6cb1b0 🚸 优化当前选中系列区分度 2026-01-29 14:56:00 +08:00
BTMuli
a78921a9b1 🐛 保存用户信息采用参数绑定,避免特殊数据导致的sql拼接异常 2026-01-29 14:40:57 +08:00
BTMuli
855ddace77 🚸 暴露系列完成百分比,1位小数 2026-01-23 23:11:18 +08:00
BTMuli
c9e548ff57 👽️ 由于Gt4配置变更,修复极验未正确触发 2026-01-22 23:00:47 +08:00
BTMuli
77c333383c 🚀 v0.9.4 2026-01-22 01:46:17 +08:00
BTMuli
f62e13a26d 🚸 调整hint 2026-01-22 01:39:01 +08:00
BTMuli
f959b69ea3 🚸 优化处理 2026-01-22 01:37:33 +08:00
BTMuli
68c2d1cfcb 🐛 修复msi版本dll调用异常,捕获dll异常 2026-01-22 01:21:51 +08:00
BTMuli
3cb0c423a5 🥅 尝试修复 forceRefresh not in 2026-01-21 19:04:21 +08:00
BTMuli
a52d573094 🔥 移除 gro-iframe 组件 2026-01-21 18:24:25 +08:00
BTMuli
19b2615d6a 🎨 调整检测逻辑,存在时不复制 2026-01-21 18:20:59 +08:00
BTMuli
88bdccec43 🏷️ 修正描述 2026-01-21 18:15:20 +08:00
BTMuli
a7bb92df0c 🚀 v0.9.3 2026-01-19 12:47:36 +08:00
BTMuli
1eb36bd606 🐛 修复调用参数异常 2026-01-19 12:40:14 +08:00
BTMuli
f7eb293ae5 🚸 load stat 2026-01-18 22:21:09 +08:00
BTMuli
0159ee38f3 ⬆️ 更新依赖 2026-01-18 22:19:52 +08:00
383 changed files with 8017 additions and 6449 deletions

View File

@@ -1,3 +1,3 @@
VITE_SENTRY_RELEASE=TeyvatGuide@0.9.2
VITE_COMMIT_HASH=40cf7edb
VITE_BUILD_TIME=1768742260
VITE_SENTRY_RELEASE=TeyvatGuide@0.9.6
VITE_COMMIT_HASH=40ffb41f
VITE_BUILD_TIME=1772034641

View File

@@ -45,12 +45,6 @@ jobs:
chmod 644 ~/.ssh/known_hosts
- name: Test SSH connection
run: ssh -T git@github.com || true
- name: Load env.production
id: env
if: matrix.settings.target == 'windows'
run: |
$VITE_SENTRY_RELEASE = Get-Content .env.production | Where-Object { $_ -match '^VITE_SENTRY_RELEASE=' } | ForEach-Object { ($_ -split '=')[1] }
"VITE_SENTRY_RELEASE=$VITE_SENTRY_RELEASE" >> $env:GITHUB_OUTPUT
- name: Rust setup
uses: dtolnay/rust-toolchain@stable
- name: Rust cache
@@ -100,14 +94,3 @@ jobs:
</a>
releaseDraft: true
prerelease: false
- name: Upload Sentry Pdb
if: matrix.settings.target == 'windows'
run: |
echo "Uploading release: $SENTRY_RELEASE"
sentry-cli releases new "$SENTRY_RELEASE"
sentry-cli upload-dif src-tauri/target/release/TeyvatGuide.pdb
sentry-cli releases finalize "$SENTRY_RELEASE"
env:
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
SENTRY_RELEASE: ${{ steps.env.outputs.VITE_SENTRY_RELEASE }}

View File

@@ -2,14 +2,65 @@
Author: 目棃
Description: CHANGELOG
Date: 2025-09-09
Update: 2026-01-18
Update: 2026-02-25
---
> 本文档 [`Frontmatter`](https://github.com/BTMuli/MuCli#Frontmatter) 由 [MuCli](https://github.com/BTMuli/Mucli) 自动生成于 `2025-09-09 14:30:56`
>
> 更新于 `2026-01-18 20:35:21`
> 更新于 `2026-02-25 23:50:25`
## [0.9.2](https://github.com/BTMuli/TeyvatGuide/releases/v0.9.2) (2025-01-18)
## [0.9.6](https://github.com/BTMuli/TeyvatGuide/releases/v0.9.6) (2026-02-26)
- 🍱 更新6.4版本资源
- ✨ 剧诗页新增绘想游迹&月谕圣牌浮窗
- 👽️ 升级 UI 框架至 Vuetify4
- ♻️ 重构多页面用户数据加载&刷新逻辑,大幅提升多账号用户体验
- 🐛 修复浮窗高度异常抖动导致的子回复加载异常
- 🐛 修复特定条件下的渲染异常
- 🐛 完善分享设置输入校验,剔除非正整数输入
- 🚸 版本更新后重置反馈按钮显示
- 🚸 调用内置YAE时检测游戏本体是否启动
- 🚸 更换祈愿字典数据源由Hakushi变更为Yatta
- 🚸 替换帖子卡片版块图标数据源,修复可能出现的版块图标渲染异常
- 🚸 优化回正相关处理
- 💄 调整侧边栏,溢出滚动
- 💄 帖子详情显示 `vod` 组件占位
- 💄 当存在战绩数据时角色列表用户信息采用对应数据进行渲染
- 💄 首页限时祈愿组件卡池角色超过4个时采用Swiper进行轮播
- 💄 调整 Snackbar 层级 [`#218`](https://github.com/BTMuli/TeyvatGuide/issues/218)
## [0.9.5](https://github.com/BTMuli/TeyvatGuide/releases/v0.9.5) (2026-02-08)
- ✨ 重构UIGF导入导出备份恢复支持UIGF4.2
- 🍱 精简颂愿元数据
- 🐛 由于Gt4配置变更修复验证码登录时极验未正确触发
- 🐛 保存用户信息采用参数绑定修复特殊数据导致的sql拼接异常
- 🐛 将ck更新逻辑移至首页修复ck自动更新异常
- 🐛 修正剧诗概况星章计算逻辑
- 💄 调整战绩数据总览样式,更为紧凑
- 💄 处理特定武器没有副属性时的渲染
- 💄 修复集录祈愿卡池渲染异常
- 💄 调整剧诗详情布局,统一比例 2/1
- 💄 调整签到组件额外奖励样式,处理额外奖励点击
- 🚸 暴露成就系列完成百分比1位小数
- 🚸 优化当前选中成就系列区分度
- 🚸 深渊上传成功后自动刷新胡桃云用户信息
- 🚸 修复图片质量调整特定条件下浮窗异常关闭 [`#207`](https://github.com/BTMuli/TeyvatGuide/issues/207)
- 🚸 自定义表情加载失败点击重新加载
- 🚸 优化祈愿垫数展示UI
## [0.9.4](https://github.com/BTMuli/TeyvatGuide/releases/v0.9.4) (2026-01-22)
- 🐛 修复`msi`版本导入`dll`调用路径异常,捕获`dll`路径异常错误
- 🎨 调整商店版本`dll`检测逻辑,存在时不复制
- 🚸 调整导入相关提示文本
## [0.9.3](https://github.com/BTMuli/TeyvatGuide/releases/v0.9.3) (2026-01-19)
- 🐛 修复导入调用参数异常
- 🚸 设置页胡桃云用户信息刷新防抖处理
## [0.9.2](https://github.com/BTMuli/TeyvatGuide/releases/v0.9.2) (2026-01-18)
- 🍱 增加旅行者衣装相关资源
- ✨ WIKI新增 `{LINK#xx}{/LINK}` 数据支持 [`#156`](https://github.com/BTMuli/TeyvatGuide/issues/156)
@@ -29,7 +80,7 @@ Update: 2026-01-18
- ♻️ 祈愿页面导入功能合并,仅显示一个导入按钮
- 💄 深渊支持单楼层分享,剧诗支持单幕分享
## [0.9.1](https://github.com/BTMuli/TeyvatGuide/releases/v0.9.1) (2025-01-14)
## [0.9.1](https://github.com/BTMuli/TeyvatGuide/releases/v0.9.1) (2026-01-14)
- 🍱 元数据更新6.3版本资源
- 🍱 元数据:精简部分材料来源描述

View File

@@ -2,18 +2,18 @@
Author: 目棃
Description: 说明文档
Date: 2023-03-05
Update: 2026-01-14
Update: 2026-02-25
---
> 本文档 [`Frontmatter`](https://github.com/BTMuli/MuCli#Frontmatter) 由 [MuCli](https://github.com/BTMuli/Mucli) 自动生成于 `2023-03-05 14:41:55`
>
> 更新于 `2026-01-14 00:09:05`
> 更新于 `2026-02-25 19:28:26`
[![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/BTMuli/TeyvatGuide)
[![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/BTMuli/TeyvatGuide) [![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2FBTMuli%2FTeyvatGuide.svg?type=shield)](https://app.fossa.com/projects/git%2Bgithub.com%2FBTMuli%2FTeyvatGuide?ref=badge_shield)
[![](https://img.shields.io/github/last-commit/BTMuli/TeyvatGuide)](https://github.com/BTMuli/TeyvatGuide/commits) [![](https://img.shields.io/github/commits-since/BTMuli/TeyvatGuide/latest?include_prereleases)](https://github.com/BTMuli/TeyvatGuide/commits)
[![](https://img.shields.io/badge/UIAF-v1.1-orange?style=for-the-badge)](./docs/standards/UIAF.md) [![](https://img.shields.io/badge/UIGF-v3.0-red?style=for-the-badge)](./docs/standards/UIGF3.md) [![](https://img.shields.io/badge/UIGF-v4.1-red?style=for-the-badge)](./docs/standards/UIGF.md)
[![](https://img.shields.io/badge/UIAF-v1.1-orange?style=for-the-badge)](./docs/standards/UIAF.md) [![](https://img.shields.io/badge/UIGF-v3.0-red?style=for-the-badge)](./docs/standards/UIGF3.md) [![](https://img.shields.io/badge/UIGF-v4.2-red?style=for-the-badge)](./docs/standards/UIGF.md)
[![](https://img.shields.io/github/license/BTMuli/TeyvatGuide?style=for-the-badge)](./LICENSE)
@@ -54,7 +54,7 @@ Game Tool for Genshin Impact player, supports Windows and macOS.
- [x] 米游社各分区帖子获取(支持通过 ID 获取)
- [x] 米游社话题帖子获取(通过话题点击跳转)
- [x] 成就管理UIAF v1.1),支持 [`Yae`](https://github.com/HolographicHat/Yae) 导入 & 自动导入内置Yae
- [x] 祈愿管理UIGF v3.0UIGF v4.1
- [x] 祈愿管理UIGF v3.0UIGF v4.2
- [x] 背包物品获取内置YAE
- [x] 留影叙佳期画片查看
- [x] 帖子收藏
@@ -139,6 +139,8 @@ Game Tool for Genshin Impact player, supports Windows and macOS.
隐私政策:[Privacy](https://app.btmuli.ink/docs/TeyvatGuide/privacy.html)
[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2FBTMuli%2FTeyvatGuide.svg?type=large)](https://app.fossa.com/projects/git%2Bgithub.com%2FBTMuli%2FTeyvatGuide?ref=badge_large)
## 鸣谢 / Thanks
本项目在开发过程中参考了诸多相关开源项目,特此鸣谢。

View File

@@ -2,18 +2,18 @@
Author: 目棃
Description: UIGF v4 Backup
Date: 2024-11-11
Update: 2024-11-11
Update: 2026-02-07
---
> 本文档 [`Frontmatter`](https://github.com/BTMuli/MuCli#Frontmatter) 由 [MuCli](https://github.com/BTMuli/Mucli) 自动生成于 `2024-11-11 11:57:27`
>
> 更新于 `2024-11-11 11:57:27`
> 更新于 `2026-02-07 21:29:27`
> 本文档为 [UIGF v4.0](https://github.com/UIGF-org/UIGF-org.github.io/blob/main/docs/zh/standards/uigf.md) 的备份,仅供参考。
> 本文档为 [UIGF v4.2](https://github.com/UIGF-org/UIGF-org.github.io/blob/main/docs/zh/standards/uigf.md) 的备份,仅供参考。
# 统一可交换抽卡记录标准 v4.0
# 统一可交换抽卡记录标准 v4.2
> Uniformed Interchangeable GachaLog Format standard (UIGF) v4.0 <Badge text="Current" type="message" />
> Uniformed Interchangeable GachaLog Format standard (UIGF) v4.2 <Badge text="Current" type="message" />
::: warning 中断性更新警告
`UIGF v4.0 及更高版本` 对于 `UIGF v3.0 及更低版本``SRGF v1.0` **不具备向下兼容性**。UIGF/SRGF 合作项目如需适配,需重新认证。
@@ -21,10 +21,14 @@ Update: 2024-11-11
## 更新记录
| 版本 | 说明 | 兼容 |
| ------ | --------------------------------- | --------------- |
| `v3.0` | 低版本的更新日志请查看历史版本 | v3.0 及更低版本 |
| `v4.0` | 合并 SRGF新增绝区零抽卡格式支持 | v4.0 |
| 版本 | 说明 | 兼容 |
| ------ | ------------------------------------------------ | --------------- |
| `v3.0` | 低版本的更新日志请查看历史版本 | v3.0 及更低版本 |
| `v4.0` | 合并 SRGF新增绝区零抽卡格式支持 | v4.0 |
| `v4.1` | 新增对星穹铁道 v3.4 版所引入的新的卡池类型的支持 | v4.1/v4.0\* |
| `v4.2` | 新增对于千星奇域的支持 | v4.1 |
- 对于无需处理星穹铁道的应用v4.1 与 v4.0 兼容。
## 前言
@@ -77,11 +81,11 @@ Update: 2024-11-11
},
"export_app": {
"type": "string",
"description": "导出档案的 App 名称"
"description": "导出档案的应用名称"
},
"export_app_version": {
"type": "string",
"description": "导出档案的 App 版本"
"description": "导出档案的应用版本"
},
"version": {
"type": "string",
@@ -157,7 +161,8 @@ Update: 2024-11-11
},
"time": {
"type": "string",
"description": "抽取物品时对应时区timezone下的当地时间"
"description": "抽取物品时对应时区timezone下的当地时间",
"pattern": "^\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2}$"
},
"name": {
"type": "string",
@@ -173,7 +178,10 @@ Update: 2024-11-11
},
"id": {
"type": "string",
"description": "记录内部 ID米哈游 API 返回"
"description": "记录内部 ID米哈游 API 返回",
"maxLength": 19,
"minLength": 1,
"pattern": "^[0-9]+$"
}
},
"required": ["uigf_gacha_type", "gacha_type", "item_id", "time", "id"]
@@ -231,12 +239,12 @@ Update: 2024-11-11
"properties": {
"gacha_id": {
"type": "string",
"description": "卡池 Id"
"description": "卡池 ID"
},
"gacha_type": {
"type": "string",
"description": "卡池类型",
"enum": ["1", "2", "11", "12"]
"enum": ["1", "2", "11", "12", "21", "22"]
},
"item_id": {
"type": "string",
@@ -248,7 +256,8 @@ Update: 2024-11-11
},
"time": {
"type": "string",
"description": "抽取物品时对应时区timezone下的当地时间"
"description": "抽取物品时对应时区timezone下的当地时间",
"pattern": "^\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2}$"
},
"name": {
"type": "string",
@@ -264,7 +273,10 @@ Update: 2024-11-11
},
"id": {
"type": "string",
"description": "记录内部 ID米哈游 API 返回"
"description": "记录内部 ID米哈游 API 返回",
"maxLength": 19,
"minLength": 1,
"pattern": "^[0-9]+$"
}
},
"required": ["gacha_type", "gacha_id", "time", "item_id", "id"]
@@ -322,7 +334,7 @@ Update: 2024-11-11
"properties": {
"gacha_id": {
"type": "string",
"description": "卡池 Id"
"description": "卡池 ID"
},
"gacha_type": {
"type": "string",
@@ -339,7 +351,8 @@ Update: 2024-11-11
},
"time": {
"type": "string",
"description": "抽取物品时对应时区timezone下的当地时间"
"description": "抽取物品时对应时区timezone下的当地时间",
"pattern": "^\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2}$"
},
"name": {
"type": "string",
@@ -355,7 +368,10 @@ Update: 2024-11-11
},
"id": {
"type": "string",
"description": "记录内部 ID米哈游 API 返回"
"description": "记录内部 ID米哈游 API 返回",
"maxLength": 19,
"minLength": 1,
"pattern": "^[0-9]+$"
}
},
"required": ["gacha_type", "item_id", "time", "id"]
@@ -364,6 +380,109 @@ Update: 2024-11-11
},
"required": ["uid", "timezone", "list"]
}
},
"hk4e_ugc": {
"type": "array",
"properties": {
"uid": {
"oneOf": [
{
"type": "string"
},
{
"type": "integer"
}
],
"description": "UID"
},
"timezone": {
"type": "integer",
"description": "时区偏移,由米哈游 API 返回,若与服务器时区不同请注意 list 中 time 的转换"
},
"lang": {
"type": "string",
"description": "语言代码",
"enum": [
"de-de",
"en-us",
"es-es",
"fr-fr",
"id-id",
"it-it",
"ja-jp",
"ko-kr",
"pt-pt",
"ru-ru",
"th-th",
"tr-tr",
"vi-vn",
"zh-cn",
"zh-tw"
]
},
"list": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "记录内部 ID米哈游 API 返回",
"maxLength": 19,
"minLength": 1,
"pattern": "^[0-9]+$"
},
"schedule_id": {
"type": "string",
"description": "卡池排期 ID米哈游 API 返回",
"minLength": 1,
"pattern": "^[0-9]+$"
},
"item_type": {
"type": "string",
"description": "物品类型,米哈游 API 返回"
},
"item_id": {
"type": "string",
"description": "物品 ID米哈游 API 返回",
"minLength": 1,
"pattern": "^[0-9]+$"
},
"item_name": {
"type": "string",
"description": "物品名称,米哈游 API 返回"
},
"rank_type": {
"type": "string",
"description": "物品等级,米哈游 API 返回",
"minLength": 1,
"pattern": "^[0-9]+$"
},
"time": {
"type": "string",
"description": "抽取物品时对应时区timezone下的当地时间",
"pattern": "^\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2}$"
},
"op_gacha_type": {
"type": "string",
"description": "卡池类型,米哈游 API 返回",
"enum": ["1000", "2000", "20011", "20012", "20021", "20022"]
}
},
"required": [
"id",
"schedule_id",
"item_type",
"item_id",
"item_name",
"rank_type",
"time",
"op_gacha_type"
]
}
}
},
"required": ["uid", "timezone", "list"]
}
},
"required": ["info"]

View File

@@ -1,7 +1,8 @@
/**
* ESLint配置文件
* @since 2025-05-29
* ESLint 配置文件
* @since Beta v0.9.3
*/
import { defineConfig } from "eslint/config";
import eslintPluginJsonc from "eslint-plugin-jsonc";
import eslintPluginJs from "@eslint/js";
import eslintPluginTs from "typescript-eslint";
@@ -11,14 +12,14 @@ import eslintConfigJson from "./eslint/jsonEslint.js";
import eslintConfigVue from "./eslint/vueEslint.js";
import eslintConfigYml from "./eslint/ymlEslint.js";
export default [
export default defineConfig([
eslintPluginJs.configs.recommended,
...eslintPluginJsonc.configs["flat/recommended-with-jsonc"],
...eslintPluginTs.configs.recommended,
...eslintPluginVue.configs["flat/essential"],
...eslintConfigJson,
...eslintConfigVue,
eslintConfigYml,
...eslintConfigYml,
{
ignores: [
"dist",
@@ -31,4 +32,4 @@ export default [
".github",
],
},
];
]);

View File

@@ -1,10 +1,10 @@
/**
* JSON 文件的 ESLint 配置
* @since Beta v0.9.1
* @since Beta v0.9.6
*/
import pluginJsonc from "eslint-plugin-jsonc";
import parserJsonc from "jsonc-eslint-parser";
import * as parserJsonc from "jsonc-eslint-parser";
const pkgJsonConfig = {
files: ["package.json"],

View File

@@ -1,24 +1,25 @@
/**
* @file eslint/ymlEslint.js
* @description YAML相关的ESLint配置
* @since Beta v0.7.7
* YAML 文件的 ESLint 配置
* @since Beta v0.9.3
*/
import pluginYml from "eslint-plugin-yml";
import parserYml from "yaml-eslint-parser";
import * as ymlParser from "yaml-eslint-parser";
const eslintConfigYml = {
files: ["**/*.yml", "**/*.yaml"],
plugins: { yml: pluginYml },
languageOptions: {
parser: parserYml,
parserOptions: { defaultYAMLVersion: "1.2", extraFileExtensions: [".yaml", ".yml"] },
const eslintConfigYml = [
{
files: ["**/*.yml", "**/*.yaml"],
plugins: { yml: pluginYml },
languageOptions: {
parser: ymlParser,
parserOptions: { defaultYAMLVersion: "1.2", extraFileExtensions: [".yaml", ".yml"] },
},
rules: {
"yml/indent": ["error", 2],
"yml/key-spacing": ["error"],
"yml/quotes": ["error", { prefer: "double", avoidEscape: true }],
"yml/sort-keys": ["error", "asc"],
},
},
rules: {
"yml/indent": ["error", 2],
"yml/key-spacing": ["error"],
"yml/quotes": ["error", { prefer: "double", avoidEscape: true }],
"yml/sort-keys": ["error", "asc"],
},
};
];
export default eslintConfigYml;

View File

@@ -1,9 +1,9 @@
{
"name": "teyvatguide",
"version": "0.9.2",
"version": "0.9.6",
"description": "Game Tool for GenshinImpact player",
"private": true,
"packageManager": "pnpm@10.28.0",
"packageManager": "pnpm@10.30.1",
"type": "module",
"scripts": {
"build": "tsx scripts/auto-build.ts",
@@ -72,22 +72,23 @@
"dependencies": {
"@date-fns/tz": "^1.4.1",
"@mdi/font": "7.4.47",
"@sentry/vite-plugin": "^4.6.2",
"@sentry/vue": "^10.34.0",
"@sentry/core": "^10.40.0",
"@sentry/vite-plugin": "^5.1.0",
"@sentry/vue": "^10.40.0",
"@skipperndt/plugin-machine-uid": "^0.1.3",
"@tauri-apps/api": "^2.9.1",
"@tauri-apps/api": "^2.10.1",
"@tauri-apps/plugin-cli": "^2.4.1",
"@tauri-apps/plugin-deep-link": "^2.4.6",
"@tauri-apps/plugin-deep-link": "^2.4.7",
"@tauri-apps/plugin-dialog": "^2.6.0",
"@tauri-apps/plugin-fs": "^2.4.5",
"@tauri-apps/plugin-http": "^2.5.6",
"@tauri-apps/plugin-http": "^2.5.7",
"@tauri-apps/plugin-log": "^2.8.0",
"@tauri-apps/plugin-notification": "^2.3.3",
"@tauri-apps/plugin-opener": "^2.5.3",
"@tauri-apps/plugin-os": "^2.3.2",
"@tauri-apps/plugin-process": "^2.3.1",
"@tauri-apps/plugin-sql": "^2.3.1",
"ajv": "^8.17.1",
"@tauri-apps/plugin-sql": "^2.3.2",
"ajv": "^8.18.0",
"artplayer": "^5.3.0",
"colord": "^2.9.3",
"date-fns": "^4.1.0",
@@ -98,67 +99,66 @@
"json-bigint": "^1.0.0",
"pinia": "^3.0.4",
"pinia-plugin-persistedstate": "^4.7.1",
"qrcode.vue": "^3.6.0",
"qrcode.vue": "^3.8.0",
"rsa-oaep-encryption": "^1.1.0",
"sass-embedded": "^1.97.2",
"swiper": "^12.0.3",
"sass-embedded": "^1.97.3",
"swiper": "^12.1.2",
"uuid": "^13.0.0",
"vue": "^3.5.26",
"vue": "^3.5.29",
"vue-echarts": "^8.0.1",
"vue-json-pretty": "^2.6.0",
"vue-router": "^4.6.4",
"vuetify": "^3.11.6",
"vue-router": "^5.0.3",
"vuetify": "^4.0.0",
"wcag-color": "^1.1.1"
},
"devDependencies": {
"@btmuli/stylelint-plugin-color": "^0.1.0",
"@eslint/eslintrc": "^3.3.3",
"@eslint/js": "^9.39.2",
"@eslint/eslintrc": "^3.3.4",
"@eslint/js": "9.39.2",
"@microsoft/tsdoc": "^0.16.0",
"@sentry/core": "^10.34.0",
"@tauri-apps/cli": "2.9.6",
"@tauri-apps/cli": "2.10.0",
"@types/fs-extra": "^11.0.4",
"@types/js-md5": "^0.8.0",
"@types/json-bigint": "^1.0.4",
"@types/node": "^25.0.9",
"@typescript-eslint/parser": "^8.53.0",
"@typescript/native-preview": "7.0.0-dev.20260116.1",
"@vitejs/plugin-vue": "^6.0.3",
"@types/node": "^25.3.0",
"@typescript-eslint/parser": "^8.56.1",
"@typescript/native-preview": "7.0.0-dev.20260222.1",
"@vitejs/plugin-vue": "^6.0.4",
"app-root-path": "^3.1.0",
"concurrently": "^9.2.1",
"envfile": "^7.1.0",
"eslint": "^9.39.2",
"eslint": "9.39.2",
"eslint-plugin-import": "^2.32.0",
"eslint-plugin-jsonc": "^2.21.0",
"eslint-plugin-jsonc": "^3.1.0",
"eslint-plugin-prettier": "^5.5.5",
"eslint-plugin-tsdoc": "^0.5.0",
"eslint-plugin-vue": "^10.7.0",
"eslint-plugin-yml": "^1.19.1",
"eslint-plugin-tsdoc": "^0.5.1",
"eslint-plugin-vue": "^10.8.0",
"eslint-plugin-yml": "^3.3.0",
"fs-extra": "^11.3.3",
"globals": "^17.0.0",
"globals": "^17.3.0",
"husky": "^9.1.7",
"jsonc-eslint-parser": "^2.4.2",
"jsonc-eslint-parser": "^3.1.0",
"lint-staged": "^16.2.7",
"oxlint": "^1.39.0",
"postcss-preset-env": "^11.1.1",
"prettier": "3.8.0",
"stylelint": "^17.0.0",
"oxlint": "^1.50.0",
"postcss-preset-env": "^11.2.0",
"prettier": "3.8.1",
"stylelint": "^17.3.0",
"stylelint-config-idiomatic-order": "^10.0.0",
"stylelint-config-standard-scss": "^17.0.0",
"stylelint-config-standard-vue": "^1.0.0",
"stylelint-declaration-block-no-ignored-properties": "^2.8.0",
"stylelint-high-performance-animation": "^1.11.0",
"stylelint-declaration-block-no-ignored-properties": "^3.0.0",
"stylelint-high-performance-animation": "^2.0.0",
"stylelint-order": "^7.0.1",
"stylelint-prettier": "^5.0.3",
"stylelint-scss": "^7.0.0",
"tsx": "^4.21.0",
"typescript": "^5.9.3",
"typescript-eslint": "^8.53.0",
"typescript-eslint": "^8.56.1",
"vite": "npm:rolldown-vite@^7.3.1",
"vite-plugin-vue-devtools": "^8.0.5",
"vite-plugin-vuetify": "^2.1.2",
"vue-eslint-parser": "^10.2.0",
"vue-tsc": "^3.2.2",
"yaml-eslint-parser": "^1.3.2"
"vite-plugin-vue-devtools": "^8.0.6",
"vite-plugin-vuetify": "^2.1.3",
"vue-eslint-parser": "^10.4.0",
"vue-tsc": "^3.2.5",
"yaml-eslint-parser": "^2.0.0"
}
}

3774
pnpm-lock.yaml generated

File diff suppressed because it is too large Load Diff

View File

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 16 KiB

View File

Before

Width:  |  Height:  |  Size: 896 B

After

Width:  |  Height:  |  Size: 896 B

View File

Before

Width:  |  Height:  |  Size: 556 B

After

Width:  |  Height:  |  Size: 556 B

View File

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 638 B

View File

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

View File

Before

Width:  |  Height:  |  Size: 6.2 KiB

After

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

Before

Width:  |  Height:  |  Size: 6.4 KiB

After

Width:  |  Height:  |  Size: 6.4 KiB

View File

Before

Width:  |  Height:  |  Size: 7.6 KiB

After

Width:  |  Height:  |  Size: 7.6 KiB

View File

Before

Width:  |  Height:  |  Size: 776 B

After

Width:  |  Height:  |  Size: 776 B

View File

Before

Width:  |  Height:  |  Size: 5.0 KiB

After

Width:  |  Height:  |  Size: 5.0 KiB

View File

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 2.9 KiB

View File

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 34 KiB

View File

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 32 KiB

View File

Before

Width:  |  Height:  |  Size: 3.1 KiB

After

Width:  |  Height:  |  Size: 3.1 KiB

View File

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 3.2 KiB

View File

Before

Width:  |  Height:  |  Size: 6.7 KiB

After

Width:  |  Height:  |  Size: 6.7 KiB

View File

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 26 KiB

View File

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

View File

Before

Width:  |  Height:  |  Size: 704 B

After

Width:  |  Height:  |  Size: 704 B

View File

Before

Width:  |  Height:  |  Size: 1010 B

After

Width:  |  Height:  |  Size: 1010 B

View File

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

Before

Width:  |  Height:  |  Size: 5.5 KiB

After

Width:  |  Height:  |  Size: 5.5 KiB

View File

Before

Width:  |  Height:  |  Size: 786 B

After

Width:  |  Height:  |  Size: 786 B

View File

Before

Width:  |  Height:  |  Size: 2.6 KiB

After

Width:  |  Height:  |  Size: 2.6 KiB

View File

Before

Width:  |  Height:  |  Size: 43 KiB

After

Width:  |  Height:  |  Size: 43 KiB

View File

Before

Width:  |  Height:  |  Size: 114 B

After

Width:  |  Height:  |  Size: 114 B

View File

Before

Width:  |  Height:  |  Size: 476 B

After

Width:  |  Height:  |  Size: 476 B

View File

Before

Width:  |  Height:  |  Size: 3.7 KiB

After

Width:  |  Height:  |  Size: 3.7 KiB

View File

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 26 KiB

View File

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Some files were not shown because too many files have changed in this diff Show More