Genshin Wish Export:基于Electron的跨平台祈愿数据分析系统架构
Genshin Wish Export:基于Electron的跨平台祈愿数据分析系统架构
【免费下载链接】genshin-wish-exportEasily export the Genshin Impact wish record.项目地址: https://gitcode.com/GitHub_Trending/ge/genshin-wish-export
技术架构与实现原理
Genshin Wish Export 是一个采用现代Web技术栈构建的跨平台桌面应用,专门用于提取和分析《原神》游戏中的祈愿历史数据。该系统基于Electron框架,结合Vue 3前端架构,实现了游戏数据抓取、本地存储和多语言支持等核心功能。
系统架构设计
该工具采用典型的前后端分离架构,主进程负责系统级操作和数据处理,渲染进程管理用户界面。核心模块包括:
- 数据获取层:通过游戏日志解析和HTTP代理两种方式获取认证密钥
- 数据处理层:实现数据清洗、合并和本地持久化存储
- 展示层:基于Vue 3和ECharts提供可视化数据分析界面
- 配置管理层:支持多账号管理和国际化配置
技术栈选择依据
从package.json文件可以看出,项目选择了以下关键技术组件:
{ "devDependencies": { "electron": "^16.0.7", "vue": "^3.2.29", "vite": "2.7.13", "echarts": "^5.2.2", "element-plus": "^1.3.0-beta.7", "tailwindcss": "^3.0.16" } }Electron作为跨平台桌面应用框架,提供了系统API访问能力。Vue 3的组合式API配合Vite构建工具,确保了开发效率和运行时性能。ECharts负责数据可视化,而Element Plus和Tailwind CSS则共同构建了现代化UI界面。
部署与开发环境配置
环境依赖管理
项目使用Yarn作为包管理器,支持多平台构建。开发环境配置通过以下命令完成:
# 克隆项目仓库 git clone https://gitcode.com/GitHub_Trending/ge/genshin-wish-export cd genshin-wish-export # 安装依赖模块 yarn install # 启动开发服务器 yarn dev构建配置策略
构建系统支持多种目标平台的打包需求:
# 构建Windows 32位版本 yarn build:win32 # 构建Windows 64位版本 yarn build:win64 # 构建Linux版本 yarn build:linux # 构建macOS版本 yarn build:mac每个构建目标都采用相同的代码库,通过环境变量和构建参数适配不同平台特性。项目配置在package.json的build字段中定义,包括应用标识符、输出目录结构和平台特定设置。
核心功能模块解析
数据获取机制
系统实现了两种数据获取方式,确保在不同环境下的兼容性:
- 日志解析模式:直接读取游戏客户端生成的日志文件,提取API请求所需的认证信息
- 代理拦截模式:建立本地HTTP代理服务,捕获游戏客户端与服务器的通信数据
这两种方式都位于src/main/module/目录下的专用模块中。node-mitmproxy.js实现了代理功能,而system-proxy.js处理系统代理配置。
数据存储与处理
所有获取的祈愿数据保存在应用的用户数据目录中,采用JSON格式进行序列化。数据处理流程包括:
- 数据验证:使用JSON Schema验证数据结构的完整性
- 数据合并:新获取的数据与本地历史记录智能合并,避免重复
- 统计分析:计算各祈愿类型的概率分布和保底机制
多语言支持架构
国际化系统采用JSON文件存储翻译内容,支持13种语言版本:
src/i18n/ ├── Deutsch.json ├── English.json ├── Español.json ├── Français.json ├── Indonesia.json ├── Português.json ├── Pусский.json ├── Tiếng Việt.json ├── ภาษาไทย.json ├── 日本語.json ├── 简体中文.json ├── 繁體中文.json └── 한국어.json每个语言文件包含完整的界面文本翻译,支持动态切换。翻译系统通过src/main/i18n.js模块进行管理,确保界面文本的实时更新。
数据可视化组件
可视化系统基于ECharts库构建,提供三种祈愿类型的饼图展示:
上图展示了中文版本的数据分析界面,包含角色活动祈愿、常驻祈愿和新手祈愿三个独立的数据面板。每个面板显示对应祈愿类型的统计信息,包括总抽数、各星级分布比例、历史记录和平均出货次数。
英文版本界面采用相同的布局和功能设计,仅界面文本进行了本地化适配。这种设计确保了不同语言用户获得一致的功能体验。
数据格式与标准化
本地数据存储格式
系统使用自定义的JSON格式存储祈愿数据,结构定义在src/schema/local-data.json中。该格式包含完整的祈愿记录元数据和详细条目信息。
UIGF标准兼容性
项目支持统一祈愿数据格式(UIGF)标准,目前兼容UIGF 3.0和4.1两个版本。相关Schema文件位于src/schema/目录下,确保与其他《原神》数据分析工具的互操作性。
数据导出功能
系统提供多种数据导出格式:
- Excel格式:便于用户进行进一步的数据分析和分享
- UIGF标准格式:用于与其他工具的数据交换
- JSON原始格式:用于数据备份和迁移
Excel导出功能通过src/main/excel.js模块实现,使用exceljs库生成格式化的电子表格文件。
系统集成与扩展
模块化架构设计
项目采用清晰的模块化结构,便于功能扩展和维护:
src/main/ ├── module/ # 核心功能模块 ├── update/ # 更新相关功能 ├── config.js # 配置管理 ├── getData.js # 数据获取逻辑 ├── i18n.js # 国际化支持 └── utils.js # 工具函数每个模块职责单一,通过主入口文件src/main/main.js进行协调。这种设计便于独立测试和功能扩展。
配置管理系统
配置管理模块支持用户自定义设置,包括:
- 数据存储路径配置
- 代理服务器设置
- 界面主题偏好
- 语言选择设置
所有配置都保存在用户数据目录中,确保应用重启后配置的持久性。
性能优化与维护
构建优化策略
项目采用Vite作为构建工具,相比传统Webpack具有更快的构建速度和更优的开发体验。构建配置支持代码分割和按需加载,减少应用启动时的资源加载时间。
内存管理机制
由于祈愿数据可能包含大量历史记录,系统实现了高效的内存管理策略:
- 分页加载历史数据
- 数据压缩存储
- 增量更新机制
错误处理与日志
系统包含完善的错误处理机制,包括:
- 网络请求异常处理
- 数据解析错误恢复
- 用户操作错误提示
所有错误信息都通过统一的日志系统记录,便于问题诊断和系统维护。
开发指南与贡献流程
开发环境搭建
开发者需要安装Node.js 16+和Yarn包管理器。项目使用标准的Node.js开发工作流,支持热重载和实时调试。
代码贡献规范
项目遵循以下代码质量要求:
- 使用ESLint进行代码风格检查
- 遵循Vue 3组合式API的最佳实践
- 保持模块间的低耦合度
测试策略
虽然没有专门的测试套件,但项目通过以下方式确保代码质量:
- 手动功能测试
- 跨平台兼容性验证
- 数据格式兼容性检查
技术挑战与解决方案
跨平台兼容性
Electron框架虽然提供了跨平台能力,但在不同操作系统上仍存在差异。项目通过以下方式解决兼容性问题:
- 路径处理:使用Node.js的path模块处理不同操作系统的文件路径
- 系统API适配:针对Windows、macOS和Linux分别处理系统级操作
- 构建配置调整:为每个平台定制构建参数和资源文件
数据安全与隐私
考虑到用户游戏数据的安全性,系统采用以下安全措施:
- 本地存储:所有数据仅在用户设备本地存储,不上传任何信息到远程服务器
- 数据加密:敏感信息在存储时进行适当加密处理
- 访问控制:限制对系统文件的直接访问权限
性能优化
针对大量祈愿数据的处理需求,系统实施了多项性能优化:
- 数据索引:为频繁查询的数据字段建立内存索引
- 懒加载:界面组件和数据按需加载
- 缓存机制:重复计算的结果进行缓存,减少CPU使用
未来发展方向
技术演进规划
项目计划在以下技术方向进行持续改进:
- TypeScript迁移:逐步将JavaScript代码迁移到TypeScript,提高代码可维护性
- 测试覆盖:增加单元测试和集成测试覆盖率
- 性能监控:集成性能分析工具,持续优化用户体验
功能扩展路线
基于用户反馈和技术发展趋势,计划增加以下功能:
- 数据分析算法增强:引入更复杂的数据分析模型
- 云同步支持:可选的数据云端备份和同步功能
- API开放:提供外部应用集成接口
总结
Genshin Wish Export 展示了如何将现代Web技术应用于桌面应用开发,为游戏数据分析提供了专业的技术解决方案。通过合理的架构设计、模块化开发和跨平台支持,该项目为《原神》玩家提供了可靠的数据管理工具,同时也为类似应用开发提供了可参考的技术实现方案。
系统的技术实现充分考虑了实际应用场景的需求,在数据安全、性能优化和用户体验之间取得了良好平衡。开源项目的持续维护和社区参与确保了系统的长期可用性和功能完善。
【免费下载链接】genshin-wish-exportEasily export the Genshin Impact wish record.项目地址: https://gitcode.com/GitHub_Trending/ge/genshin-wish-export
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
