mirror of
https://github.com/earthjasonlin/zzz-signal-search-export.git
synced 2025-04-11 19:20:19 +08:00
Compare commits
22 Commits
v1.1.2
...
e74f561ce5
Author | SHA1 | Date | |
---|---|---|---|
e74f561ce5
|
|||
9738b41372
|
|||
2d0a5d38bb
|
|||
16e01b7a13
|
|||
8f492376a0
|
|||
0642c52db2
|
|||
af256fba7d
|
|||
6599fbe6d3
|
|||
a99959e6e5
|
|||
c9c92da926
|
|||
fcff120657
|
|||
0ec7cb7c4f
|
|||
5a3159d4cb
|
|||
38b99bf4dc
|
|||
0cd9c071d7
|
|||
bf582d0194
|
|||
5dec6a8273
|
|||
0e429a4762
|
|||
5164a17dca
|
|||
a660c03bb5
|
|||
d7457f2bfb
|
|||
223ab899e0
|
10
README.md
10
README.md
@ -6,7 +6,7 @@
|
||||
|
||||
一个使用 Electron 制作的小工具,需要在 Windows 操作系统上运行。
|
||||
|
||||
通过读取游戏日志或者代理模式获取访问游戏跃迁记录 API 所需的 authKey,然后再使用获取到的 authKey 来读取游戏跃迁记录。
|
||||
通过读取游戏日志或者代理模式获取访问游戏调频记录 API 所需的 authKey,然后再使用获取到的 authKey 来读取游戏调频记录。
|
||||
|
||||
## 其它语言
|
||||
|
||||
@ -15,7 +15,7 @@
|
||||
## 使用说明
|
||||
|
||||
1. 下载工具后解压 - 下载地址: [GitHub](https://github.com/earthjasonlin/zzz-signal-search-export/releases/latest/download/ZzzSignalSearchExport.zip) / [123云盘](https://www.123pan.com/s/Vs9uVv-ShhE.html) / [蓝奏云(密码:zzzz)](https://www.lanzouh.com/b00eewtvxa)
|
||||
2. 打开游戏的跃迁详情页面
|
||||
2. 打开游戏的调频详情页面
|
||||
|
||||

|
||||
|
||||
@ -34,7 +34,11 @@
|
||||
|
||||
如果需要导出多个账号的数据,可以点击旁边的加号按钮。
|
||||
|
||||
然后游戏切换的新账号,再打开跃迁历史记录,工具再点击“加载数据”按钮。
|
||||
然后游戏切换的新账号,再打开调频历史记录,工具再点击“加载数据”按钮。
|
||||
|
||||
## Stargazers over time
|
||||
|
||||
[](https://starchart.cc/earthjasonlin/zzz-signal-search-export)
|
||||
|
||||
## Devlopment
|
||||
|
||||
|
@ -6,7 +6,7 @@ This project is modified from the [star-rail-warp-export](https://github.com/biu
|
||||
|
||||
A tool made from Electron that runs on the Windows operating system.
|
||||
|
||||
Read the game log or proxy to get the authKey needed to access the game warp history API, and then use the authKey to read the game wish history.
|
||||
Read the game log or proxy to get the authKey needed to access the game signal search history API, and then use the authKey to read the game wish history.
|
||||
|
||||
## Other languages
|
||||
|
||||
@ -18,7 +18,7 @@ If you feel that the existing translation is inappropriate, you can send a pull
|
||||
|
||||
1. Unzip after downloading the tool - [GitHub](https://github.com/earthjasonlin/zzz-signal-search-export/releases/latest/download/ZzzSignalSearchExport.zip)
|
||||
|
||||
2. Open the warp details page of the game
|
||||
2. Open the signal search details page of the game
|
||||
|
||||

|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "zzz-signal-search-export",
|
||||
"version": "1.1.2",
|
||||
"version": "1.1.11",
|
||||
"autoUpdateActive": true,
|
||||
"autoUpdateFrom": "1.1.0",
|
||||
"main": "./dist/electron/main/main.js",
|
||||
@ -110,7 +110,7 @@
|
||||
"tailwindcss": "^3.0.16",
|
||||
"vite": "2.7.13",
|
||||
"vue": "^3.2.29",
|
||||
"winreg": "^1.2.4",
|
||||
"winreg": "1.2.4",
|
||||
"yauzl": "^2.10.0"
|
||||
},
|
||||
"keywords": [
|
||||
|
@ -3,7 +3,7 @@
|
||||
"ui.button.load": "Load data",
|
||||
"ui.button.update": "Update",
|
||||
"ui.button.directUpdate": "Direct update",
|
||||
"ui.button.files": "Export Files",
|
||||
"ui.button.files": "Import/Export",
|
||||
"ui.button.excel": "Export Excel",
|
||||
"ui.button.uigf": "Export UIGF",
|
||||
"ui.button.import": "Import UIGF",
|
||||
@ -57,6 +57,7 @@
|
||||
"ui.setting.fetchFullHistoryHint": "When this option is enabled, click the \"Update Data\" button to get all the card draw records within 6 months. When there are incorrect data within 6 months, this function can be used to repair.",
|
||||
"ui.setting.closeProxy": "Disable system proxy",
|
||||
"ui.setting.closeProxyHint": "When you choose proxy mode, if the program crashes it can cause unwanted results that may affect your system. You can click this button to clear the system proxy settings.",
|
||||
"ui.setting.idVersion": "ID database version",
|
||||
"ui.about.title": "About",
|
||||
"ui.about.license": "This software is opensource using MIT license.",
|
||||
"ui.urlDialog.title": "Input URL manually",
|
||||
|
@ -3,7 +3,7 @@
|
||||
"ui.button.load": "加载数据",
|
||||
"ui.button.update": "更新数据",
|
||||
"ui.button.directUpdate": "直接更新",
|
||||
"ui.button.files": "导出文件",
|
||||
"ui.button.files": "导入/导出",
|
||||
"ui.button.excel": "导出Excel",
|
||||
"ui.button.uigf":"导出UIGF",
|
||||
"ui.button.import":"导入UIGF",
|
||||
@ -56,6 +56,7 @@
|
||||
"ui.setting.fetchFullHistoryHint": "开启时点击“更新数据”按钮会完整获取6个月内所有的抽卡记录,当记录里有6个月范围以内的错误数据时可以通过这个功能修复。",
|
||||
"ui.setting.closeProxy": "关闭系统代理",
|
||||
"ui.setting.closeProxyHint": "如果使用过代理模式时工具非正常关闭,可能导致系统代理设置没能清除,可以通过这个按钮来清除设置过的系统代理。",
|
||||
"ui.setting.idVersion": "ID 数据库版本",
|
||||
"ui.about.title": "关于",
|
||||
"ui.about.license": "本工具为开源软件,源代码使用 MIT 协议授权",
|
||||
"ui.urlDialog.title": "手动输入URL",
|
||||
|
@ -3,7 +3,7 @@
|
||||
"ui.button.load": "加載數據",
|
||||
"ui.button.update": "更新數據",
|
||||
"ui.button.directUpdate": "直接更新",
|
||||
"ui.button.files": "導出文件",
|
||||
"ui.button.files": "導入/匯出",
|
||||
"ui.button.excel": "導出Excel",
|
||||
"ui.button.uigf":"導出UIGF",
|
||||
"ui.button.import":"導入UIGF",
|
||||
@ -55,6 +55,7 @@
|
||||
"ui.setting.fetchFullHistoryHint": "開啟時點擊「更新數據」按鈕會完整獲取6個月內所有的抽卡記錄,當記錄裏有6個月範圍以內的錯誤數據時可以通過這個功能修復。",
|
||||
"ui.setting.closeProxy": "關閉系統代理",
|
||||
"ui.setting.closeProxyHint": "如果使用過代理模式時工具非正常關閉,可能導致系統代理設置沒能清除,可以通過這個按鈕來清除設置過的系統代理。",
|
||||
"ui.setting.idVersion": "ID 數據庫版本",
|
||||
"ui.about.title": "關於",
|
||||
"ui.about.license": "本工具為開源軟件,源代碼使用 MIT 協議授權",
|
||||
"ui.urlDialog.title": "手動輸入URL",
|
||||
|
1325
src/idJson.json
1325
src/idJson.json
File diff suppressed because it is too large
Load Diff
@ -114,7 +114,7 @@ const changeCurrent = async (uid) => {
|
||||
const detectGameLocale = async (userPath) => {
|
||||
let list = []
|
||||
const lang = app.getLocale()
|
||||
const arr = ['/miHoYo/绝区零/', '/Cognosphere/Zenless Zone Zero/']
|
||||
const arr = ['/miHoYo/绝区零/', '/miHoYo/ZenlessZoneZero/']
|
||||
arr.forEach(str => {
|
||||
try {
|
||||
const pathname = path.join(userPath, '/AppData/LocalLow/', str, 'Player.log')
|
||||
|
@ -4,7 +4,7 @@
|
||||
<div class="space-x-3">
|
||||
<el-button type="primary" :icon="state.status === 'init' ? 'milk-tea': 'refresh-right'" class="focus:outline-none" :disabled="!allowClick()" plain @click="fetchData()" :loading="state.status === 'loading'">{{state.status === 'init' ? ui.button.load: ui.button.update}}</el-button>
|
||||
<el-dropdown :disabled="!gachaData" @command="exportCommand">
|
||||
<el-button :disabled="!gachaData" icon="download" class="focus:outline-none" type="success" plain>
|
||||
<el-button :disabled="!gachaData" icon="folder-opened" class="focus:outline-none" type="success" plain>
|
||||
{{ui.button.files}}
|
||||
<el-icon class="el-icon--right"><arrow-down /></el-icon>
|
||||
</el-button>
|
||||
@ -12,10 +12,10 @@
|
||||
<el-dropdown-menu>
|
||||
<el-dropdown-item command="excel">{{ui.button.excel}}</el-dropdown-item>
|
||||
<el-dropdown-item command="uigf-json">{{ui.button.uigf}}</el-dropdown-item>
|
||||
<el-dropdown-item command="import-json" divided>{{ui.button.import}}</el-dropdown-item>
|
||||
</el-dropdown-menu>
|
||||
</template>
|
||||
</el-dropdown>
|
||||
<el-button @click="importData()" icon="upload" class="focus:outline-none" type="success" plain>{{ui.button.import}}</el-button>
|
||||
<el-tooltip v-if="detail && state.status !== 'loading'" :content="ui.hint.newAccount" placement="bottom">
|
||||
<el-button @click="newUser()" plain icon="plus" class="focus:outline-none"></el-button>
|
||||
</el-tooltip>
|
||||
@ -290,6 +290,8 @@ const exportCommand = (type) => {
|
||||
saveExcel()
|
||||
} else if (type === 'uigf-json') {
|
||||
exportUIGFJSON()
|
||||
} else if (type === 'import-json') {
|
||||
importData()
|
||||
}
|
||||
}
|
||||
const openCacheFolder = async () => {
|
||||
|
@ -32,7 +32,7 @@ const props = defineProps({
|
||||
|
||||
const chart = ref(null);
|
||||
|
||||
const colors = ["#eeaa66", "#fac858", "#ee6666", "#5470c6", "#ba66ee", "#91cc75", "#73c0de"];
|
||||
const colors = ["#fac858", "#fac858", "#ee6666", "#5470c6", "#5470c6", "#91cc75", "#73c0de"];
|
||||
|
||||
const parseData = (detail, type) => {
|
||||
const text = props.i18n.ui.data;
|
||||
|
@ -47,6 +47,7 @@
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<h3 class="text-lg my-4">{{about.title}}</h3>
|
||||
<p class="text-gray-600 text-xs mt-1">{{text.idVersion}} {{idJson.version}}</p>
|
||||
<p class="text-gray-600 text-xs mt-1">{{about.license}}</p>
|
||||
<p class="text-gray-600 text-xs mt-1">GitHub: <a @click="openGithub" class="cursor-pointer text-blue-400">https://github.com/earthjasonlin/zzz-signal-search-export</a></p>
|
||||
<p class="text-gray-600 text-xs mt-1 pb-6">UIGF: <a @click="openUIGF" class="cursor-pointer text-blue-400">https://uigf.org/</a></p>
|
||||
@ -82,6 +83,7 @@
|
||||
|
||||
<script setup>
|
||||
const { ipcRenderer, shell } = require('electron')
|
||||
import idJson from '../../idJson.json'
|
||||
import { reactive, onMounted, computed } from 'vue'
|
||||
|
||||
const emit = defineEmits(['close', 'changeLang', 'refreshData'])
|
||||
|
@ -1,5 +1,8 @@
|
||||
import requests
|
||||
# pylint: disable=C0116, C0103, C0201
|
||||
"""Download and process data from the Hakushin API"""
|
||||
|
||||
import json
|
||||
import requests
|
||||
from opencc import OpenCC
|
||||
|
||||
# 初始化 OpenCC 转换器
|
||||
@ -8,6 +11,8 @@ cc = OpenCC('s2t')
|
||||
# 获取 JSON 数据
|
||||
weapon_url = 'https://api.hakush.in/zzz/data/weapon.json'
|
||||
character_url = 'https://api.hakush.in/zzz/data/character.json'
|
||||
bangboo_url = 'https://api.hakush.in/zzz/data/bangboo.json'
|
||||
version_url = 'https://api.hakush.in/zzz/new.json'
|
||||
|
||||
# 语言映射配置
|
||||
language_map = {
|
||||
@ -21,20 +26,23 @@ language_map = {
|
||||
# 类型映射配置
|
||||
type_map = {
|
||||
"weapon": {"zh-cn": "音擎", "zh-tw": "音擎", "en-us": "W-Engines", "ja-jp": "音動機", "ko-kr": "W-엔진"},
|
||||
"character": {"zh-cn": "代理人", "zh-tw": "代理人", "en-us": "Agents", "ja-jp": "エージェント", "ko-kr": "에이전트"}
|
||||
"character": {"zh-cn": "代理人", "zh-tw": "代理人", "en-us": "Agents",
|
||||
"ja-jp": "エージェント", "ko-kr": "에이전트"},
|
||||
"bangboo": {"zh-cn": "邦布", "zh-tw": "邦布", "en-us": "Bangboo",
|
||||
"ja-jp": "ボンプ", "ko-kr": "「Bangboo」"}
|
||||
}
|
||||
|
||||
def fetch_json(url):
|
||||
response = requests.get(url)
|
||||
response = requests.get(url, timeout=10)
|
||||
response.raise_for_status()
|
||||
return response.json()
|
||||
|
||||
def transform_data(data, item_type):
|
||||
transformed = {lang: {} for lang in language_map.keys()}
|
||||
for id, item in data.items():
|
||||
for id_, item in data.items():
|
||||
for lang, key in language_map.items():
|
||||
name = item[key] if lang != 'zh-tw' else cc.convert(item['CHS'])
|
||||
transformed[lang][id] = {
|
||||
transformed[lang][id_] = {
|
||||
"name": name,
|
||||
"item_type": type_map[item_type][lang],
|
||||
"rank_type": item['rank']
|
||||
@ -45,15 +53,21 @@ def main():
|
||||
try:
|
||||
weapon_data = fetch_json(weapon_url)
|
||||
character_data = fetch_json(character_url)
|
||||
bangboo_data = fetch_json(bangboo_url)
|
||||
version_data = fetch_json(version_url)
|
||||
|
||||
transformed_data = {lang: {} for lang in language_map.keys()}
|
||||
|
||||
transformed_data["version"] = version_data["version"]
|
||||
|
||||
weapon_transformed = transform_data(weapon_data, "weapon")
|
||||
character_transformed = transform_data(character_data, "character")
|
||||
bangboo_transformed = transform_data(bangboo_data, "bangboo")
|
||||
|
||||
for lang in language_map.keys():
|
||||
transformed_data[lang].update(weapon_transformed[lang])
|
||||
transformed_data[lang].update(character_transformed[lang])
|
||||
transformed_data[lang].update(bangboo_transformed[lang])
|
||||
|
||||
with open('./src/idJson.json', 'w', encoding='utf-8') as f:
|
||||
json.dump(transformed_data, f, ensure_ascii=False, indent=2)
|
||||
@ -64,4 +78,4 @@ def main():
|
||||
print(f"Error fetching data: {e}")
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
main()
|
||||
|
@ -5205,10 +5205,10 @@ window-size@^1.1.1:
|
||||
define-property "^1.0.0"
|
||||
is-number "^3.0.0"
|
||||
|
||||
winreg@^1.2.4:
|
||||
winreg@1.2.4:
|
||||
version "1.2.4"
|
||||
resolved "https://registry.yarnpkg.com/winreg/-/winreg-1.2.4.tgz#ba065629b7a925130e15779108cf540990e98d1b"
|
||||
integrity sha1-ugZWKbepJRMOFXeRCM9UCZDpjRs=
|
||||
integrity sha512-IHpzORub7kYlb8A43Iig3reOvlcBJGX9gZ0WycHhghHtA65X0LYnMRuJs+aH1abVnMJztQkvQNlltnbPi5aGIA==
|
||||
|
||||
"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0":
|
||||
version "7.0.0"
|
||||
@ -5326,4 +5326,4 @@ zrender@5.2.1:
|
||||
resolved "https://registry.npmmirror.com/zrender/download/zrender-5.2.1.tgz#5f4bbda915ba6d412b0b19dc2431beaad05417bb"
|
||||
integrity sha1-X0u9qRW6bUErCxncJDG+qtBUF7s=
|
||||
dependencies:
|
||||
tslib "2.3.0"
|
||||
tslib "2.3.0"
|
||||
|
Reference in New Issue
Block a user