Compare commits

..

416 Commits

Author SHA1 Message Date
BTMuli
d44be02f9b 🚸 优化交互触发 2026-03-25 21:01:39 +08:00
BTMuli
7df84a2cb8 增强图片浮窗功能,添加缩放和拖拽支持 2026-03-25 20:48:04 +08:00
BTMuli
789b388a6f 🏷️ 采用枚举类 2026-03-25 18:37:37 +08:00
BTMuli
47029ce802 🚨 更新类型定义以解决外部库导入问题 2026-03-25 18:24:47 +08:00
BTMuli
70bafa9ca2 🚨 添加 Echarts 模块声明以解决导入问题 2026-03-25 18:19:18 +08:00
BTMuli
110a6687f4 🚨 调整 swiper & vuetify 样式文件导入报错 2026-03-25 18:09:44 +08:00
BTMuli
cc71ab05fb 🏷️ 修正类型定义 2026-03-25 18:01:46 +08:00
BTMuli
0c41ce4725 📝 添加 TeyvatGuide 项目 SKILL 文档,包含技术栈、代码风格及数据库操作规范 2026-03-25 18:01:12 +08:00
BTMuli
09211c8b7f 📝 更新枚举定义文档,简化结构并添加命名规范 2026-03-25 17:54:45 +08:00
BTMuli
87782187d7 📝 添加 SQLite 数据库操作规则文档 2026-03-25 17:49:50 +08:00
BTMuli
120abe7a17 📝 添加枚举类型定义文档 2026-03-25 17:48:32 +08:00
BTMuli
fe6d0b423d 👽️ 完善类型,改用常量枚举,适配typescript 6 2026-03-25 17:43:20 +08:00
BTMuli
31f13caa1e 🧑‍💻 添加 TSDoc 注释规范文档 2026-03-25 17:20:22 +08:00
BTMuli
1944f2c55b 🏷️ 优化 Ajv 导入方式 2026-03-25 17:06:46 +08:00
BTMuli
24ff9b8018 🧑‍💻 添加 Git 提交规则文档 2026-03-25 17:05:19 +08:00
BTMuli
188dda4a1b 🔧 优化 hk4e_ugc 属性结构 2026-03-25 17:01:10 +08:00
BTMuli
e01c6cf474 🔧 更新 AppData 类型定义,简化插入数据逻辑 2026-03-25 15:17:28 +08:00
BTMuli
99a87cc2ac ⬆️ 更新依赖,修复 1038c9cd 打包异常 2026-03-25 12:56:59 +08:00
BTMuli
2807ce48a6 🚸 统一UIGF导出交互,导出前选择导出路径 2026-03-22 00:40:41 +08:00
BTMuli
f9b64c5c6a 🚸 管理员模式下侧边栏启动仍然为启动游戏 2026-03-22 00:38:51 +08:00
BTMuli
1038c9cdb7 ⬆️ 更新依赖 2026-03-22 00:38:04 +08:00
BTMuli
87f9df80a5 💫 添加交互效果 2026-03-17 21:39:03 +08:00
BTMuli
d8f4a4c2bf 🚸 调整参数,处理点击事件 2026-03-14 13:25:34 +08:00
BTMuli
3537751d65 添加用户个人页面跳转功能 2026-03-14 12:23:31 +08:00
BTMuli
66f77da754 🐛 修复角色生日判断逻辑,优化返回结果 2026-03-14 00:14:32 +08:00
BTMuli
7da01c117d 🩹 补充首页mini参数&组件参数处理 2026-03-13 20:27:48 +08:00
BTMuli
722b5598fe 🐛 调整snackbar层级,修复兑换码浮窗分享异常 2026-03-13 20:20:49 +08:00
BTMuli
ba962ae4c6 ⬆️ 更新依赖,使用vite8 2026-03-13 20:19:40 +08:00
BTMuli
f121644bc4 🚀 0.9.8 2026-03-13 13:50:02 +08:00
BTMuli
1d810117b0 🚨 修复Sentry报错
TypeError
Cannot read properties of null (reading 'startsWith')
2026-03-13 11:25:25 +08:00
BTMuli
be7c294f7e 🚸 区分分区/版块点击跳转页面
分区→对应分区资讯页
版块→帖子分区+版块页
2026-03-12 23:30:30 +08:00
BTMuli
0e1bcdaffe 🍱 更新下半卡池数据 2026-03-12 23:28:43 +08:00
BTMuli
51d47c7ca6 跳转外部合集 2026-03-11 17:32:40 +08:00
BTMuli
28f05a757d 🚸 导入数据前进行提示 2026-03-11 17:22:52 +08:00
BTMuli
c2db42d9f7 ✏️ 修正最深抵达描述计算逻辑 2026-03-11 17:16:58 +08:00
BTMuli
49855ea118 🚸 调整动态头像缓存策略 2026-03-11 12:21:45 +08:00
BTMuli
f5da601620 🚨 完善部分处理 2026-03-11 11:44:17 +08:00
BTMuli
9f707db9f7 🚨 尝试修复Sentry报错
Cannot read properties of undefined (reading 'upvote_type')
2026-03-11 11:26:55 +08:00
BTMuli
d30a70d4aa 🚸 允许仅刷新Cookie而不刷新游戏账号 2026-03-11 11:18:08 +08:00
BTMuli
036b3c47a7 🚸 允许搜索清空并进行对应处理 2026-03-11 01:07:00 +08:00
BTMuli
77c513b516 💄 微调顶部样式 2026-03-11 00:52:31 +08:00
BTMuli
69f40cd495 🚸 处理搜索交互 2026-03-11 00:42:43 +08:00
BTMuli
9c79e0b822 ⬆️ 更新依赖 2026-03-10 13:39:49 +08:00
BTMuli
c56b05b4f1 检测版本更新
close #231
2026-03-10 12:46:46 +08:00
BTMuli
b5c7c6e8b1 🚸 调整动态头像缓存策略 2026-03-10 10:57:15 +08:00
BTMuli
480f1739f5 🐛 修复采用ck登录后本地ck未同步更新 2026-03-05 00:58:37 +08:00
BTMuli
b0a480d65b 🎨 颂愿采用同样处理
close#222,#230
2026-03-05 00:46:31 +08:00
BTMuli
d7aee50cc5 🎨 精简代码 2026-03-05 00:32:47 +08:00
BTMuli
fe176ad418 ️ 提高插入性能,调整删除后处理
#222 #230
2026-03-05 00:22:24 +08:00
BTMuli
5c2556a0c3 💄 load stat 2026-03-04 22:04:18 +08:00
BTMuli
320e53b567 💄 load stat 2026-03-04 19:15:11 +08:00
BTMuli
21698dc728 🔥 删除无用代码 2026-03-03 21:36:02 +08:00
BTMuli
9b4b6fb7ab 新增满好感筛选 2026-03-03 19:18:34 +08:00
BTMuli
8c8f8e3a2d 🚸 三状态 2026-03-03 19:07:08 +08:00
BTMuli
5e6e7ee047 展示筛选&排序 2026-03-03 19:06:17 +08:00
BTMuli
2872d0f983 💄 微调UI 2026-03-03 18:05:10 +08:00
BTMuli
67e242308e 🚸 调整缓存策略 2026-03-03 18:02:40 +08:00
BTMuli
a2df7b2d22 💄 尘歌壶UI迭代
#221
2026-03-03 17:59:12 +08:00
BTMuli
7b8be1adf9 🔒️ 二次确认
close #228
2026-03-03 16:49:06 +08:00
BTMuli
9c73290033 个人主页跳转 2026-03-03 16:24:25 +08:00
BTMuli
6aaf9ea7d9 🔧 设置最小尺寸 2026-03-01 00:07:14 +08:00
BTMuli
ada60d0d3b 💄 调节文本位置&大小
#221
2026-03-01 00:00:38 +08:00
BTMuli
bbe329d677 💄 优化浅色模式下的对比度
#221
2026-02-28 23:53:16 +08:00
BTMuli
47ed849f70 🚸 筛选增加70级判断
close #229
2026-02-28 22:55:12 +08:00
BTMuli
0d65ba7168 💫 添加平滑过渡,调整参数 2026-02-28 19:03:42 +08:00
BTMuli
da2285a8d0 💄 调整小组件显示 2026-02-28 18:49:50 +08:00
BTMuli
572180234f 💄 调整浮窗信息显示逻辑,优化自定义表情label显示判断 2026-02-28 18:10:20 +08:00
Copilot
1497533f14 完善非回正模式下的窗口位置&大小处理 (#226)
* ️大幅提升UIGF导入速度 (#225)

* Initial plan

* perf: optimize gacha import with batch transactions and reduced UI delays

- Wrap DB inserts in transactions (batches of 500) for mergeUIGF/mergeUIGF4
- Pre-transform all data before batch insert loop
- Pass timeout: 0 to showLoading.update in progress callbacks
- Remove 1500ms snackbar delay in cleanGachaRecords
- Reduce per-item loading update delay in refreshGachaPool

Co-authored-by: Mikachu2333 <63829496+Mikachu2333@users.noreply.github.com>

* fix: increment progress counter per item instead of per batch for accurate progress display

Co-authored-by: Mikachu2333 <63829496+Mikachu2333@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Mikachu2333 <63829496+Mikachu2333@users.noreply.github.com>

* Initial plan

* feat: calculate window size based on resolution/scaling with baseline check and centering

- resizeWindow: add baseline check (1920x1080@150%), clamp to screen bounds
- setWindowPos: ensure window fits on screen and always center
- App.vue: use setWindowPos instead of manual positioning, center on deep link show
- tray.rs: center window when showing from system tray

Co-authored-by: Mikachu2333 <63829496+Mikachu2333@users.noreply.github.com>

* fix: address code review - add zero guard and use setWindowPos consistently

Co-authored-by: Mikachu2333 <63829496+Mikachu2333@users.noreply.github.com>

* refactor: address review feedback - move baseline to setWindowPos, revert tray.rs

- tray.rs: reverted, center() removed as redundant
- TGWindow.ts: baseline check moved to setWindowPos, resizeWindow restored as fallback
- App.vue: needResize=false → setWindowPos, else → center; deep link reverted;
  handleResizeListen true path unchanged, setWindowPos moved inside else

Co-authored-by: Mikachu2333 <63829496+Mikachu2333@users.noreply.github.com>

* refactor: use needResize judgment condition (targetZoom/scaleFactor/textScale) in setWindowPos

Replace the simple curSize > screen.size overflow check with the same
condition used by resizeWindow(): targetZoom < 1, which considers
scaleFactor and textScale. Falls back to resizeWindow() when below
baseline or when targetZoom < 1.

Co-authored-by: Mikachu2333 <63829496+Mikachu2333@users.noreply.github.com>

* 🚸 调整尺寸判断

* 🚸 处理溢出

* 🚸 优化处理

* 🚸 移除冗余scale处理

* 🎨 CodeStyle

---------

Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Mikachu2333 <63829496+Mikachu2333@users.noreply.github.com>
Co-authored-by: BTMuli <bt-muli@outlook.com>
2026-02-28 17:58:19 +08:00
子寻
3b6970d8c3 🚸实用脚本支持一键执行多账号 (#227)
* 💄 标识当前登录账号

*  实用脚本支持一键执行全部账号

* fix: 去除非必要的代码,样式调整

* 😭 图标多好看啊

* 🎨 remove empty line

---------

Co-authored-by: BTMuli <bt-muli@outlook.com>
2026-02-28 13:19:18 +08:00
BTMuli
8fc90d7144 🚸 loading显示区域禁用右键
#221
2026-02-28 11:51:34 +08:00
BTMuli
c716cf79ed 🔒️ 调整用户数据目录选取&旧目录删除 2026-02-28 11:35:53 +08:00
BTMuli
9057e613c7 🚸 调整位置判断 2026-02-28 00:31:31 +08:00
BTMuli
a929e2cbe8 💄 调整最大宽度 2026-02-28 00:14:02 +08:00
Copilot
2d321aad9c ️大幅提升UIGF导入速度 (#225)
* Initial plan

* perf: optimize gacha import with batch transactions and reduced UI delays

- Wrap DB inserts in transactions (batches of 500) for mergeUIGF/mergeUIGF4
- Pre-transform all data before batch insert loop
- Pass timeout: 0 to showLoading.update in progress callbacks
- Remove 1500ms snackbar delay in cleanGachaRecords
- Reduce per-item loading update delay in refreshGachaPool

Co-authored-by: Mikachu2333 <63829496+Mikachu2333@users.noreply.github.com>

* fix: increment progress counter per item instead of per batch for accurate progress display

Co-authored-by: Mikachu2333 <63829496+Mikachu2333@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Mikachu2333 <63829496+Mikachu2333@users.noreply.github.com>
2026-02-27 23:52:15 +08:00
BTMuli
43de734884 💄 样式适配 2026-02-27 23:41:55 +08:00
BTMuli
b3997815e1 🌱 功能预留
#223
2026-02-27 22:48:53 +08:00
BTMuli
52cbfb9f6b 💄 微调位置 2026-02-27 22:41:13 +08:00
BTMuli
6d2d2b18d1 💄 调整展开后的侧边栏宽度 2026-02-27 22:34:57 +08:00
BTMuli
f7df9ec804 🚸 UI适配,修复 .v-application 颜色样式导致分享图生成异常 2026-02-27 22:34:32 +08:00
BTMuli
3f2ea530fe 🛂 添加SetPosition权限 2026-02-27 22:29:47 +08:00
BTMuli
240356da0a 🚸 调整部分图片缓存策略 2026-02-27 22:22:27 +08:00
BTMuli
57de268f06 💄 处理溢出 2026-02-27 22:08:33 +08:00
BTMuli
3c238a0f0b 💄 移除间距处理 2026-02-27 21:57:24 +08:00
BTMuli
d6dbddaf87 🚸 处理标题可能为空的情况 2026-02-27 11:46:11 +08:00
BTMuli
2a84e25f4a 🐛 处理vuetify4的color-mix导致的分享异常 2026-02-26 23:49:59 +08:00
BTMuli
d1a4b6e97d ️ 采用useTemplateRef获取dom 2026-02-26 23:38:10 +08:00
BTMuli
f4a9069ea4 💄 调整样式 2026-02-26 19:20:39 +08:00
BTMuli
7cfd47c36b 🚀 v0.9.7 2026-02-26 18:33:04 +08:00
BTMuli
fcc5d3db15 💄 增加可见度
#221
2026-02-26 17:49:09 +08:00
BTMuli
2f19691a57 💄 UI适配 2026-02-26 17:30:36 +08:00
BTMuli
83ddadd451 💄 UI适配
#221
2026-02-26 17:27:53 +08:00
BTMuli
b965cccbf1 🚸 处理大小写
close #219
2026-02-26 17:07:10 +08:00
BTMuli
8b60a7f8dd 🐛 修复脚本页面账号切换异常 2026-02-26 15:41:59 +08:00
BTMuli
04c9907490 💄 调整浅色模式下滚动条可见度
#221
2026-02-26 12:56:16 +08:00
BTMuli
adef358534 💄 修正图标样式 2026-02-26 12:50:32 +08:00
BTMuli
fcdad22d94 💄 移除冗余跳转
#221
2026-02-26 12:44:24 +08:00
BTMuli
bbc142ac2d 💄 替换部分侧边栏图标
#221
2026-02-26 12:35:24 +08:00
BTMuli
7169bc202e 🚸 调整游戏安装目录选取逻辑
close #219
2026-02-26 11:58:56 +08:00
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
BTMuli
cc930912dc 🚀 v0.9.2 2026-01-18 21:17:55 +08:00
BTMuli
40cf7edb6a 🐛 修复构建异常x2 2026-01-18 21:17:17 +08:00
BTMuli
9b48df759a 🐛 修复构建异常 2026-01-18 20:49:07 +08:00
BTMuli
b8ff71d71c 🍱 更新元数据 2026-01-18 20:09:05 +08:00
BTMuli
24e46706ab 🐛 copy前创建目录
close #206
2026-01-18 19:27:14 +08:00
BTMuli
6cc025cfb2 💄 调整样式 2026-01-18 19:16:44 +08:00
BTMuli
f5372b8e05 🚸 修正hint 2026-01-18 17:44:02 +08:00
BTMuli
c1ce2def26 ♻️ msix环境下将dll移动到文档目录
#206
2026-01-18 17:30:04 +08:00
BTMuli
1bd2fa34d3 🚸 仅在搜索到结果时置空 2026-01-18 15:26:13 +08:00
BTMuli
9f7763afd9 ♻️ 调整成就排序&搜索逻辑 2026-01-18 01:05:17 +08:00
BTMuli
b136a93464 ♻️ 调整dll移动方式
#206
2026-01-18 00:02:08 +08:00
BTMuli
6db1ab0a45 🚸 添加用户反馈显示控制入口 2026-01-17 23:07:54 +08:00
BTMuli
83de5beff8 💄 统一顶部样式 2026-01-17 22:40:06 +08:00
BTMuli
9003921f23 💄 对月谕圣牌进行特殊处理 2026-01-17 22:36:30 +08:00
BTMuli
10000f4aba 🐛 修正Up判断逻辑 2026-01-17 21:56:56 +08:00
BTMuli
50201fbbc8 🚸 调整优先级
close #197
2026-01-17 19:52:32 +08:00
BTMuli
eaa61e665a 🐛 移动dll以解决路径问题
#206
2026-01-17 17:05:23 +08:00
BTMuli
3a08234a78 🎨 调整解析逻辑 2026-01-17 16:40:50 +08:00
BTMuli
728dfe45d3 尝试更新cookie
#197
2026-01-17 16:12:53 +08:00
BTMuli
484d95790d 🚸 优化扫码加载 2026-01-17 16:04:40 +08:00
BTMuli
f8933c7ca1 🧑‍💻 埋点分析
#206
2026-01-17 15:24:00 +08:00
BTMuli
75b6ba40e9 ♻️ 调整解析逻辑,修复部分数据解析异常 2026-01-17 14:02:20 +08:00
BTMuli
734b01706f 🎨 调整scss格式化 2026-01-17 12:39:15 +08:00
BTMuli
4302c179d5 💄 调整Hyperlink处理 2026-01-17 12:29:09 +08:00
BTMuli
4d9b456b9d 🔨 调整debug脚本 2026-01-17 12:20:24 +08:00
BTMuli
fb8a6fdc4c 🐛 循环获取快照以尝试解决dll寻找问题
#206
2026-01-17 11:53:06 +08:00
BTMuli
9c1c665964 🚸 微调处理 2026-01-17 11:28:02 +08:00
BTMuli
d966fb2f82 💄 调整容器高度,支持单楼层分享 2026-01-17 00:12:41 +08:00
BTMuli
422f6231c8 处理 t-link
close #156
2026-01-16 23:30:32 +08:00
BTMuli
a2f0a532a8 🧪 调整dll寻找逻辑 2026-01-16 20:38:54 +08:00
BTMuli
d9f24dccaf 🧑‍💻 完善配置 2026-01-16 20:22:29 +08:00
BTMuli
87eddb7e87 🧑‍💻 配置分平台 2026-01-16 20:15:16 +08:00
BTMuli
e3f3a038f4 🎨 code fmt 2026-01-16 19:39:27 +08:00
BTMuli
79ead78eaf 🌱 尝试适配linux
https://docs.gtk.org/gio/type_func.Application.id_is_valid.html
2026-01-16 19:38:33 +08:00
BTMuli
00381a092e 🐛 上传深渊记录时更新角色列表,以修复511001异常 2026-01-16 19:23:07 +08:00
BTMuli
5715030114 🐛 修复活动奖励点击异常 2026-01-16 13:38:20 +08:00
BTMuli
e269719e4f 🐛 修复特定情况下分享图生成时屏幕异常发白,支持单幕分享,调整怪物样式 2026-01-15 23:08:35 +08:00
BTMuli
2e4171cced 🚸 调整排序 2026-01-15 22:33:36 +08:00
BTMuli
5cd4b120f4 🚸 修正深色模式下页面刷新背景色的突变 2026-01-15 22:29:30 +08:00
BTMuli
d2b5fcd416 💄 添加胡桃Logo 2026-01-15 21:03:24 +08:00
BTMuli
7dcbd8204a ♻️ 合并导入 2026-01-15 20:58:55 +08:00
BTMuli
bd54e86f5b 🧑‍💻 设置Sentry用户 2026-01-15 20:04:12 +08:00
BTMuli
1facdb9cec 🚸 调整首页部分图片缓存策略 2026-01-15 13:01:44 +08:00
BTMuli
a95c9479cd 🎨 优化组件结构,降低dom渲染 2026-01-15 12:57:48 +08:00
BTMuli
859ddc3d8d 🚸 隐藏完成成就支持隐藏成就系列
close #205
2026-01-15 12:51:56 +08:00
BTMuli
7b5a57fd5c 💄 调整forum背景计算 2026-01-15 12:11:47 +08:00
BTMuli
ed4adf20e9 🐛 尝试修复 Document is not focused. 2026-01-14 23:17:07 +08:00
BTMuli
21315cab58 🥅 当无法读取注册表时返回1.0 2026-01-14 23:09:51 +08:00
BTMuli
1975b989e0 🍱 增加旅行者衣装 2026-01-14 20:47:25 +08:00
BTMuli
fd2e80f0b5 🍱 增加璃月港阵营 2026-01-14 17:10:31 +08:00
BTMuli
882ea9b071 🚸 降低请求次数 2026-01-14 16:38:53 +08:00
BTMuli
2847042933 🚸 随机loading 2026-01-14 13:11:30 +08:00
BTMuli
aaf30d0df5 🐛 修复检测数据更新异常 2026-01-14 12:39:39 +08:00
BTMuli
f2c5051a23 🚀 v0.9.1 2026-01-14 00:43:49 +08:00
BTMuli
4fc29950b4 🔨 调整运行判断 2026-01-14 00:43:37 +08:00
BTMuli
d9940e5a37 🚨 修复环境读取异常 2026-01-14 00:43:10 +08:00
BTMuli
5f0ce85fdf 🚨 修复macOS编译异常 2026-01-14 00:35:46 +08:00
BTMuli
3380ac265e 🔨 调整脚本以适配github action 2026-01-14 00:18:34 +08:00
BTMuli
e4e64cb6b8 wiki显示衣装 2026-01-14 00:06:44 +08:00
BTMuli
c27a4683ea 🍱 更新6.3版本资源 2026-01-13 23:31:25 +08:00
BTMuli
f0aadbff17 🚸 处理特殊数据&优化交互 2026-01-13 23:30:53 +08:00
BTMuli
ee85738bba 🐛 尝试修复dll匹配异常 2026-01-13 15:48:42 +08:00
BTMuli
74fec031d7 🚸 一些优化 2026-01-13 15:27:44 +08:00
BTMuli
ecbc8fd7cd ♻️ 获取游戏版本,完善检测 2026-01-13 14:19:32 +08:00
BTMuli
43be304d24 🚸 处理旅行者 2026-01-13 13:01:05 +08:00
BTMuli
d373a4e0e0 🔊 完善错误处理 2026-01-13 12:54:10 +08:00
BTMuli
8a05e4ed07 🚸 一些优化 2026-01-13 01:13:36 +08:00
BTMuli
219256d542 🐛 修正判断条件 2026-01-13 00:41:33 +08:00
BTMuli
ca0209e40a 🐛 修正判断条件 2026-01-13 00:23:55 +08:00
BTMuli
1d82ecd319 🚸 增加胡桃云购买跳转 2026-01-13 00:15:23 +08:00
BTMuli
44dd81463b 重置胡桃云密码 2026-01-12 23:26:38 +08:00
BTMuli
2a9c0ab552 🌱 添加outerClose&zIndex参数 2026-01-12 22:11:11 +08:00
BTMuli
507c6c88ab 🌱 添加outerClose参数,用于控制点击外部关闭浮窗 2026-01-12 22:08:28 +08:00
BTMuli
6c3c11c077 🐛 修复上传数据异常 2026-01-12 12:53:01 +08:00
BTMuli
d306286c06 🐛 修正过期判断逻辑 2026-01-12 12:17:41 +08:00
BTMuli
62052d126f 下载祈愿数据
close #202
2026-01-12 01:05:11 +08:00
BTMuli
8d541891ae 上传祈愿数据
#202
2026-01-11 22:15:48 +08:00
BTMuli
bd081e2dee 🚸 调整完成判断逻辑 2026-01-11 16:37:01 +08:00
BTMuli
16f6289b15 ⬆️ 更新依赖 2026-01-11 12:36:31 +08:00
BTMuli
49afdfc2b0 🌱 获取上传存档 2026-01-06 06:13:42 +08:00
BTMuli
2b13f29a02 🐛 修复修改分享阈值点击取消时的取值异常
close #203
2026-01-05 18:52:49 +08:00
BTMuli
00664d5fb8 支持皮肤筛选 2026-01-05 18:24:56 +08:00
BTMuli
113f1686df 💄 增加浅色模式下的可见度 2026-01-04 22:55:41 +08:00
BTMuli
c8d6df5b69 💄 显示设备ID 2026-01-04 18:43:44 +08:00
BTMuli
1cbcdbb31d 设置页添加胡桃云相关模块
#202
2026-01-04 16:53:34 +08:00
BTMuli
5834eee6fc 🐛 修复部分帖子获取内容异常 2026-01-04 15:38:59 +08:00
BTMuli
2c451c3c01 🌱 祈愿相关接口&类型
#202
2026-01-04 05:15:31 +08:00
BTMuli
f0c78a3b03 刷新token&获取信息
#202
2026-01-04 04:43:42 +08:00
BTMuli
0aae714455 ♻️ 替换hutaoEmail
#202
2026-01-04 04:09:33 +08:00
BTMuli
a7344388ea 🐛 text非必需 2026-01-04 03:51:02 +08:00
BTMuli
edb7088846 🌱 完成登录请求
#202
2026-01-04 03:38:46 +08:00
BTMuli
1fa1f2b780 🧑‍💻 调整输出 2026-01-04 03:33:33 +08:00
BTMuli
837651542d 支持获取机器码 2026-01-04 02:56:56 +08:00
BTMuli
c3d6997e0f 🔊 调整网络请求log 2026-01-04 02:11:47 +08:00
BTMuli
a2a40ab29f 🐛 修复设置页通过ck登录没有即时刷新登录态 2026-01-04 00:23:22 +08:00
BTMuli
1ff8a6185e 🚸 调整hint 2026-01-04 00:20:38 +08:00
BTMuli
b020638b99 🚸 调整hint 2026-01-03 19:38:04 +08:00
BTMuli
288fa91106 🚸 调整hint 2026-01-03 19:30:52 +08:00
BTMuli
12b9d2a3a0 🐛 修复数据库重置异常 2026-01-03 19:29:39 +08:00
BTMuli
f90d11c7a0 🍱 添加胡桃icon 2026-01-03 19:28:29 +08:00
BTMuli
ff040fa490 🚸 微调hint 2026-01-03 18:13:39 +08:00
BTMuli
051c300a34 🐛 补充缺失权限,修复opener打开URL异常 2026-01-03 18:12:16 +08:00
BTMuli
ea89503761 🐛 兼容管理员重启flag 2026-01-03 13:48:36 +08:00
BTMuli
7b3596d226 ♻️ 采用invoke而非command启动游戏 2026-01-03 13:48:08 +08:00
BTMuli
a520d378a6 🚸 显式调用uac 2026-01-03 01:58:46 +08:00
BTMuli
96ca483ca7 🔊 修正log输出 2026-01-03 01:43:07 +08:00
BTMuli
d23ba4af76 🐛 修复更新组件异常x2 2026-01-03 01:30:36 +08:00
BTMuli
63779ec3c7 🐛 修复更新组件异常 2026-01-03 01:20:35 +08:00
BTMuli
b42b13f79a 🚸 当允许点击外部关闭时增加关闭按钮
close #201
2026-01-03 00:58:11 +08:00
BTMuli
1f05b0d97c enable dpi v2 2026-01-03 00:47:10 +08:00
BTMuli
5f7bdc1c8c 🚸 调整repo跳转 2026-01-03 00:44:26 +08:00
BTMuli
4b6104f956 🐛 修复侧边栏通过ck登录没有即时刷新登录态 2026-01-03 00:21:16 +08:00
BTMuli
cb806642e3 ♻️ 重构弹窗参数
#201
2026-01-02 23:30:27 +08:00
BTMuli
2608833516 ♻️ 重构首页组件加载逻辑,存储中间值,增加登录态判断
close #200
2026-01-02 23:08:44 +08:00
BTMuli
786d1af753 💄 微调样式 2026-01-02 22:53:02 +08:00
BTMuli
fba568ead4 💄 数据适配
close #198
2026-01-02 22:49:19 +08:00
BTMuli
27d1083181 💄 修正容器高度溢出 2026-01-02 22:31:25 +08:00
BTMuli
a3c6232e9c 🍱 更新元数据&背景资源
#198
2026-01-02 21:59:57 +08:00
BTMuli
0d37a86883 🚸 新增srs命令用于重置窗口回正 2026-01-02 21:01:19 +08:00
BTMuli
7ed9e6c17e 🧑‍💻 版本号填写前移 2026-01-02 16:18:54 +08:00
BTMuli
94d8a80745 🐛 use ico to fix tray init failed 2026-01-02 16:06:05 +08:00
BTMuli
f485a040cc 🧑‍💻 remove dev workaround 2026-01-02 15:58:21 +08:00
BTMuli
2136f676c7 🐛 调整默认值,修复正常打卡异常
#195
2026-01-02 00:11:56 +08:00
BTMuli
3a9610af7c 🚸 发送通知
#195
2026-01-02 00:09:20 +08:00
BTMuli
0288e38c95 🌱 发送通知 2026-01-02 00:01:30 +08:00
BTMuli
03136c4864 🐛 修正isDevEnv判断逻辑 2026-01-01 23:15:51 +08:00
BTMuli
6d03c22b17 🚸 调整搜索逻辑,支持数量筛选
close #196
2026-01-01 22:18:29 +08:00
BTMuli
dc33c0a259 自动执行任务
#195
2026-01-01 20:08:07 +08:00
BTMuli
15e0a60bb6 🌱 初步定义&获取终端参数
#195
2026-01-01 19:49:31 +08:00
BTMuli
3e31bae751 🚸 移除opt的err输出 2026-01-01 14:21:57 +08:00
BTMuli
8677a5ccb4 🔊 完善网络请求报错 2026-01-01 02:15:57 +08:00
BTMuli
50a40e1f3d 🚸 排序,已完成活动后置 2026-01-01 02:02:03 +08:00
BTMuli
2936cc5dd1 🐛 修复跳转异常 2025-12-31 16:47:27 +08:00
BTMuli
5894c46c1d 胡桃深渊数据库 2025-12-31 16:31:14 +08:00
BTMuli
b29c94bf02 💄 处理空数据 2025-12-31 16:04:54 +08:00
BTMuli
587393c3d1 💄 调整0数据处理&样式 2025-12-31 15:31:51 +08:00
BTMuli
fc7f132700 💄 微调样式 2025-12-31 15:23:08 +08:00
BTMuli
087ab2e42d 🍱 增加元素描述 2025-12-31 15:06:04 +08:00
BTMuli
71b1d97944 🧑‍💻 调整构建 2025-12-31 14:57:12 +08:00
BTMuli
305427978d 🧑‍💻 上传sourcemap 2025-12-31 14:27:05 +08:00
BTMuli
55a35471b6 🧑‍💻 调整Sentry数据 2025-12-31 14:19:10 +08:00
BTMuli
7423f6f2b8 🐛 修复获取下一个生日角色异常 2025-12-31 14:15:02 +08:00
BTMuli
a78f3aaa55 🔨 仅提交项目源码 2025-12-31 02:03:55 +08:00
BTMuli
42e557055a ♻️ 服装判断上移,适配侧边图
#190
2025-12-31 01:54:36 +08:00
BTMuli
292e75da8c 🧑‍💻 仅在生产环境中上传 2025-12-31 01:41:08 +08:00
BTMuli
5030af2366 我的角色页面渲染衣装数据
close #190
2025-12-31 01:38:41 +08:00
BTMuli
92e5aabbb0 🐛 修复从网络图更新到本地图导致的渲染异常 2025-12-31 01:24:53 +08:00
BTMuli
7c55637f1a 💄 调整崩溃弹窗zIndex 2025-12-31 01:08:55 +08:00
BTMuli
a2098347eb 🔨 调整参数 2025-12-31 01:02:32 +08:00
BTMuli
e06b96dcd9 🍱 增加衣装相关资源
#190
2025-12-31 01:02:14 +08:00
BTMuli
25a813d3f7 🐛 修正比较参数 2025-12-30 03:53:47 +08:00
BTMuli
c3f7d01b55 💄 调整布局 2025-12-30 03:46:57 +08:00
BTMuli
f112e79b47 🔨 参考hutao-installer上传源码 2025-12-30 03:32:14 +08:00
BTMuli
2cdb0c5278 🔨 调整构建 2025-12-30 03:15:46 +08:00
BTMuli
fb8a0eee1d 🔨 调整构建 2025-12-30 03:03:03 +08:00
BTMuli
692e6ccc94 🌱 dev脚本 2025-12-30 02:59:00 +08:00
BTMuli
d50dcc34c6 🌱 构建脚本 2025-12-30 02:53:00 +08:00
BTMuli
0c8eda3f74 🔧 支持上传error 2025-12-30 00:26:19 +08:00
BTMuli
5f5af48ce0 🐛 处理遗漏导入 2025-12-30 00:15:12 +08:00
BTMuli
e865c80c74 🔧 处理本地打包版本 2025-12-30 00:14:21 +08:00
BTMuli
780181019c 💄 调整浅色模式下的可读性 2025-12-29 23:47:52 +08:00
BTMuli
10202a919d 💄 自定义Sentry反馈按钮样式 2025-12-29 23:18:10 +08:00
BTMuli
ab115726bd 🚨 修复编译异常 2025-12-29 21:46:31 +08:00
BTMuli
cc8723c619 🐛 修正判断条件 2025-12-29 21:44:45 +08:00
BTMuli
01cda62231 处理文本放缩
close #192
2025-12-29 21:42:09 +08:00
BTMuli
41987a9a58 🎨 使用 widestring 替代现有处理 2025-12-29 21:28:49 +08:00
BTMuli
cc3655a700 🌱 监听&获取文本缩放
#192
2025-12-29 21:15:52 +08:00
BTMuli
66b54dfc5e 👷 构建支持win 2025-12-29 20:03:52 +08:00
BTMuli
cfea47f11c 🌱 尝试引入Sentry进行分析 2025-12-29 19:56:00 +08:00
BTMuli
e247c6a058 🐛 修复重置筛选异常,高亮当前筛选 2025-12-29 01:43:28 +08:00
BTMuli
41c467d285 ♻️ 调整筛选逻辑 2025-12-29 00:57:04 +08:00
BTMuli
6e73747a80 🐛 联动排序 2025-12-29 00:12:23 +08:00
BTMuli
9cc9918d87 🐛 修正筛选逻辑 2025-12-28 23:49:21 +08:00
BTMuli
f30e396c03 💄 修正排序逻辑,调整顶部样式 2025-12-28 23:17:19 +08:00
BTMuli
e779467034 ♻️ 重构WIKI筛选组件筛选逻辑 2025-12-28 23:06:32 +08:00
BTMuli
bfab4a6ac6 重构角色筛选组件 2025-12-28 22:32:47 +08:00
BTMuli
aa74818c47 💄 选择组件 2025-12-28 19:48:14 +08:00
BTMuli
8ef9132506 💄 微调顶部样式 2025-12-28 18:01:11 +08:00
BTMuli
280b0e6423 🐛 修复isFetterUp监听异常 2025-12-28 17:43:05 +08:00
BTMuli
8a8087d8e1 🚸 增加等级/好感/命座排序 2025-12-28 16:17:34 +08:00
BTMuli
bf512b93fa 💄 显示等级 2025-12-28 15:44:02 +08:00
BTMuli
5ff0d96760 支持删除记录 2025-12-28 15:28:14 +08:00
BTMuli
5ecb46f1da 支持货币数据获取 2025-12-28 15:19:34 +08:00
BTMuli
002fb63df3 🍱 精简来源描述 2025-12-28 15:18:09 +08:00
BTMuli
2316bb1fe8 🚸 调整Hakushi获取逻辑 2025-12-28 13:53:40 +08:00
BTMuli
6611bb64d2 🍱 更新卡池封面链接,微调样式 2025-12-28 13:50:24 +08:00
BTMuli
c7c666579a ✏️ 调整引用 2025-12-27 22:04:52 +08:00
BTMuli
720ca76466 💄 显示卡池抽卡记录
close #188
2025-12-27 22:03:57 +08:00
BTMuli
37a47205b1 🌱 获取卡池抽卡记录
#188
2025-12-27 21:02:35 +08:00
BTMuli
a929572ef5 👽️ 更新接口&返回 2025-12-27 15:42:12 +08:00
BTMuli
dfc60d8645 🐛 修正管理员模式判断逻辑,改为检测进程 2025-12-27 15:11:28 +08:00
BTMuli
600149f99b 🏷️ 调整参数类型 2025-12-27 15:09:36 +08:00
BTMuli
8b2a7f2dd3 🚸 修正月谕圣牌下的星章计算逻辑 2025-12-27 15:04:55 +08:00
BTMuli
90eb4facf9 ♻️ 移除isInAdmin的store 2025-12-27 14:59:15 +08:00
BTMuli
ff49d3175a 🏷️ 类型对齐 2025-12-26 14:59:37 +08:00
BTMuli
7013f2ea18 🐛 修复 wcag-color 无法对比 keyword 导致的渲染异常 2025-12-26 14:23:01 +08:00
BTMuli
b7ffbf8270 🚸 支持排序,调整默认排序逻辑 2025-12-25 01:22:50 +08:00
BTMuli
715b53ba82 🐛 修复程序最小化时托盘点击异常 2025-12-24 20:42:02 +08:00
BTMuli
972a9a5a99 💄 适配窄屏 2025-12-24 18:26:03 +08:00
BTMuli
b910496477 🌐 处理国际化 2025-12-24 17:55:45 +08:00
BTMuli
e4cafcf6e5 💡 注释未使用代码 2025-12-24 17:27:27 +08:00
BTMuli
6e3ca9f6cd 🔥 移除qodana 2025-12-24 17:21:36 +08:00
BTMuli
651a89145f 🎨 规范化代码 2025-12-24 17:17:40 +08:00
BTMuli
8500668213 🔧 移除无用依赖,更新tsdoc配置 2025-12-24 01:38:46 +08:00
BTMuli
41f561a5ac 🔧 使用type替代interface 2025-12-23 01:48:46 +08:00
BTMuli
b301d2393d 🔧 使用Array替代[] 2025-12-23 01:27:22 +08:00
BTMuli
e780db9936 🔧 tsdoc格式化配置 2025-12-23 01:17:49 +08:00
BTMuli
88cd657525 ♻️ 统一uid选取逻辑 2025-12-22 20:24:11 +08:00
BTMuli
faacc856de 💄 根据签到状态调整图标&文本 2025-12-22 19:51:58 +08:00
BTMuli
4467c7686d 🔥 移除ck复制的确认浮窗 2025-12-22 19:31:23 +08:00
BTMuli
869965ff85 🚸 重构侧边栏账号切换逻辑,降低交互次数 2025-12-22 19:20:24 +08:00
BTMuli
1a0bdb7b6d 🐛 修复侧边栏账号切换异常 2025-12-22 18:29:13 +08:00
BTMuli
3a8e235186 🐛 修正判断条件 2025-12-22 18:09:57 +08:00
BTMuli
605efacf67 🚸 调整解析逻辑&渲染 2025-12-22 17:39:16 +08:00
BTMuli
a2ff92d00a ♻️ 方法提取 2025-12-22 16:15:23 +08:00
BTMuli
06ff32d47d 管理员模式下启动使用YAE导入 2025-12-22 15:57:32 +08:00
BTMuli
86b2dfa184 🏷️ 修正描述 2025-12-22 15:39:31 +08:00
BTMuli
35851532a5 ♻️ 重构xml解析&处理,支持scene切换 2025-12-22 15:38:22 +08:00
BTMuli
bd8ee19b79 🌱 留影叙佳期xml解析 2025-12-22 14:15:43 +08:00
BTMuli
4b3625527f 左右切换&支持翻页 2025-12-22 11:14:35 +08:00
BTMuli
f8b9500def ♻️ 重构留影叙佳期页面,处理部分文本加载异常 2025-12-21 23:05:57 +08:00
BTMuli
26d7df66d3 💄 修正类型,调整首页生日组件交互 2025-12-21 21:40:11 +08:00
BTMuli
7b596a83f7 💄 调整投票组件样式 2025-12-21 19:00:51 +08:00
BTMuli
c562424af9 ♻️ 部分组件ZIndex抽离 2025-12-21 18:40:50 +08:00
BTMuli
8adedada19 📝 更新功能描述 2025-12-21 18:33:05 +08:00
LuoYunXi
696ca40f7f Fix typo (#187)
根据定义「咨讯」应为「资讯」。

News 是「资讯」
而「咨讯」在网络上检索到的定义为 Valuable Information,且现代汉语词典(第 7 版)中未收录该词
2025-12-21 11:26:25 +08:00
948 changed files with 31502 additions and 16291 deletions

3
.env.production Normal file
View File

@@ -0,0 +1,3 @@
VITE_SENTRY_RELEASE=TeyvatGuide@0.9.8
VITE_COMMIT_HASH=1d810117
VITE_BUILD_TIME=1773380800

View File

@@ -12,6 +12,14 @@ body:
- 你所遇到的问题
- 当前使用版本
- 复现流程
- type: input
id: version
attributes:
label: 当前使用版本
description: 请填写当前使用版本
placeholder: 如 Beta v0.9.1**如果是微软应用商店下载的请注明**
validations:
required: true
- type: checkboxes
attributes:
label: Issue Check
@@ -30,14 +38,6 @@ body:
placeholder: 请详细描述你所遇到的问题
validations:
required: true
- type: input
id: version
attributes:
label: 当前使用版本
description: 请填写当前使用版本
placeholder: 如 Beta v0.3.7
validations:
required: true
- type: textarea
id: reproduce
attributes:

View File

@@ -21,6 +21,14 @@ body:
required: false
- label: 我阅读过[提问的艺术](https://github.com/betaseeker/How-To-Ask-Questions)
required: false
- type: input
id: version
attributes:
label: 当前使用版本
description: 请填写当前使用版本
placeholder: 如 Beta v0.9.1**如果是微软应用商店下载的请注明**
validations:
required: true
- type: textarea
id: description
attributes:
@@ -29,14 +37,6 @@ body:
placeholder: 请详细描述新功能的内容
validations:
required: true
- type: input
id: version
attributes:
label: 当前使用版本
description: 请填写当前使用版本
placeholder: 如 Beta v0.3.7
validations:
required: true
- type: textarea
id: additional
attributes:

View File

@@ -27,6 +27,9 @@ jobs:
args: "--target aarch64-apple-darwin"
target: "macos-arm"
runs-on: ${{ matrix.settings.platform }}
env:
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
APP_VERSION: ${{ github.sha }}
steps:
- name: Checkout
@@ -42,7 +45,6 @@ jobs:
chmod 644 ~/.ssh/known_hosts
- name: Test SSH connection
run: ssh -T git@github.com || true
- name: Rust setup
uses: dtolnay/rust-toolchain@stable
- name: Rust cache
@@ -67,9 +69,11 @@ jobs:
- name: setup pnpm
uses: pnpm/action-setup@v2
with:
version: 10.23.0
version: 10.32.1
- name: Install frontend dependencies
run: pnpm install
- name: Setup sentry-cli
run: npm install -g @sentry/cli
- name: Build app
uses: tauri-apps/tauri-action@dev

View File

@@ -1,26 +0,0 @@
name: Qodana
on:
workflow_dispatch:
# push:
# branches:
# - master
jobs:
qodana:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: setup node
uses: actions/setup-node@v3
with:
node-version: 24.8.0
- name: setup pnpm
uses: pnpm/action-setup@v2
with:
version: 10.16.1
- name: Install dependencies
run: pnpm install --no-frozen-lockfile
- name: "Qodana Scan"
uses: JetBrains/qodana-action@v2023.3
env:
QODANA_TOKEN: ${{ secrets.QODANA_TOKEN }}

View File

@@ -1,7 +1,17 @@
name: Build Debug for Mac
name: Test Build
on:
workflow_dispatch:
inputs:
build-mac:
description: "Build for Mac"
required: true
default: true
type: boolean
build-win:
description: "Build for Win"
required: true
default: false
type: boolean
build-debug:
description: "Build debug version"
required: true
@@ -13,7 +23,8 @@ on:
default: false
type: boolean
jobs:
build-debug-mac:
build-mac:
if: inputs.build-mac
permissions:
contents: write
strategy:
@@ -29,6 +40,9 @@ jobs:
target: "macos-arm"
artifact: "debug-build-macos-arm"
runs-on: ${{ matrix.settings.platform }}
env:
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
COMMIT_HASH: ${{ github.sha }}
steps:
- name: Checkout
@@ -73,10 +87,6 @@ jobs:
version: 10.23.0
- name: Install frontend dependencies
run: pnpm install
# 获取commit hash后续用这个做文件命名
- name: Get Commit Hash
id: get_commit_hash
run: echo "COMMIT_HASH=$(git rev-parse --short HEAD)" >> $GITHUB_ENV
# Build Debug
- name: Build debug app
@@ -130,3 +140,93 @@ jobs:
with:
name: release-macos-arm
path: TeyvatGuide_${{ env.COMMIT_HASH }}_arm-release.dmg
build-win:
if: inputs.build-win
permissions:
contents: write
runs-on: windows-latest
env:
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
COMMIT_HASH: ${{ github.sha }}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup SSH
run: |
mkdir -p ~/.ssh
echo "${{ secrets.SSH_PRIVATE_KEY }}" | tr -d '\r' > ~/.ssh/id_rsa
chmod 600 ~/.ssh/id_rsa
- name: Add Github RSA
run: |
echo "${{ secrets.KNOWN_GITHUB_RSA }}" >> ~/.ssh/known_hosts
chmod 644 ~/.ssh/known_hosts
- name: Test SSH connection
run: ssh -T git@github.com || true
- name: Rust setup
uses: dtolnay/rust-toolchain@stable
- name: Rust cache
uses: swatinem/rust-cache@v2
with:
workspaces: "./src-tauri -> target"
- name: Add Offset Conf
run: echo '${{ secrets.YAE_CONF }}' | jq -c . > ./src-tauri/lib/conf.json
- name: setup node
uses: actions/setup-node@v3
with:
node-version: 24.8.0
- name: setup pnpm
uses: pnpm/action-setup@v2
with:
version: 10.23.0
- name: Setup sentry-cli
run: npm install -g @sentry/cli
- name: Install frontend dependencies
run: pnpm install
# Build Debug
- name: Build debug app
if: github.event.inputs.build-debug == 'true'
uses: tauri-apps/tauri-action@dev
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
args: --debug
- name: Move Debug
if: github.event.inputs.build-debug == 'true'
run: mv src-tauri/target/debug/bundle/msi/*.msi TeyvatGuide_${{ env.COMMIT_HASH }}_win-debug.msi
- name: Upload Debug
if: github.event.inputs.build-debug == 'true'
uses: actions/upload-artifact@v4
with:
name: debug-win
path: TeyvatGuide_${{ env.COMMIT_HASH }}_win-debug.msi
# Build Release
- name: Build app
if: github.event.inputs.build-release == 'true'
uses: tauri-apps/tauri-action@dev
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Move Release
if: github.event.inputs.build-release == 'true'
run: mv src-tauri/target/release/bundle/msi/*.msi TeyvatGuide_${{ env.COMMIT_HASH }}_win-release.msi
- name: Upload Release
if: github.event.inputs.build-release
uses: actions/upload-artifact@v4
with:
name: release-win
path: TeyvatGuide_${{ env.COMMIT_HASH }}_win-release.msi
- 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: ${{ env.VITE_SENTRY_RELEASE }}

4
.gitignore vendored
View File

@@ -8,3 +8,7 @@ dist
.env.sh
# vue-tsc --noEmit
*.tsbuildinfo
# Sentry Config File
.env.development.local
package-lock.json

View File

@@ -7,8 +7,6 @@ dist
src-tauri/target
# Pnpm
pnpm-lock.yaml
# Qodana
qodana.yaml
# sourse
*.webp
*.png

3
.sentryclirc Normal file
View File

@@ -0,0 +1,3 @@
[defaults]
org = teyvat-guide
project = teyvat-guide

View File

@@ -37,7 +37,7 @@ rules:
prettier/prettier: true
property-no-vendor-prefix:
- true
- ignoreProperties: [backdrop-filter]
- ignoreProperties: [-webkit-backdrop-filter]
rule-empty-line-before:
- always
- except: ["first-nested"]

View File

@@ -0,0 +1,50 @@
# Git Commit 规则
## 核心规则
1. **分步提交**:分步执行 `git add <文件路径>``git commit -m "<emoji> <描述>"`
2. **单一 emoji**:每条提交只使用一个 emoji位于开头
3. **Unicode 格式**:使用 Unicode emoji 图标(如 ✨),不要纯文本(如 `:sparkles:`
4. **中文描述**:以动词开头,一行不超过 100 字符
5. **禁止 type: 声明**:不要使用 `✨ feat: xxx` 格式
## 提交格式
```
<emoji> <描述>
```
## Emoji 速查
| 类别 | Emoji | 场景 |
|------|-------|------|
| 新增 | ✨ | 新功能 |
| 新增 | 🎨 | 代码结构/格式 |
| 新增 | 📝 | 文档 |
| 修改 | 🐛 | Bug 修复 |
| 修改 | 🩹 | 小修复/补丁 |
| 修改 | ⚡️ | 性能优化 |
| 修改 | ♻️ | 重构 |
| 修改 | 💄 | UI/样式 |
| 删除 | 🔥 | 删除代码/文件 |
| 删除 | ⚰️ | 删除死代码 |
| 依赖 | | 添加依赖 |
| 依赖 | | 删除依赖 |
| 依赖 | ⬆️ | 升级依赖 |
| 部署 | 🚀 | 部署 |
| 部署 | 📦 | 编译/打包 |
| 数据库 | 🗃️ | 数据库变更 |
| 安全 | 🔒 | 安全问题 |
| 架构 | 🏗️ | 架构变更 |
| 体验 | 🧑‍💻 | 开发体验 |
| 进行中 | 🚧 | 进行中工作 |
## 示例
```
✨ 添加用户个人页面跳转功能
🐛 修复角色生日判断逻辑
🩹 补充首页mini参数处理
♻️ 重构数据库操作为事务模式
⚡️ 优化角色列表渲染性能
```

View File

@@ -0,0 +1,62 @@
# SQLite 数据库操作规则
## 参数占位符
使用 `$1, $2, $3...` 作为参数占位符,**禁止使用 `?`**
```typescript
// 正确
await db.execute(
"INSERT INTO Table(key, value) VALUES ($1, $2)",
[key, value]
);
// 错误
await db.execute(
"INSERT INTO Table(key, value) VALUES (?, ?)",
[key, value]
);
```
## 异步模式
所有数据库操作返回 Promise必须使用 `await`
```typescript
// 正确
const result = await db.execute(sql, params);
// 错误 - 不处理 Promise
db.execute(sql, params);
```
## 插入/更新模式
使用 `ON CONFLICT` 处理插入或更新:
```typescript
await db.execute(
`INSERT INTO Table(key, value, updated)
VALUES ($1, $2, datetime('now', 'localtime'))
ON CONFLICT(key) DO UPDATE SET value = $2, updated = datetime('now', 'localtime');`,
[key, value],
);
```
## 查询模式
```typescript
const rows = await db.select<RowType>(
"SELECT * FROM Table WHERE id = $1",
[id],
);
```
## 路径别名
数据库相关代码使用以下别名:
| 别名 | 路径 |
|------|------|
| `@Sql/*` | `./src/plugins/Sqlite/*` |
| `@Sqlm/*` | `./src/plugins/Sqlite/modules/*` |

View File

@@ -0,0 +1,79 @@
# TypeScript 开发规则
## 禁止使用原生 enum
使用 `const` 对象模式替代原生 `enum`
```typescript
// 正确
const GameServerEnum = <const>{
CN_GF01: "cn_gf01",
CN_QD01: "cn_qd01",
};
```
## 类型定义
类型定义放在 `src/types/<Module>/<Module>.d.ts``types/<Module>/<Module>.d.ts`
Enum 常量放在 `src/enum/<Module>.ts`
```typescript
declare namespace TGApp.BBS.Post {
const NewsType = <const>{
NOTICE: 1,
ACTIVITY: 2,
NEWS: 3,
};
type NewsTypeEnum = (typeof NewsType)[keyof typeof NewsType];
}
```
枚举常量引用 `const` 对象类型,而非 union type
```typescript
// 正确
const PostNewsTypeEnum: typeof TGApp.BBS.Post.NewsType = { ... };
// 错误
const PostNewsTypeEnum: TGApp.BBS.Post.NewsTypeEnum = { ... };
```
## 命名规范
| 类型 | 规范 | 示例 |
|------|------|------|
| Interface/Type | PascalCase | `UserProfile` |
| const 对象 | PascalCase | `NewsType` |
| type alias | PascalCase + Enum | `NewsTypeEnum` |
| enum 常量 | PascalCase + Enum | `PostNewsTypeEnum` |
| readonly 列表 | PascalCase + List | `PostNewsTypeList` |
| 描述函数 | camelCase + Desc | `getPostNewsTypeDesc` |
| 常量 | UPPER_SNAKE_CASE | `MAX_RETRY_COUNT` |
## JSDoc 注释
所有导出函数必须包含 `@since` 标签:
```typescript
/**
* 获取角色信息
* @since Beta v0.9.6
* @param id - 角色 ID
*/
function getCharacter(id: number): Character;
```
常用标签:`@param` `@returns` `@remarks` `@see` `@example` `@deprecated`
## 类型注解
- 函数参数和返回值必须显式类型注解
- 优先用 `type` 而非 `interface`
-`unknown` 而非 `any`
- 避免类型断言 (`as`)
## 相关文档
- [typescript-standards skill](./skills/typescript-standards/)

View File

@@ -0,0 +1,164 @@
---
name: "git-commit-skill"
description: "Git commit 规范参考。Invoke when user wants to make commits, including selective file staging, proper gitmoji usage, and commit message format."
---
# Gitmoji Commit 规范
本文档定义了项目提交信息的格式规范,确保提交历史清晰可读。
## 提交格式
```
<emoji> <描述>
```
- **emoji**:使用 Unicode emoji 图标,放在提交信息开头
- **描述**:使用中文,以动词开头,简短明了
- **一行不超过 100 字符**
- **禁止括号声明**:不要使用 `✨ feat(xxx)``✨ feat` 这种格式,仅保留图标
## Emoji 选择指南
根据变更类型选择对应的 emoji
### 🆕 新增内容
| Emoji | 场景 | 示例 |
|-------|------|------|
| ✨ | 新功能 | `✨ 添加用户个人页面跳转功能` |
| 🎨 | 代码结构/格式 | `🎨 重构角色卡片组件` |
| 📝 | 文档 | `📝 更新 README` |
| 🎉 | 初始项目 | `🎉 初始化项目` |
| ✅ | 测试 | `✅ 添加角色查询单元测试` |
### 🔧 修改内容
| Emoji | 场景 | 示例 |
|-------|------|------|
| 🐛 | Bug 修复 | `🐛 修复角色生日判断逻辑` |
| 🩹 | 小修复/补丁 | `🩹 补充首页mini参数处理` |
| ⚡️ | 性能优化 | `⚡️ 优化角色列表渲染性能` |
| ♻️ | 重构 | `♻️ 重构数据库操作层` |
| 💄 | UI/样式 | `💄 调整首页卡片布局` |
| ✏️ | 拼写错误 | `✏️ 修复注释拼写` |
| 💡 | 注释/解释 | `💡 添加关键逻辑注释` |
### 🗑️ 删除/清理
| Emoji | 场景 | 示例 |
|-------|------|------|
| 🔥 | 删除代码/文件 | `🔥 移除废弃组件` |
| ⚰️ | 删除死代码 | `⚰️ 清理未使用的导入` |
| 🗑️ | 代码弃用 | `🗑️ 弃用旧版API` |
### 📦 依赖/配置
| Emoji | 场景 | 示例 |
|-------|------|------|
| | 添加依赖 | ` 添加图表库依赖` |
| | 删除依赖 | ` 移除冗余依赖` |
| ⬆️ | 升级依赖 | `⬆️ 升级 Vue 版本` |
| ⬇️ | 降级依赖 | `⬇️ 降级兼容版本` |
| 📌 | 锁定版本 | `📌 锁定构建工具版本` |
| 🔧 | 配置文件 | `🔧 更新 vite 配置` |
| 🔨 | 开发脚本 | `🔨 添加自动化脚本` |
### 🚀 部署/构建
| Emoji | 场景 | 示例 |
|-------|------|------|
| 🚀 | 部署 | `🚀 部署生产环境` |
| 📦 | 编译/打包 | `📦 更新构建产物` |
| 👷 | CI/CD | `👷 优化 GitHub Actions` |
### 🗄️ 数据/存储
| Emoji | 场景 | 示例 |
|-------|------|------|
| 🗃️ | 数据库 | `🗃️ 添加角色收藏表` |
| 🌱 | 种子数据 | `🌱 初始化角色数据` |
### 🌐 国际化/本地化
| Emoji | 场景 | 示例 |
|-------|------|------|
| 🌐 | 国际化 | `🌐 添加多语言支持` |
### 🔒 安全/权限
| Emoji | 场景 | 示例 |
|-------|------|------|
| 🔒 | 安全问题 | `🔒 修复XSS漏洞` |
| 🔐 | 密钥/凭证 | `🔐 更新API密钥配置` |
### 📊 分析/监控
| Emoji | 场景 | 示例 |
|-------|------|------|
| 📈 | 分析/跟踪 | `📈 添加埋点统计` |
| 🔊 | 添加日志 | `🔊 添加操作日志` |
| 🔇 | 删除日志 | `🔇 清理调试日志` |
### 🏗️ 架构/基础设施
| Emoji | 场景 | 示例 |
|-------|------|------|
| 🏗️ | 架构变更 | `🏗️ 引入状态管理` |
| 🧱 | 基础设施 | `🧱 优化 Docker 配置` |
### 🧑‍💻 开发体验
| Emoji | 场景 | 示例 |
|-------|------|------|
| 🧑‍💻 | 开发体验 | `🧑‍💻 优化热更新速度` |
| 🚸 | 用户体验 | `🚸 统一导出交互流程` |
| 💫 | 动画/过渡 | `💫 添加页面转场动画` |
### 🔀 分支/版本
| Emoji | 场景 | 示例 |
|-------|------|------|
| 🔀 | 合并分支 | `🔀 合并功能分支` |
| ⏪ | 回滚 | `⏪ 回滚错误提交` |
| 🔖 | 版本标签 | `🔖 发布 v1.0.0` |
### 其他
| Emoji | 场景 | 示例 |
|-------|------|------|
| 🚧 | 进行中 | `🚧 实现角色对比功能` |
| 💚 | CI 修复 | `💚 修复构建失败` |
| 🚨 | 警告修复 | `🚨 消除编译器警告` |
| 👔 | 业务逻辑 | `👔 添加抽卡概率计算` |
| 🩺 | 健康检查 | `🩺 添加服务监控` |
| 🧐 | 数据检查 | `🧐 审查数据一致性` |
| 🛂 | 权限/授权 | `🛂 添加角色权限校验` |
| 🦺 | 验证 | `🦺 添加参数校验` |
| 🧵 | 多线程/并发 | `🧵 优化异步任务处理` |
| ✈️ | 离线支持 | `✈️ 提升离线体验` |
| 🦖 | 向后兼容 | `🦖 添加兼容性处理` |
| 💸 | 金钱相关 | `💸 优化资源加载成本` |
| 👽 | API 变更 | `👽 适配新版API` |
| 🚚 | 移动/重命名 | `🚚 迁移文件到新目录` |
| 📄 | 许可证 | `📄 添加 MIT 许可证` |
| 💥 | 重大变更 | `💥 重构核心模块` |
| 🍱 | 静态资源 | `🍱 更新应用图标` |
| ♿️ | 无障碍 | `♿️ 添加ARIA标签` |
| 🏷️ | 类型定义 | `🏷️ 完善类型定义` |
| 🚩 | 功能开关 | `🚩 添加灰度开关` |
| ⚗️ | 实验 | `⚗️ 尝试新方案` |
| 🔍 | SEO | `🔍 优化页面索引` |
| 🙈 | .gitignore | `🙈 更新gitignore规则` |
| 📸 | 快照 | `📸 添加截图` |
| 🥚 | 彩蛋 | `🥚 添加开发者彩蛋` |
| 🤡 | Mock | `🤡 添加mock数据` |
| 🍻 | 酒后代码 | `🍻 修复奇怪bug` |
| 💬 | 文本更新 | `💬 更新界面文案` |
| 👥 | 贡献者 | `👥 更新贡献者列表` |
## 提交示例
```
✨ 添加用户个人页面跳转功能
🐛 修复角色生日判断逻辑,优化返回结果
🩹 补充首页mini参数&组件参数处理
♻️ 重构数据库操作为事务模式
⚡️ 优化角色列表渲染性能
💄 调整深色模式配色方案
📝 添加组件使用文档
⬆️ 更新依赖版本,修复安全警告
🔧 更新 vite 配置以支持新插件
🚸 统一UIGF导出交互导出前选择导出路径
💫 添加页面转场动画效果
🐛 修复抽卡记录导出为空的问题
🏗️ 引入 Pinia 状态管理
🧑‍💻 优化热更新加载速度
```

View File

@@ -0,0 +1,125 @@
---
name: teyvat-guide
description: TeyvatGuide 项目 SKILL。处理 Vue+Tauri+TypeScript 项目开发包括组件开发、API 集成、SQLite 操作或代码规范。
---
# TeyvatGuide 项目规范
## 技术栈
- **前端**: Vue 3 (Composition API), TypeScript 6, Vuetify 4
- **桌面运行时**: Tauri 2 (Rust backend)
- **构建工具**: Vite 8
- **状态管理**: Pinia + persistedstate
- **数据库**: SQLite (via @tauri-apps/plugin-sql)
- **包管理器**: pnpm 10
## 代码风格
### 通用规则
| 规则 | 要求 |
|------|------|
| 语言 | 中文注释,英文代码 |
| 缩进 | 2 空格 |
| 引号 | 字符串用双引号Vue 模板用单引号 |
| 分号 | 必须 |
| 尾逗号 | ES5 风格 |
| 行长度 | ≤100 字符 |
### TypeScript 规范
> 详见 [typescript-standards skill](../typescript-standards/SKILL.md)
**枚举**: 使用 `const` 对象模式,禁止原生 `enum`
```typescript
// 正确
const GameServerEnum = <const>{
CN_GF01: "cn_gf01",
CN_QD01: "cn_qd01",
};
// 错误
enum GameServerEnum { ... }
```
**JSDoc**: 导出函数必须包含 `@since` 标签
```typescript
/**
* 函数描述
* @since Beta v0.9.6
* @param param - 参数描述
* @returns 返回描述
*/
```
**Import 顺序**: 1. 内置模块 2. 外部包 3. 别名 (@/*) 4. 相对导入
### Vue 规范
- 组件结构: Template → script → style
- 使用 `<script lang="ts" setup>` 语法
- 组件名用 PascalCase
- 样式用 SCSS遵循 stylelint 配置
## 路径别名
| 别名 | 路径 |
|------|------|
| `@/*` | `./src/*` |
| `@styles/*` | `./src/assets/styles/*` |
| `@comp/*` | `./src/components/*` |
| `@enum/*` | `./src/enum/*` |
| `@hooks/*` | `./src/hooks/*` |
| `@Bili/*` | `./src/plugins/Bili/*` |
| `@Hutao/*` | `./src/plugins/Hutao/*` |
| `@Mys/*` | `./src/plugins/Mys/*` |
| `@Sql/*` | `./src/plugins/Sqlite/*` |
| `@Sqlm/*` | `./src/plugins/Sqlite/modules/*` |
| `@req/*` | `./src/request/*` |
| `@store/*` | `./src/store/modules/*` |
| `@utils/*` | `./src/utils/*` |
## 数据库 (SQLite)
- 参数占位符: `$1, $2, $3...`(禁止 `?`
- 异步模式: 所有操作返回 Promise
```typescript
await db.execute(
`INSERT INTO Table(key, value, updated)
VALUES ($1, $2, datetime('now', 'localtime'))
ON CONFLICT(key) DO UPDATE SET value = $2, updated = datetime('now', 'localtime');`,
[key, value],
);
```
## 代码检查
```bash
pnpm lint # 运行所有检查
pnpm lint:fix # 自动修复
pnpm lint:vue # Vue 类型检查
pnpm lint:style # 样式检查
pnpm lint:rust:fix # Rust fmt
```
## Git 提交规范
> 详见 [git-commit-skill](../git-commit-skill/SKILL.md)
**格式**: `<emoji> <描述>`(一行 ≤100 字符,禁止 type: 声明)
```bash
git add <文件路径>
git commit -m "✨ 添加新功能"
```
## 注意事项
1. **禁止原生 enum** - 使用 const 对象模式
2. **erasableSyntaxOnly** - 应为 `true` 或移除
3. **jsx: preserve** - Vue 项目不需要 tsc 处理 jsx
4. **提交规范** - 每次修改后使用 gitmoji 风格提交

View File

@@ -0,0 +1,46 @@
---
name: "typescript-standards"
description: "TypeScript 开发规范,包含 Enum 定义和 TSDoc 注释规范。编写 TypeScript 代码时调用此技能。"
---
# TypeScript 开发规范
## 目录结构
```
src/types/<Module>/<Module>.d.ts # 类型定义 (.d.ts)
types/<Module>/<Module>.d.ts # 根目录类型定义
src/enum/<Module>.ts # 枚举常量 (.ts)
```
## 命名规范
| 类型 | 规范 | 示例 |
|------|------|------|
| Interface/Type | PascalCase | `UserProfile` |
| const 对象 | PascalCase | `NewsType` |
| type alias | PascalCase + Enum | `NewsTypeEnum` |
| enum 常量 | PascalCase + Enum | `PostNewsTypeEnum` |
| readonly 列表 | PascalCase + List | `PostNewsTypeList` |
| 描述函数 | camelCase + Desc | `getPostNewsTypeDesc` |
| 常量 | UPPER_SNAKE_CASE | `MAX_RETRY_COUNT` |
## 核心规则
1. **禁止原生 enum** - 使用 `const` 对象模式
2. **使用 `<const>` 断言** - 确保 readonly
3. **类型派生** - `(typeof Type)[keyof typeof Type]`
4. **JSDoc 注释** - 必须包含 `@since`,枚举还需 `@see`
5. **聚合导出** - 相关枚举分组在 default export 对象中
## 类型注解
- 函数参数和返回值必须显式类型注解
- 优先用 `type` 而非 `interface`
-`unknown` 而非 `any`
- 避免类型断言 (`as`)
## 详细规范
- Enum 定义:见 [enum.md](./enum.md)
- TSDoc 注释:见 [tsdoc.md](./tsdoc.md)

View File

@@ -0,0 +1,67 @@
# Enum 定义规范
## 类型定义 (.d.ts)
```typescript
declare namespace TGApp.BBS.Post {
const NewsType = <const>{
NOTICE: 1,
ACTIVITY: 2,
NEWS: 3,
};
type NewsTypeEnum = (typeof NewsType)[keyof typeof NewsType];
}
```
## 枚举常量 (.ts)
```typescript
const PostNewsTypeEnum: typeof TGApp.BBS.Post.NewsType = {
NOTICE: 1,
ACTIVITY: 2,
NEWS: 3,
};
```
注意:引用 `const` 对象类型 (`typeof TGApp.BBS.Post.NewsType`),而非 union type (`NewsTypeEnum`)
## 辅助工具
```typescript
// 只读列表
const PostNewsTypeList: ReadonlyArray<TGApp.BBS.Post.NewsTypeEnum> = [
PostNewsTypeEnum.NOTICE,
PostNewsTypeEnum.ACTIVITY,
PostNewsTypeEnum.NEWS,
];
// 描述函数
function getPostNewsTypeDesc(newsType: TGApp.BBS.Post.NewsTypeEnum): string {
switch (newsType) {
case PostNewsTypeEnum.NOTICE: return "公告";
case PostNewsTypeEnum.ACTIVITY: return "活动";
case PostNewsTypeEnum.NEWS: return "资讯";
}
}
```
## 聚合导出
```typescript
const bbsEnum = {
post: {
viewType: PostViewTypeEnum,
newsType: PostNewsTypeEnum,
},
};
export default bbsEnum;
```
## 核心规则
1. 使用 `<const>` 断言确保 readonly
2. 类型派生:`(typeof Type)[keyof typeof Type]`
3. JSDoc 必须包含 `@since``@see`
4. 枚举常量名与 .d.ts 中的 const 对象名一致

View File

@@ -0,0 +1,75 @@
# TSDoc 注释规范
## 支持的标签
`@example` `@link` `@param` `@remarks` `@returns` `@see` `@since` `@typeParam` `@deprecated`
## 必须标签
### `@since` - 版本信息
所有导出类型、函数、枚举必须包含:
```typescript
/**
* @since Beta v0.9.6
*/
function getCharacter(id: number): Character;
```
## 常用标签
| 标签 | 用途 |
|------|------|
| `@param name - 描述` | 参数说明 |
| `@returns 描述` | 返回值说明 |
| `@remarks 备注` | 备注说明 |
| `@see TGApp.BBS.Post.NewsType` | 参考引用 |
| `@example` | 用法示例 |
| `@deprecated` | 废弃标记 |
## 示例
```typescript
/**
* 获取角色信息
* @since Beta v0.9.6
* @param id - 角色 ID
* @returns 角色信息对象
* @throws {NotFoundError} 当角色不存在时
*/
function getCharacter(id: number): Character { ... }
/**
* 搜索结果返回数据
* @remarks token_list 和 databox 目前用途不明
*/
type SearchRes = { ... };
```
## 类型定义文件 (.d.ts)
```typescript
declare namespace TGApp.BBS.Post {
/**
* 咨讯类型
* @since Beta v0.9.1
*/
const NewsType = <const>{
NOTICE: 1,
ACTIVITY: 2,
NEWS: 3,
};
}
```
## 内联成员注释
```typescript
type TGHttpParams = {
/** 请求方法 */
method: "GET" | "POST";
/** 请求头 */
headers?: Record<string, string>;
};
```

View File

@@ -2,12 +2,166 @@
Author: 目棃
Description: CHANGELOG
Date: 2025-09-09
Update: 2025-12-20
Update: 2026-03-13
---
> 本文档 [`Frontmatter`](https://github.com/BTMuli/MuCli#Frontmatter) 由 [MuCli](https://github.com/BTMuli/Mucli) 自动生成于 `2025-09-09 14:30:56`
>
> 更新于 `2025-12-20 16:14:28`
> 更新于 `2026-03-13 13:41:58`
## [0.9.8](https://github.com/BTMuli/TeyvatGuide/releases/v0.9.8) (2026-03-13)
- 🍱 更新下半卡池数据
- 🐛 处理UI框架升级导致的分享图生成异常
- 🐛 修复采用ck登录后本地ck未同步更新
- ✏️ 修正深渊最深抵达描述计算逻辑
-大幅提升UIGF导入速度 [`#222`](https://github.com/BTMuli/TeyvatGuide/issues/222)
- ✨ 角色列表页展示当前筛选&排序
- ✨ 定时检测版本更新并提醒 [`#231`](https://github.com/BTMuli/TeyvatGuide/issues/231)
- 🔒️ 调整用户数据目录选取&旧目录删除处理,增加子目录检测&二次确认 [`#228`](https://github.com/BTMuli/TeyvatGuide/issues/228)
- 🚸 导入胡桃深渊/剧诗/危战数据前进行提示
- 🚸 设置页刷新信息允许仅刷新Cookie而不刷新游戏账号
- 🚸 搜索框增加清空按钮,并进行对应适配处理
- 🚸 完善非回正模式下的窗口位置&大小处理 [`#199`](https://github.com/BTMuli/TeyvatGuide/pull/199) [`#223`](https://github.com/BTMuli/TeyvatGuide/pull/223)
- 🚸 实用脚本支持一键执行多账号 by [HLFromZ](https://github.com/BTMuli/TeyvatGuide/pull/227)
- 🚸 角色列表页新增`等级>=70`筛选 [`#229`](https://github.com/BTMuli/TeyvatGuide/issues/229)
- 🚸 角色列表页新增满好感筛选
- 🚸 处理帖子标题为空时的渲染&事件
- 🚸 调整部分图片缓存策略
- 🚸 增加个人主页&合集主页的外部跳转
- 💄 优化调整多处样式 [`#221`](https://github.com/BTMuli/TeyvatGuide/issues/221)
- 💄 调整展开后的侧边栏宽度
- 💄 自定义表情调整浮窗信息显示逻辑优化自定义表情label显示判断
## [0.9.7](https://github.com/BTMuli/TeyvatGuide/releases/v0.9.7) (2026-02-26)
- 🐛 修复脚本页面账号切换异常
- 🚸 调整游戏安装目录选取逻辑,调整大小写处理 [`#219`](https://github.com/BTMuli/TeyvatGuide/issues/219)
- 💄 替换部分侧边栏图标
- 💄 调整浅色模式下滚动条可见度
- 💄 调整部分页面UI
## [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)
- ✨ 自动更新 Cookie [`#197`](https://github.com/BTMuli/TeyvatGuide/issues/197)
- 🐛 修复祈愿页面检测数据更新异常
- 🐛 修复特定情况下生成剧诗分享图时应用白屏
- 🐛 修复首页活动奖励点击异常
- 🐛 上传深渊记录时更新角色列表,以修复 `511001` 异常
- 🐛 调整五星 UP 判断逻辑,修复特定数据 UP 判断异常
- 🐛 修复微软应用商店版本材料&成就导入异常 [`#206`](https://github.com/BTMuli/TeyvatGuide/issues/206)
- 🚸 `loading` 组件随机加载图标
- 🚸 隐藏完成成就支持隐藏成就系列 [`#205`](https://github.com/BTMuli/TeyvatGuide/issues/205)
- 🚸 调整首页部分图片缓存策略
- 🚸 调整成就排序&搜索逻辑
- 🚸 添加用户反馈显示控制入口
- 🥅 修复文本放缩比读取异常,注册表不存在时返回 1.0
- ♻️ 祈愿页面导入功能合并,仅显示一个导入按钮
- 💄 深渊支持单楼层分享,剧诗支持单幕分享
## [0.9.1](https://github.com/BTMuli/TeyvatGuide/releases/v0.9.1) (2026-01-14)
- 🍱 元数据更新6.3版本资源
- 🍱 元数据:精简部分材料来源描述
- 🍱 元数据:增加元素描述,如 `丝柯克``蛇之七变 冰`(修改前为`神之眼 冰`
- 🍱 元数据:增加 `埃洛伊` `奇偶` 的红色背景并进行相应处理 [`#198`](https://github.com/BTMuli/TeyvatGuide/issues/198)
- ✏️ 修正文本,`咨讯``资讯`,感谢 [`@LuoYunXi0407`](https://github.com/LuoYunXi0407)
- ✨ 祈愿页面:过往祈愿支持查看抽卡记录,更新图源以提升加载速度 [`#188`](https://github.com/BTMuli/TeyvatGuide/issues/188)
- ✨ 背包物品:新增货币数据获取,支持删除记录
- ✨ 角色列表页面:重构筛选逻辑,增加 `等级`/`好感`/`命座` 排序
- ✨ 窗口回正增加文本放缩处理 [`#192`](https://github.com/BTMuli/TeyvatGuide/issues/192)
- ✨ 引入 [Sentry](https://sentry.io) 用于分析应用崩溃/异常,同步更新隐私政策
- ✨ 增加衣装相关资源 [`#190`](https://github.com/BTMuli/TeyvatGuide/issues/190)并在 `角色列表`/`角色图鉴` 进行展示。
- ✨ 胡桃深渊数据库回归,剧诗概览回归
- ✨ 支持通过命令行调用 [`#195`](https://github.com/BTMuli/TeyvatGuide/issues/195)
- ✨ 支持胡桃云账号 `登录`/`密码重置` 等操作,支持胡桃云祈愿记录 `上传`/`下载`/`删除` [`#202`](https://github.com/BTMuli/TeyvatGuide/issues/202)
- 🐛 修复程序最小化时托盘点击异常
- 🐛 修复 wcag-color 无法对比 keyword 导致的渲染异常
- 🐛 修复特定情况下管理员模式判断异常 [`#189`](https://github.com/BTMuli/TeyvatGuide/issues/189)
- 🐛 修复从网络图更新到本地图导致的渲染异常
- 🐛 尝试修复托盘图标初始化异常
- 🐛 重构首页组件加载逻辑,存储中间值,增加登录态判断 [`#200`](https://github.com/BTMuli/TeyvatGuide/issues/200)
- 🐛 修复通过 ck 登录没有即时刷新登录态
- 🐛 修复特定情况下 UAC 调用异常
- 🐛 补充缺失权限,修复浏览器跳转异常
- 🐛 修复数据库重置异常
- 🐛 修复部分帖子获取内容异常
- 🐛 修复修改分享阈值点击取消时的取值异常 [`#203`](https://github.com/BTMuli/TeyvatGuide/issues/203)
- 🐛 尝试修复调用内置 YAE 时特定条件下的匹配异常
- 🚸 重构侧边栏账号切换逻辑,降低交互次数
- 🚸 移除ck复制的确认浮窗
- 🚸 管理员模式下侧边栏启动使用YAE导入
- 🚸 背包物品页面:新增 `最近更新`/`最多数量`/`最少数量` 排序,调整默认排序逻辑,优化搜索处理 [`#196`](https://github.com/BTMuli/TeyvatGuide/issues/196)
- 🚸 修正月谕圣牌下的星章计算逻辑
- 🚸 调整Hakushi获取逻辑
- 🚸 首页组件:已完成活动置后,调整完成判断逻辑
- 🚸 调整部分弹窗提示 [`#201`](https://github.com/BTMuli/TeyvatGuide/issues/201)
- 🚸 调用内置 YAE 时检测本地游戏版本
- 💄 帖子详情:调整投票组件样式
- 💄 首页组件:调整首页生日组件交互
- 💄 首页签到组件:根据签到状态调整图标&文本
- 💄 角色列表页面:角色卡片显示等级
- 💄 幽境危战页面:调整顶部布局
- 💄 帖子组件:增加自定义表情 tag 在浅色模式下的清晰度
- 💄 设置页面:调整 `刷新页面设备信息` 交互
- 🌐 公告页面:处理国际化
- ♻️ 重构留影叙佳期页面,处理部分文本加载异常
- ♻️ 统一 UID 选取逻辑
- ♻️ 重构 WIKI 筛选组件筛选逻辑
- ♻️ 重构游戏启动逻辑,修复特定条件下的启动失败
## [0.9.0](https://github.com/BTMuli/TeyvatGuide/releases/v0.9.0) (2025-12-20)
@@ -35,4 +189,4 @@ Update: 2025-12-20
- 💄 多页面顶部样式调整,更为统一
- 💄 首页近期活动组件奖励支持查看角色/武器奖励
- 💄 首页近期活动组件奖励材料奖励支持查看已有数量
- 💄 材料图鉴 UI 改版
- 💄 材料图鉴 UI 改版

View File

@@ -2,18 +2,18 @@
Author: 目棃
Description: 说明文档
Date: 2023-03-05
Update: 2025-12-03
Update: 2026-03-13
---
> 本文档 [`Frontmatter`](https://github.com/BTMuli/MuCli#Frontmatter) 由 [MuCli](https://github.com/BTMuli/Mucli) 自动生成于 `2023-03-05 14:41:55`
>
> 更新于 `2025-12-03 10:22:51`
> 更新于 `2026-03-13 13:46:30`
[![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,8 @@ 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] 帖子收藏
- [x] 帖子评论查看&分享
@@ -63,13 +64,12 @@ Game Tool for Genshin Impact player, supports Windows and macOS.
> 支持 扫码/验证码/Cookie 登陆,支持多账号管理
- [x] 近期活动(首页组件)
- [x] 游戏签到(首页组件)
- [x] 原神战绩
- [x] 角色详情
- [x] 螺旋深渊
- [x] 真境剧诗
- [x] 幽境危战
- [x] 高难挑战(深境螺旋/真境剧诗/幽境危战)
- [x] 祈愿数据获取(近一年)
- [x] 千星奇域愿数据获取(近一年)
- [x] 千星奇域愿数据获取(近一年)
- [x] 用户收藏帖子获取
- [x] 用户关注帖子获取
- [x] 一键完成米游币每日任务
@@ -84,13 +84,12 @@ Game Tool for Genshin Impact player, supports Windows and macOS.
- 应用功能:
- [x] 浅色/深色主题切换
- [x] 米游社 JSBridge
- [x] 终端命令行调用
- [x] 支持胡桃云
## 贡献者 / Contributors
- [BTMuli](https://github.com/BTMuli)
- [舰队的偶像岛风酱!](https://github.com/frg2089)
- [jerry765](https://github.com/jerry765)
- [AuroraZiling](https://github.com/AuroraZiling)
[Contributors](https://github.com/BTMuli/TeyvatGuide/graphs/contributors)
## UI 参考 / UI Reference
@@ -127,6 +126,7 @@ Game Tool for Genshin Impact player, supports Windows and macOS.
- [Artplayer](https://artplayer.org/):用于米游社帖子视频播放解析
- [Echarts](https://echarts.apache.org/zh/index.html):用于祈愿概览图生成
- [Html2Canvas](https://github.com/niklasvh/html2canvas):用于分享图生成
- [Sentry](https://github.com/getsentry/sentry):用于收集应用崩溃信息
## 协议 / License
@@ -136,6 +136,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

@@ -1,22 +1,24 @@
#!/bin/bash
printf '\e[8;45;65t'
clear
BLACK="\033[0;30m"
DARK_GRAY="\033[1;30m"
BLUE="\033[0;34m"
# Color
#BLACK="\033[0;30m"
#DARK_GRAY="\033[1;30m"
#BLUE="\033[0;34m"
LIGHT_BLUE="\033[1;34m"
GREEN="\033[0;32m"
#GREEN="\033[0;32m"
LIGHT_GREEN="\033[1;32m"
CYAN="\033[0;36m"
LIGHT_CYAN="\033[1;36m"
#CYAN="\033[0;36m"
#LIGHT_CYAN="\033[1;36m"
RED="\033[0;31m"
LIGHT_RED="\033[1;31m"
PURPLE="\033[0;35m"
LIGHT_PURPLE="\033[1;35m"
BROWN="\033[0;33m"
YELLOW="\033[0;33m"
LIGHT_GRAY="\033[0;37m"
WHITE="\033[1;37m"
#PURPLE="\033[0;35m"
#LIGHT_PURPLE="\033[1;35m"
#BROWN="\033[0;33m"
#YELLOW="\033[0;33m"
#LIGHT_GRAY="\033[0;37m"
#WHITE="\033[1;37m"
NC="\033[0m"
appName="TeyvatGuide.app"

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

@@ -22,7 +22,7 @@ Update: 2025-11-19
- 顶部收缩按钮:`mdi:chevron-right` `mdi:chevron-left`
- 首页:米游社网页活动图标
- 公告:个人绘制 SVG
- 讯:[米游社](https://www.miyoushe.com)
- 讯:[米游社](https://www.miyoushe.com)
- 成就:个人绘制 SVG
- 原神战绩Hoyolab
- 我的角色Hoyolab

View File

@@ -1,8 +1,8 @@
/**
* @file eslint.config.mjs
* @description 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";
@@ -12,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",
@@ -28,8 +28,8 @@ export default [
"src/data/**/*.json",
"src-tauri/tauri.conf.json",
"src-tauri/**/*.json",
"qodana.yaml",
"node_modules",
".github",
],
},
];
]);

View File

@@ -1,11 +1,10 @@
/**
* @file eslint/jsonEslint.js
* @description JSON相关的ESLint配置
* @since Beta v0.7.7
* JSON 文件的 ESLint 配置
* @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"],
@@ -63,7 +62,7 @@ const tscJsonConfig = {
};
const jsoncConfig = {
files: ["source/data/out/**/*.json", ".vscode/**/*.json"],
files: ["source/data/out/**/*.json", ".vscode/**/*.json", "./tsdoc.json"],
plugins: { jsonc: pluginJsonc },
languageOptions: { parser: parserJsonc },
rules: {

View File

@@ -1,11 +1,11 @@
/**
* @file eslint/vueEslint.js
* @description Vue相关的ESLint配置
* @since Beta v0.8.0
* Vue & Typescript 文件的 Eslint 配置
* @since Beta v0.9.1
*/
import pluginImport from "eslint-plugin-import";
import pluginPrettier from "eslint-plugin-prettier";
import pluginVue from "eslint-plugin-vue";
import pluginTsDoc from "eslint-plugin-tsdoc";
import globals from "globals";
import eslintTs from "typescript-eslint";
import parserVue from "vue-eslint-parser";
@@ -17,6 +17,8 @@ const tsConfigRules = {
"@typescript-eslint/strict-boolean-expressions": "off",
"@typescript-eslint/no-explicit-any": "off",
"@typescript-eslint/no-unused-expressions": ["error", { allowShortCircuit: false }],
"@typescript-eslint/array-type": ["error", { default: "generic" }],
"@typescript-eslint/consistent-type-definitions": ["error", "type"],
"import/order": [
"error",
{
@@ -30,19 +32,33 @@ const tsConfigRules = {
const tsConfig = {
files: ["*.ts", "*.d.ts", "src/**/*.ts", "src/**/*.d.ts"],
plugins: { typescript: eslintTs, import: pluginImport, prettier: pluginPrettier },
plugins: {
typescript: eslintTs,
import: pluginImport,
prettier: pluginPrettier,
tsdoc: pluginTsDoc,
},
languageOptions: {
parser: eslintTs.parser,
parserOptions: { project: "tsconfig.json", tsconfigRootDir: appRootPath.path },
},
rules: tsConfigRules,
rules: {
...tsConfigRules,
"tsdoc/syntax": "warn",
},
};
const vueConfig = {
files: ["src/**/*.vue", "src/App.vue"],
plugins: { vue: pluginVue, import: pluginImport, prettier: pluginPrettier },
languageOptions: {
globals: { ...globals.browser, ...globals.es2021, TGApp: "readonly", window: "readonly" },
globals: {
...globals.browser,
...globals.es2021,
TGApp: "readonly",
window: "readonly",
proEnv: "readonly",
},
ecmaVersion: "latest",
sourceType: "module",
parser: parserVue,

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,14 +1,14 @@
{
"name": "teyvatguide",
"version": "0.9.0",
"version": "0.9.8",
"description": "Game Tool for GenshinImpact player",
"private": true,
"packageManager": "pnpm@10.26.0",
"packageManager": "pnpm@10.32.1",
"type": "module",
"scripts": {
"build": "tauri build",
"debug": "tauri build --debug",
"dev": "tauri dev --exit-on-panic",
"build": "tsx scripts/auto-build.ts",
"debug": "tsx scripts/auto-build.ts su --debug",
"dev": "tsx scripts/auto-dev.ts",
"eslint:pre": "pnpx @eslint/config-inspector@latest",
"oxlint": "oxlint",
"lint": "concurrently \"pnpm:lint:*(!fix)\"",
@@ -70,82 +70,94 @@
"doc": "docs"
},
"dependencies": {
"@date-fns/tz": "^1.4.1",
"@mdi/font": "7.4.47",
"@tauri-apps/api": "^2.9.1",
"@tauri-apps/plugin-deep-link": "^2.4.5",
"@tauri-apps/plugin-dialog": "^2.4.2",
"@tauri-apps/plugin-fs": "^2.4.4",
"@tauri-apps/plugin-http": "github:tauri-apps/tauri-plugin-http",
"@tauri-apps/plugin-log": "^2.7.1",
"@tauri-apps/plugin-opener": "^2.5.2",
"@sentry/core": "^10.45.0",
"@sentry/vite-plugin": "^5.1.1",
"@sentry/vue": "^10.45.0",
"@skipperndt/plugin-machine-uid": "^0.1.3",
"@tauri-apps/api": "^2.10.1",
"@tauri-apps/plugin-cli": "^2.4.1",
"@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.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-shell": "^2.3.3",
"@tauri-apps/plugin-sql": "^2.3.1",
"ajv": "^8.17.1",
"artplayer": "^5.3.0",
"@tauri-apps/plugin-sql": "^2.3.2",
"ajv": "^8.18.0",
"artplayer": "^5.4.0",
"colord": "^2.9.3",
"date-fns": "^4.1.0",
"echarts": "^6.0.0",
"html2canvas": "^1.4.1",
"js-md5": "^0.8.3",
"jsencrypt": "^3.5.4",
"json-bigint": "^1.0.0",
"pinia": "^3.0.4",
"pinia-plugin-persistedstate": "^4.7.1",
"qrcode.vue": "^3.6.0",
"sass-embedded": "^1.97.0",
"swiper": "^12.0.3",
"qrcode.vue": "^3.8.0",
"rsa-oaep-encryption": "^1.1.0",
"sass-embedded": "^1.98.0",
"swiper": "^12.1.3",
"uuid": "^13.0.0",
"vue": "^3.5.26",
"vue": "^3.5.30",
"vue-echarts": "^8.0.1",
"vue-json-pretty": "^2.6.0",
"vue-router": "^4.6.4",
"vuetify": "^3.11.4",
"wcag-color": "^1.1.1",
"xml-js": "^1.6.11"
"vue-router": "^5.0.4",
"vuetify": "^4.0.4",
"wcag-color": "^1.1.1"
},
"devDependencies": {
"@btmuli/stylelint-plugin-color": "^0.1.0",
"@eslint/eslintrc": "^3.3.3",
"@eslint/js": "^9.39.2",
"@tauri-apps/cli": "2.9.6",
"@eslint/eslintrc": "^3.3.5",
"@eslint/js": "9.39.2",
"@microsoft/tsdoc": "^0.16.0",
"@tauri-apps/cli": "2.10.1",
"@types/fs-extra": "^11.0.4",
"@types/js-md5": "^0.8.0",
"@types/node": "^25.0.3",
"@typescript-eslint/parser": "^8.50.0",
"@typescript/native-preview": "7.0.0-dev.20251218.1",
"@vitejs/plugin-vue": "^6.0.3",
"@types/json-bigint": "^1.0.4",
"@types/node": "^25.5.0",
"@typescript-eslint/parser": "^8.57.2",
"@vitejs/plugin-vue": "^6.0.5",
"app-root-path": "^3.1.0",
"concurrently": "^9.2.1",
"eslint": "^9.39.2",
"envfile": "^7.1.0",
"eslint": "9.39.2",
"eslint-plugin-import": "^2.32.0",
"eslint-plugin-jsonc": "^2.21.0",
"eslint-plugin-prettier": "^5.5.4",
"eslint-plugin-vue": "^10.6.2",
"eslint-plugin-yml": "^1.19.1",
"fs-extra": "^11.3.3",
"globals": "^16.5.0",
"eslint-plugin-jsonc": "^3.1.2",
"eslint-plugin-prettier": "^5.5.5",
"eslint-plugin-tsdoc": "^0.5.2",
"eslint-plugin-vue": "^10.8.0",
"eslint-plugin-yml": "^3.3.1",
"fs-extra": "^11.3.4",
"globals": "^17.4.0",
"husky": "^9.1.7",
"jsonc-eslint-parser": "^2.4.2",
"lint-staged": "^16.2.7",
"oxlint": "^1.34.0",
"postcss-preset-env": "^10.5.0",
"prettier": "3.7.4",
"stylelint": "^16.26.1",
"jsonc-eslint-parser": "^3.1.0",
"lint-staged": "16.4.0",
"oxlint": "^1.57.0",
"postcss-preset-env": "^11.2.0",
"prettier": "3.8.1",
"stylelint": "^17.5.0",
"stylelint-config-idiomatic-order": "^10.0.0",
"stylelint-config-standard-scss": "^16.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-order": "^7.0.0",
"stylelint-declaration-block-no-ignored-properties": "^3.0.0",
"stylelint-high-performance-animation": "^2.0.0",
"stylelint-order": "^8.1.1",
"stylelint-prettier": "^5.0.3",
"stylelint-scss": "^6.13.0",
"stylelint-scss": "^7.0.0",
"tsx": "^4.21.0",
"typescript": "^5.9.3",
"typescript-eslint": "^8.50.0",
"vite": "npm:rolldown-vite@^7.3.0",
"vite-plugin-vue-devtools": "^8.0.5",
"vite-plugin-vuetify": "^2.1.2",
"vue-eslint-parser": "^10.2.0",
"vue-tsc": "^3.1.8",
"yaml-eslint-parser": "^1.3.2"
"typescript": "^6.0.2",
"typescript-eslint": "^8.57.2",
"vite": "^8.0.2",
"vite-plugin-vue-devtools": "^8.1.1",
"vite-plugin-vuetify": "^2.1.3",
"vue-eslint-parser": "^10.4.0",
"vue-tsc": "^3.2.6",
"yaml-eslint-parser": "^2.0.0"
}
}

5879
pnpm-lock.yaml generated

File diff suppressed because it is too large Load Diff

BIN
public/UI/app/empty.webp Normal file

Binary file not shown.

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

BIN
public/UI/app/loading.webp Normal file

Binary file not shown.

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

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

BIN
public/UI/nav/subSign.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

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

BIN
public/UI/nav/userBag.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 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: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 99 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 122 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 212 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 135 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 124 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 148 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 276 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

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