Compare commits

..

11 Commits

Author SHA1 Message Date
0ec7cb7c4f fix: winreg compatibility issues
sync with upstream
2024-08-07 17:17:54 +08:00
5a3159d4cb chore: bump version to 1.1.6 2024-08-07 17:08:15 +08:00
38b99bf4dc feat: import export ui layout 2024-08-07 17:07:18 +08:00
0cd9c071d7 chore: bump version to 1.1.5 2024-08-03 23:23:33 +08:00
bf582d0194 fix: update color 2024-08-03 23:19:49 +08:00
5dec6a8273 chore: bump version to 1.1.4 2024-07-29 15:44:10 +08:00
0e429a4762 fix: OS servers log path 2024-07-29 15:43:25 +08:00
5164a17dca style: pylint 2024-07-28 10:13:21 +08:00
a660c03bb5 docs: fix old project name 2024-07-27 15:56:13 +08:00
d7457f2bfb chore: bump version to 1.1.3 2024-07-27 15:50:31 +08:00
223ab899e0 fix(uigf): add bangboo to ID table
close: #5
2024-07-27 15:50:02 +08:00
12 changed files with 585 additions and 23 deletions

View File

@ -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. 打开游戏的调频详情页面
![详情页面](/docs/wish-history.jpg)
@ -34,7 +34,7 @@
如果需要导出多个账号的数据,可以点击旁边的加号按钮。
然后游戏切换的新账号,再打开跃迁历史记录,工具再点击“加载数据”按钮。
然后游戏切换的新账号,再打开调频历史记录,工具再点击“加载数据”按钮。
## Devlopment

View File

@ -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
![warp details](/docs/wish-history-en.jpg)

View File

@ -1,6 +1,6 @@
{
"name": "zzz-signal-search-export",
"version": "1.1.2",
"version": "1.1.6",
"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": [

View File

@ -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",

View File

@ -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",

View File

@ -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",

View File

@ -384,6 +384,116 @@
"name": "艾莲",
"item_type": "代理人",
"rank_type": 4
},
"54003": {
"name": "恶魔布",
"item_type": "邦布",
"rank_type": 3
},
"53007": {
"name": "泪眼布",
"item_type": "邦布",
"rank_type": 3
},
"53005": {
"name": "纸壳布",
"item_type": "邦布",
"rank_type": 3
},
"53012": {
"name": "气压布",
"item_type": "邦布",
"rank_type": 3
},
"53003": {
"name": "寻宝布",
"item_type": "邦布",
"rank_type": 3
},
"53011": {
"name": "磁力布",
"item_type": "邦布",
"rank_type": 3
},
"54009": {
"name": "共鸣布",
"item_type": "邦布",
"rank_type": 4
},
"54008": {
"name": "插头布",
"item_type": "邦布",
"rank_type": 4
},
"53009": {
"name": "飞靶布",
"item_type": "邦布",
"rank_type": 3
},
"54001": {
"name": "鲨牙布",
"item_type": "邦布",
"rank_type": 4
},
"53008": {
"name": "果核布",
"item_type": "邦布",
"rank_type": 3
},
"54006": {
"name": "飚速布",
"item_type": "邦布",
"rank_type": 4
},
"53006": {
"name": "纸袋布",
"item_type": "邦布",
"rank_type": 3
},
"53010": {
"name": "电击布",
"item_type": "邦布",
"rank_type": 3
},
"54012": {
"name": "阿崔巡查",
"item_type": "邦布",
"rank_type": 4
},
"53002": {
"name": "招财布",
"item_type": "邦布",
"rank_type": 3
},
"54002": {
"name": "阿全",
"item_type": "邦布",
"rank_type": 4
},
"53004": {
"name": "扑击布",
"item_type": "邦布",
"rank_type": 3
},
"54013": {
"name": "左轮布",
"item_type": "邦布",
"rank_type": 4
},
"54004": {
"name": "巴特勒",
"item_type": "邦布",
"rank_type": 4
},
"53001": {
"name": "企鹅布",
"item_type": "邦布",
"rank_type": 3
},
"54005": {
"name": "艾米莉安",
"item_type": "邦布",
"rank_type": 4
}
},
"zh-tw": {
@ -771,6 +881,116 @@
"name": "艾蓮",
"item_type": "代理人",
"rank_type": 4
},
"54003": {
"name": "惡魔布",
"item_type": "邦布",
"rank_type": 3
},
"53007": {
"name": "淚眼布",
"item_type": "邦布",
"rank_type": 3
},
"53005": {
"name": "紙殼布",
"item_type": "邦布",
"rank_type": 3
},
"53012": {
"name": "氣壓布",
"item_type": "邦布",
"rank_type": 3
},
"53003": {
"name": "尋寶布",
"item_type": "邦布",
"rank_type": 3
},
"53011": {
"name": "磁力布",
"item_type": "邦布",
"rank_type": 3
},
"54009": {
"name": "共鳴布",
"item_type": "邦布",
"rank_type": 4
},
"54008": {
"name": "插頭布",
"item_type": "邦布",
"rank_type": 4
},
"53009": {
"name": "飛靶布",
"item_type": "邦布",
"rank_type": 3
},
"54001": {
"name": "鯊牙布",
"item_type": "邦布",
"rank_type": 4
},
"53008": {
"name": "果核布",
"item_type": "邦布",
"rank_type": 3
},
"54006": {
"name": "飈速布",
"item_type": "邦布",
"rank_type": 4
},
"53006": {
"name": "紙袋布",
"item_type": "邦布",
"rank_type": 3
},
"53010": {
"name": "電擊布",
"item_type": "邦布",
"rank_type": 3
},
"54012": {
"name": "阿崔巡查",
"item_type": "邦布",
"rank_type": 4
},
"53002": {
"name": "招財布",
"item_type": "邦布",
"rank_type": 3
},
"54002": {
"name": "阿全",
"item_type": "邦布",
"rank_type": 4
},
"53004": {
"name": "撲擊布",
"item_type": "邦布",
"rank_type": 3
},
"54013": {
"name": "左輪布",
"item_type": "邦布",
"rank_type": 4
},
"54004": {
"name": "巴特勒",
"item_type": "邦布",
"rank_type": 4
},
"53001": {
"name": "企鵝布",
"item_type": "邦布",
"rank_type": 3
},
"54005": {
"name": "艾米莉安",
"item_type": "邦布",
"rank_type": 4
}
},
"en-us": {
@ -1158,6 +1378,116 @@
"name": "Ellen",
"item_type": "Agents",
"rank_type": 4
},
"54003": {
"name": "Devilboo",
"item_type": "Bangboo",
"rank_type": 3
},
"53007": {
"name": "Cryboo",
"item_type": "Bangboo",
"rank_type": 3
},
"53005": {
"name": "Paperboo",
"item_type": "Bangboo",
"rank_type": 3
},
"53012": {
"name": "Booressure",
"item_type": "Bangboo",
"rank_type": 3
},
"53003": {
"name": "Exploreboo",
"item_type": "Bangboo",
"rank_type": 3
},
"53011": {
"name": "Magnetiboo",
"item_type": "Bangboo",
"rank_type": 3
},
"54009": {
"name": "Resonaboo",
"item_type": "Bangboo",
"rank_type": 4
},
"54008": {
"name": "Plugboo",
"item_type": "Bangboo",
"rank_type": 4
},
"53009": {
"name": "Boollseye",
"item_type": "Bangboo",
"rank_type": 3
},
"54001": {
"name": "Sharkboo",
"item_type": "Bangboo",
"rank_type": 4
},
"53008": {
"name": "Avocaboo",
"item_type": "Bangboo",
"rank_type": 3
},
"54006": {
"name": "Rocketboo",
"item_type": "Bangboo",
"rank_type": 4
},
"53006": {
"name": "Bagboo",
"item_type": "Bangboo",
"rank_type": 3
},
"53010": {
"name": "Electroboo",
"item_type": "Bangboo",
"rank_type": 3
},
"54012": {
"name": "...",
"item_type": "Bangboo",
"rank_type": 4
},
"53002": {
"name": "Luckyboo",
"item_type": "Bangboo",
"rank_type": 3
},
"54002": {
"name": "Safety",
"item_type": "Bangboo",
"rank_type": 4
},
"53004": {
"name": "Sumoboo",
"item_type": "Bangboo",
"rank_type": 3
},
"54013": {
"name": "Bangvolver",
"item_type": "Bangboo",
"rank_type": 4
},
"54004": {
"name": "Butler",
"item_type": "Bangboo",
"rank_type": 4
},
"53001": {
"name": "Penguinboo",
"item_type": "Bangboo",
"rank_type": 3
},
"54005": {
"name": "Amillion",
"item_type": "Bangboo",
"rank_type": 4
}
},
"ja-jp": {
@ -1545,6 +1875,116 @@
"name": "エレン",
"item_type": "エージェント",
"rank_type": 4
},
"54003": {
"name": "アクマデボンプ",
"item_type": "ボンプ",
"rank_type": 3
},
"53007": {
"name": "ウルリンボンプ",
"item_type": "ボンプ",
"rank_type": 3
},
"53005": {
"name": "ハコイリボンプ",
"item_type": "ボンプ",
"rank_type": 3
},
"53012": {
"name": "キアツデボンプ",
"item_type": "ボンプ",
"rank_type": 3
},
"53003": {
"name": "タンケンボンプ",
"item_type": "ボンプ",
"rank_type": 3
},
"53011": {
"name": "クッツキボンプ",
"item_type": "ボンプ",
"rank_type": 3
},
"54009": {
"name": "レゾナンボンプ",
"item_type": "ボンプ",
"rank_type": 4
},
"54008": {
"name": "プラグノボンプ",
"item_type": "ボンプ",
"rank_type": 4
},
"53009": {
"name": "ズバットボンプ",
"item_type": "ボンプ",
"rank_type": 3
},
"54001": {
"name": "ガブットボンプ",
"item_type": "ボンプ",
"rank_type": 4
},
"53008": {
"name": "アボカドボンプ",
"item_type": "ボンプ",
"rank_type": 3
},
"54006": {
"name": "ハヤスギボンプ",
"item_type": "ボンプ",
"rank_type": 4
},
"53006": {
"name": "フクロノボンプ",
"item_type": "ボンプ",
"rank_type": 3
},
"53010": {
"name": "ビリビリボンプ",
"item_type": "ボンプ",
"rank_type": 3
},
"54012": {
"name": "...",
"item_type": "ボンプ",
"rank_type": 4
},
"53002": {
"name": "オマネキボンプ",
"item_type": "ボンプ",
"rank_type": 3
},
"54002": {
"name": "ゴアンゼン",
"item_type": "ボンプ",
"rank_type": 4
},
"53004": {
"name": "オスモウボンプ",
"item_type": "ボンプ",
"rank_type": 3
},
"54013": {
"name": "リボルバボンプ",
"item_type": "ボンプ",
"rank_type": 4
},
"54004": {
"name": "バトラー",
"item_type": "ボンプ",
"rank_type": 4
},
"53001": {
"name": "ペンギンボンプ",
"item_type": "ボンプ",
"rank_type": 3
},
"54005": {
"name": "アミリオン",
"item_type": "ボンプ",
"rank_type": 4
}
},
"ko-kr": {
@ -1932,6 +2372,116 @@
"name": "엘렌",
"item_type": "에이전트",
"rank_type": 4
},
"54003": {
"name": "데빌부",
"item_type": "「Bangboo」",
"rank_type": 3
},
"53007": {
"name": "울보부",
"item_type": "「Bangboo」",
"rank_type": 3
},
"53005": {
"name": "종이부",
"item_type": "「Bangboo」",
"rank_type": 3
},
"53012": {
"name": "압력부",
"item_type": "「Bangboo」",
"rank_type": 3
},
"53003": {
"name": "탐험부",
"item_type": "「Bangboo」",
"rank_type": 3
},
"53011": {
"name": "자석부",
"item_type": "「Bangboo」",
"rank_type": 3
},
"54009": {
"name": "공명부",
"item_type": "「Bangboo」",
"rank_type": 4
},
"54008": {
"name": "플러그부",
"item_type": "「Bangboo」",
"rank_type": 4
},
"53009": {
"name": "과녁부",
"item_type": "「Bangboo」",
"rank_type": 3
},
"54001": {
"name": "샤크부",
"item_type": "「Bangboo」",
"rank_type": 4
},
"53008": {
"name": "아보카부",
"item_type": "「Bangboo」",
"rank_type": 3
},
"54006": {
"name": "날쌘부",
"item_type": "「Bangboo」",
"rank_type": 4
},
"53006": {
"name": "봉투부",
"item_type": "「Bangboo」",
"rank_type": 3
},
"53010": {
"name": "찌릿부",
"item_type": "「Bangboo」",
"rank_type": 3
},
"54012": {
"name": "...",
"item_type": "「Bangboo」",
"rank_type": 4
},
"53002": {
"name": "럭키부",
"item_type": "「Bangboo」",
"rank_type": 3
},
"54002": {
"name": "세이프티",
"item_type": "「Bangboo」",
"rank_type": 4
},
"53004": {
"name": "스모부",
"item_type": "「Bangboo」",
"rank_type": 3
},
"54013": {
"name": "리볼버부",
"item_type": "「Bangboo」",
"rank_type": 4
},
"54004": {
"name": "버틀러",
"item_type": "「Bangboo」",
"rank_type": 4
},
"53001": {
"name": "펭귄부",
"item_type": "「Bangboo」",
"rank_type": 3
},
"54005": {
"name": "에밀리온",
"item_type": "「Bangboo」",
"rank_type": 4
}
}
}

View File

@ -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')

View File

@ -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 () => {

View File

@ -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;

View File

@ -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,7 @@ 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'
# 语言映射配置
language_map = {
@ -21,20 +25,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 +52,18 @@ def main():
try:
weapon_data = fetch_json(weapon_url)
character_data = fetch_json(character_url)
bangboo_data = fetch_json(bangboo_url)
transformed_data = {lang: {} for lang in language_map.keys()}
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 +74,4 @@ def main():
print(f"Error fetching data: {e}")
if __name__ == "__main__":
main()
main()

View File

@ -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"