mirror of
https://github.com/earthjasonlin/star-rail-warp-export.git
synced 2026-05-19 13:20:08 +08:00
Compare commits
2 Commits
main
...
413afea538
| Author | SHA1 | Date | |
|---|---|---|---|
|
413afea538
|
|||
|
524597f891
|
1
.github/FUNDING.yml
vendored
1
.github/FUNDING.yml
vendored
@@ -10,3 +10,4 @@ liberapay: # Replace with a single Liberapay username
|
|||||||
issuehunt: # Replace with a single IssueHunt username
|
issuehunt: # Replace with a single IssueHunt username
|
||||||
otechie: # Replace with a single Otechie username
|
otechie: # Replace with a single Otechie username
|
||||||
lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry
|
lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry
|
||||||
|
custom: https://afdian.net/a/haisha
|
||||||
|
|||||||
91
.github/workflows/idmap.yml
vendored
91
.github/workflows/idmap.yml
vendored
@@ -1,91 +0,0 @@
|
|||||||
name: Update ID Map and Version
|
|
||||||
|
|
||||||
on:
|
|
||||||
schedule:
|
|
||||||
- cron: '0 0 * * *'
|
|
||||||
workflow_dispatch:
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
update-idmap:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Checkout repository
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
with:
|
|
||||||
token: ${{ secrets.GH_PAT }}
|
|
||||||
|
|
||||||
- name: Set up Python
|
|
||||||
uses: actions/setup-python@v4
|
|
||||||
with:
|
|
||||||
python-version: '3.x'
|
|
||||||
|
|
||||||
- name: Install dependencies
|
|
||||||
run: |
|
|
||||||
python -m pip install --upgrade pip
|
|
||||||
pip install requests opencc
|
|
||||||
|
|
||||||
- name: Run getIdMap.py
|
|
||||||
run: |
|
|
||||||
python tools/getIdMap.py
|
|
||||||
|
|
||||||
- name: Check if idJson.json changed
|
|
||||||
id: check_changes
|
|
||||||
run: |
|
|
||||||
git add -A
|
|
||||||
if git diff --staged --quiet -- src/idJson.json; then
|
|
||||||
echo "changes=false" >> $GITHUB_OUTPUT
|
|
||||||
echo "No changes detected in src/idJson.json"
|
|
||||||
else
|
|
||||||
echo "changes=true" >> $GITHUB_OUTPUT
|
|
||||||
echo "Changes detected in src/idJson.json"
|
|
||||||
fi
|
|
||||||
|
|
||||||
- name: Get current version from idJson
|
|
||||||
if: steps.check_changes.outputs.changes == 'true'
|
|
||||||
id: get_version
|
|
||||||
run: |
|
|
||||||
VERSION=$(python -c "import json; print(json.load(open('src/idJson.json', encoding='utf-8'))['version'])")
|
|
||||||
echo "version=$VERSION" >> $GITHUB_OUTPUT
|
|
||||||
echo "Current version in idJson: $VERSION"
|
|
||||||
|
|
||||||
- name: Bump package.json version
|
|
||||||
if: steps.check_changes.outputs.changes == 'true'
|
|
||||||
id: bump_version
|
|
||||||
run: |
|
|
||||||
CURRENT_VERSION=$(node -p "require('./package.json').version")
|
|
||||||
echo "Current package.json version: $CURRENT_VERSION"
|
|
||||||
|
|
||||||
IFS='.' read -ra VERSION_PARTS <<< "$CURRENT_VERSION"
|
|
||||||
MAJOR=${VERSION_PARTS[0]}
|
|
||||||
MINOR=${VERSION_PARTS[1]}
|
|
||||||
PATCH=${VERSION_PARTS[2]}
|
|
||||||
|
|
||||||
NEW_PATCH=$((PATCH + 1))
|
|
||||||
NEW_VERSION="$MAJOR.$MINOR.$NEW_PATCH"
|
|
||||||
|
|
||||||
echo "New package.json version: $NEW_VERSION"
|
|
||||||
echo "new_version=$NEW_VERSION" >> $GITHUB_OUTPUT
|
|
||||||
|
|
||||||
node -e "
|
|
||||||
const fs = require('fs');
|
|
||||||
const packageJson = JSON.parse(fs.readFileSync('./package.json', 'utf8'));
|
|
||||||
packageJson.version = '$NEW_VERSION';
|
|
||||||
fs.writeFileSync('./package.json', JSON.stringify(packageJson, null, 2) + '\n');
|
|
||||||
"
|
|
||||||
|
|
||||||
- name: Create and push tag
|
|
||||||
if: steps.check_changes.outputs.changes == 'true'
|
|
||||||
run: |
|
|
||||||
git config --local user.email "action@github.com"
|
|
||||||
git config --local user.name "GitHub Action"
|
|
||||||
git add src/idJson.json package.json
|
|
||||||
git commit -m "chore: update idJson to ${{ steps.get_version.outputs.version }}"
|
|
||||||
|
|
||||||
TAG_NAME="v${{ steps.bump_version.outputs.new_version }}"
|
|
||||||
git tag $TAG_NAME
|
|
||||||
|
|
||||||
git push
|
|
||||||
git push origin $TAG_NAME
|
|
||||||
|
|
||||||
echo "Created and pushed tag: $TAG_NAME"
|
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "star-rail-warp-export",
|
"name": "star-rail-warp-export",
|
||||||
"version": "0.2.5",
|
"version": "0.2.0",
|
||||||
"main": "./dist/electron/main/main.js",
|
"main": "./dist/electron/main/main.js",
|
||||||
"author": "biuuu <https://github.com/biuuu>",
|
"author": "biuuu <https://github.com/biuuu>",
|
||||||
"homepage": "https://github.com/biuuu/star-rail-warp-export",
|
"homepage": "https://github.com/biuuu/star-rail-warp-export",
|
||||||
|
|||||||
@@ -98,7 +98,7 @@
|
|||||||
"excel.customFont": "Arial",
|
"excel.customFont": "Arial",
|
||||||
"excel.filePrefix": "Star Rail Warp logger",
|
"excel.filePrefix": "Star Rail Warp logger",
|
||||||
"excel.fileType": "Excel file",
|
"excel.fileType": "Excel file",
|
||||||
"uigf.fileType": "Uniformed Interchangeable GachaLog Format v4.0, v4.1",
|
"uigf.fileType": "Uniformed Interchangeable GachaLog Format v4.0",
|
||||||
"ui.extra.cacheClean": "1. Confirm whether the warp history in the game has been opened, and if the error \"User authentication expired\" still appears, try the following steps \n2. Close the game window of Star Rail \n3. Click the \"Open Web Cache Folder\" button above to open the \"Cache\" folder \n4. Delete the \"Cache_Data\" folder \n5. Start the Star Rail game and open the warp history page in the game \n6. Close this dialog and click the \"Update Data\" button",
|
"ui.extra.cacheClean": "1. Confirm whether the warp history in the game has been opened, and if the error \"User authentication expired\" still appears, try the following steps \n2. Close the game window of Star Rail \n3. Click the \"Open Web Cache Folder\" button above to open the \"Cache\" folder \n4. Delete the \"Cache_Data\" folder \n5. Start the Star Rail game and open the warp history page in the game \n6. Close this dialog and click the \"Update Data\" button",
|
||||||
"ui.extra.findCacheFolder": "If the \"Open cache folder\" button does not respond, you can manually find the game's web cache folder. The directory is \"Your game installation path/Star Rail/Games/StarRail_Data/webCaches/Cache/\"",
|
"ui.extra.findCacheFolder": "If the \"Open cache folder\" button does not respond, you can manually find the game's web cache folder. The directory is \"Your game installation path/Star Rail/Games/StarRail_Data/webCaches/Cache/\"",
|
||||||
"ui.extra.urlCopied": "URL Copied",
|
"ui.extra.urlCopied": "URL Copied",
|
||||||
|
|||||||
@@ -98,7 +98,7 @@
|
|||||||
"excel.customFont": "メイリオ",
|
"excel.customFont": "メイリオ",
|
||||||
"excel.filePrefix": "スターレイル跳躍ログ",
|
"excel.filePrefix": "スターレイル跳躍ログ",
|
||||||
"excel.fileType": "Excelファイル",
|
"excel.fileType": "Excelファイル",
|
||||||
"uigf.fileType":"統一交換可能ガチャ記録フォーマット標準(UIGF) v4.0, v4.1",
|
"uigf.fileType":"統一交換可能ガチャ記録フォーマット標準(UIGF) v4.0",
|
||||||
"ui.extra.cacheClean": "1. ゲーム内の跳躍履歴を開いたことを確認し、それでも「Authkeyの有効期限が切れました」エラーが表示される場合は、以下の手順を再度お試しください\n2. スターレイルのゲーム画面を閉じる\n3. 上部の「キャッシュフォルダーを開く」ボタンをクリックして、Cacheフォルダーを開く\n4. Cache_Dataフォルダを削除する\n5. スターレイルを起動し、ゲーム内の跳躍履歴ページを開く\n6. このダイアログボックスを閉じ、「更新データ」ボタンをクリックします",
|
"ui.extra.cacheClean": "1. ゲーム内の跳躍履歴を開いたことを確認し、それでも「Authkeyの有効期限が切れました」エラーが表示される場合は、以下の手順を再度お試しください\n2. スターレイルのゲーム画面を閉じる\n3. 上部の「キャッシュフォルダーを開く」ボタンをクリックして、Cacheフォルダーを開く\n4. Cache_Dataフォルダを削除する\n5. スターレイルを起動し、ゲーム内の跳躍履歴ページを開く\n6. このダイアログボックスを閉じ、「更新データ」ボタンをクリックします",
|
||||||
"ui.extra.findCacheFolder": "もし「キャッシュフォルダーを開く」ボタンが反応しない場合、手動でゲームのウェブキャッシュフォルダを見つけることができます。そのディレクトリは、“あなたのゲームのインストールパス/Star Rail/Game/StarRail_Data/webCaches/Cache/”",
|
"ui.extra.findCacheFolder": "もし「キャッシュフォルダーを開く」ボタンが反応しない場合、手動でゲームのウェブキャッシュフォルダを見つけることができます。そのディレクトリは、“あなたのゲームのインストールパス/Star Rail/Game/StarRail_Data/webCaches/Cache/”",
|
||||||
"ui.extra.urlCopied": "URLがコピーされました",
|
"ui.extra.urlCopied": "URLがコピーされました",
|
||||||
|
|||||||
@@ -98,7 +98,7 @@
|
|||||||
"excel.customFont": "微软雅黑",
|
"excel.customFont": "微软雅黑",
|
||||||
"excel.filePrefix": "星穹铁道跃迁记录",
|
"excel.filePrefix": "星穹铁道跃迁记录",
|
||||||
"excel.fileType": "Excel文件",
|
"excel.fileType": "Excel文件",
|
||||||
"uigf.fileType":"统一可交换抽卡记录标准 v4.0, v4.1",
|
"uigf.fileType":"统一可交换抽卡记录标准 v4.0",
|
||||||
"ui.extra.cacheClean": "1. 确认是否已经打开游戏内的抽卡历史记录,如果仍然出现“身份认证已过期”的错误,再尝试下面的步骤\n2. 关闭星穹铁道的游戏窗口\n3. 点击上方的“打开缓存文件夹”按钮,打开Cache文件夹\n4. 删除Cache_Data文件夹\n5. 启动星穹铁道游戏,打开游戏内抽卡历史记录页面\n6. 关闭这个对话框,再点击“更新数据”按钮",
|
"ui.extra.cacheClean": "1. 确认是否已经打开游戏内的抽卡历史记录,如果仍然出现“身份认证已过期”的错误,再尝试下面的步骤\n2. 关闭星穹铁道的游戏窗口\n3. 点击上方的“打开缓存文件夹”按钮,打开Cache文件夹\n4. 删除Cache_Data文件夹\n5. 启动星穹铁道游戏,打开游戏内抽卡历史记录页面\n6. 关闭这个对话框,再点击“更新数据”按钮",
|
||||||
"ui.extra.findCacheFolder": "如果点“打开缓存文件夹”按钮没有反应,可以手动找到游戏的网页缓存文件夹,目录为“你的游戏安装路径/Star Rail/Game/StarRail_Data/webCaches/Cache/”",
|
"ui.extra.findCacheFolder": "如果点“打开缓存文件夹”按钮没有反应,可以手动找到游戏的网页缓存文件夹,目录为“你的游戏安装路径/Star Rail/Game/StarRail_Data/webCaches/Cache/”",
|
||||||
"ui.extra.urlCopied": "URL已复制",
|
"ui.extra.urlCopied": "URL已复制",
|
||||||
|
|||||||
@@ -87,7 +87,7 @@
|
|||||||
"excel.customFont": "微軟正黑體",
|
"excel.customFont": "微軟正黑體",
|
||||||
"excel.filePrefix": "星穹鐵道躍遷紀錄",
|
"excel.filePrefix": "星穹鐵道躍遷紀錄",
|
||||||
"excel.fileType": "Excel 檔案",
|
"excel.fileType": "Excel 檔案",
|
||||||
"srgf.fileType":"統一可交換抽卡記錄標準 v4.0, v4.1",
|
"srgf.fileType":"統一可交換抽卡記錄標準 v4.0",
|
||||||
"ui.extra.cacheClean": "1. 確認是否已經開啟遊戲內的躍遷歷史紀錄,如果仍然出現「身分驗證已過期」的錯誤,再嘗試下面的步驟\n2. 關閉「崩壞:星穹鐵道」的遊戲視窗\n3. 按一下上方的「開啟快取資料夾」按鈕,開啟「Cache」資料夾\n4. 刪除「Cache_Data」資料夾\n5. 啟動「崩壞:星穹鐵道」遊戲,開啟遊戲內躍遷歷史紀錄頁面\n6. 關閉這個對話方塊,再按下「更新資料」按鈕",
|
"ui.extra.cacheClean": "1. 確認是否已經開啟遊戲內的躍遷歷史紀錄,如果仍然出現「身分驗證已過期」的錯誤,再嘗試下面的步驟\n2. 關閉「崩壞:星穹鐵道」的遊戲視窗\n3. 按一下上方的「開啟快取資料夾」按鈕,開啟「Cache」資料夾\n4. 刪除「Cache_Data」資料夾\n5. 啟動「崩壞:星穹鐵道」遊戲,開啟遊戲內躍遷歷史紀錄頁面\n6. 關閉這個對話方塊,再按下「更新資料」按鈕",
|
||||||
"ui.extra.findCacheFolder": "如果按下「開啟快取資料夾」按鈕沒有回應,可以手動找到遊戲的網頁快取資料夾,目錄為「您的遊戲安裝路徑/Star Rail/Games/StarRail_Data/webCaches/Cache/」",
|
"ui.extra.findCacheFolder": "如果按下「開啟快取資料夾」按鈕沒有回應,可以手動找到遊戲的網頁快取資料夾,目錄為「您的遊戲安裝路徑/Star Rail/Games/StarRail_Data/webCaches/Cache/」",
|
||||||
"ui.uigf.title": "請選擇要導出的UID"
|
"ui.uigf.title": "請選擇要導出的UID"
|
||||||
|
|||||||
427
src/idJson.json
427
src/idJson.json
@@ -115,16 +115,6 @@
|
|||||||
"item_type": "光锥",
|
"item_type": "光锥",
|
||||||
"rank_type": "3"
|
"rank_type": "3"
|
||||||
},
|
},
|
||||||
"20023": {
|
|
||||||
"name": "嗤笑",
|
|
||||||
"item_type": "光锥",
|
|
||||||
"rank_type": "3"
|
|
||||||
},
|
|
||||||
"20024": {
|
|
||||||
"name": "残泪",
|
|
||||||
"item_type": "光锥",
|
|
||||||
"rank_type": "3"
|
|
||||||
},
|
|
||||||
"21000": {
|
"21000": {
|
||||||
"name": "一场术后对话",
|
"name": "一场术后对话",
|
||||||
"item_type": "光锥",
|
"item_type": "光锥",
|
||||||
@@ -430,16 +420,6 @@
|
|||||||
"item_type": "光锥",
|
"item_type": "光锥",
|
||||||
"rank_type": "4"
|
"rank_type": "4"
|
||||||
},
|
},
|
||||||
"21064": {
|
|
||||||
"name": "菇菇嘎嘎历险记",
|
|
||||||
"item_type": "光锥",
|
|
||||||
"rank_type": "4"
|
|
||||||
},
|
|
||||||
"21065": {
|
|
||||||
"name": "今日好手气",
|
|
||||||
"item_type": "光锥",
|
|
||||||
"rank_type": "4"
|
|
||||||
},
|
|
||||||
"22000": {
|
"22000": {
|
||||||
"name": "新手任务开始前",
|
"name": "新手任务开始前",
|
||||||
"item_type": "光锥",
|
"item_type": "光锥",
|
||||||
@@ -470,11 +450,6 @@
|
|||||||
"item_type": "光锥",
|
"item_type": "光锥",
|
||||||
"rank_type": "4"
|
"rank_type": "4"
|
||||||
},
|
},
|
||||||
"22006": {
|
|
||||||
"name": "飞向粉色的明天",
|
|
||||||
"item_type": "光锥",
|
|
||||||
"rank_type": "4"
|
|
||||||
},
|
|
||||||
"23000": {
|
"23000": {
|
||||||
"name": "银河铁道之夜",
|
"name": "银河铁道之夜",
|
||||||
"item_type": "光锥",
|
"item_type": "光锥",
|
||||||
@@ -720,36 +695,6 @@
|
|||||||
"item_type": "光锥",
|
"item_type": "光锥",
|
||||||
"rank_type": "5"
|
"rank_type": "5"
|
||||||
},
|
},
|
||||||
"23049": {
|
|
||||||
"name": "致长夜的星光",
|
|
||||||
"item_type": "光锥",
|
|
||||||
"rank_type": "5"
|
|
||||||
},
|
|
||||||
"23050": {
|
|
||||||
"name": "勿忘她的火焰",
|
|
||||||
"item_type": "光锥",
|
|
||||||
"rank_type": "5"
|
|
||||||
},
|
|
||||||
"23051": {
|
|
||||||
"name": "纵然山河万程",
|
|
||||||
"item_type": "光锥",
|
|
||||||
"rank_type": "5"
|
|
||||||
},
|
|
||||||
"23052": {
|
|
||||||
"name": "爱如此刻永恒",
|
|
||||||
"item_type": "光锥",
|
|
||||||
"rank_type": "5"
|
|
||||||
},
|
|
||||||
"23053": {
|
|
||||||
"name": "花花世界迷人眼",
|
|
||||||
"item_type": "光锥",
|
|
||||||
"rank_type": "5"
|
|
||||||
},
|
|
||||||
"23054": {
|
|
||||||
"name": "当她决定看见",
|
|
||||||
"item_type": "光锥",
|
|
||||||
"rank_type": "5"
|
|
||||||
},
|
|
||||||
"24000": {
|
"24000": {
|
||||||
"name": "记一位星神的陨落",
|
"name": "记一位星神的陨落",
|
||||||
"item_type": "光锥",
|
"item_type": "光锥",
|
||||||
@@ -1085,11 +1030,6 @@
|
|||||||
"item_type": "角色",
|
"item_type": "角色",
|
||||||
"rank_type": "5"
|
"rank_type": "5"
|
||||||
},
|
},
|
||||||
"1321": {
|
|
||||||
"name": "大丽花",
|
|
||||||
"item_type": "角色",
|
|
||||||
"rank_type": "5"
|
|
||||||
},
|
|
||||||
"1401": {
|
"1401": {
|
||||||
"name": "大黑塔",
|
"name": "大黑塔",
|
||||||
"item_type": "角色",
|
"item_type": "角色",
|
||||||
@@ -1145,31 +1085,6 @@
|
|||||||
"item_type": "角色",
|
"item_type": "角色",
|
||||||
"rank_type": "5"
|
"rank_type": "5"
|
||||||
},
|
},
|
||||||
"1413": {
|
|
||||||
"name": "长夜月",
|
|
||||||
"item_type": "角色",
|
|
||||||
"rank_type": "5"
|
|
||||||
},
|
|
||||||
"1414": {
|
|
||||||
"name": "丹恒•腾荒",
|
|
||||||
"item_type": "角色",
|
|
||||||
"rank_type": "5"
|
|
||||||
},
|
|
||||||
"1415": {
|
|
||||||
"name": "昔涟",
|
|
||||||
"item_type": "角色",
|
|
||||||
"rank_type": "5"
|
|
||||||
},
|
|
||||||
"1501": {
|
|
||||||
"name": "火花",
|
|
||||||
"item_type": "角色",
|
|
||||||
"rank_type": "5"
|
|
||||||
},
|
|
||||||
"1502": {
|
|
||||||
"name": "爻光",
|
|
||||||
"item_type": "角色",
|
|
||||||
"rank_type": "5"
|
|
||||||
},
|
|
||||||
"8001": {
|
"8001": {
|
||||||
"name": "{NICKNAME}",
|
"name": "{NICKNAME}",
|
||||||
"item_type": "角色",
|
"item_type": "角色",
|
||||||
@@ -1327,16 +1242,6 @@
|
|||||||
"item_type": "光錐",
|
"item_type": "光錐",
|
||||||
"rank_type": "3"
|
"rank_type": "3"
|
||||||
},
|
},
|
||||||
"20023": {
|
|
||||||
"name": "嗤笑",
|
|
||||||
"item_type": "光錐",
|
|
||||||
"rank_type": "3"
|
|
||||||
},
|
|
||||||
"20024": {
|
|
||||||
"name": "殘淚",
|
|
||||||
"item_type": "光錐",
|
|
||||||
"rank_type": "3"
|
|
||||||
},
|
|
||||||
"21000": {
|
"21000": {
|
||||||
"name": "一場術後對話",
|
"name": "一場術後對話",
|
||||||
"item_type": "光錐",
|
"item_type": "光錐",
|
||||||
@@ -1642,16 +1547,6 @@
|
|||||||
"item_type": "光錐",
|
"item_type": "光錐",
|
||||||
"rank_type": "4"
|
"rank_type": "4"
|
||||||
},
|
},
|
||||||
"21064": {
|
|
||||||
"name": "菇菇嘎嘎歷險記",
|
|
||||||
"item_type": "光錐",
|
|
||||||
"rank_type": "4"
|
|
||||||
},
|
|
||||||
"21065": {
|
|
||||||
"name": "今日好手氣",
|
|
||||||
"item_type": "光錐",
|
|
||||||
"rank_type": "4"
|
|
||||||
},
|
|
||||||
"22000": {
|
"22000": {
|
||||||
"name": "新手任務開始前",
|
"name": "新手任務開始前",
|
||||||
"item_type": "光錐",
|
"item_type": "光錐",
|
||||||
@@ -1682,11 +1577,6 @@
|
|||||||
"item_type": "光錐",
|
"item_type": "光錐",
|
||||||
"rank_type": "4"
|
"rank_type": "4"
|
||||||
},
|
},
|
||||||
"22006": {
|
|
||||||
"name": "飛向粉色的明天",
|
|
||||||
"item_type": "光錐",
|
|
||||||
"rank_type": "4"
|
|
||||||
},
|
|
||||||
"23000": {
|
"23000": {
|
||||||
"name": "銀河鐵道之夜",
|
"name": "銀河鐵道之夜",
|
||||||
"item_type": "光錐",
|
"item_type": "光錐",
|
||||||
@@ -1932,36 +1822,6 @@
|
|||||||
"item_type": "光錐",
|
"item_type": "光錐",
|
||||||
"rank_type": "5"
|
"rank_type": "5"
|
||||||
},
|
},
|
||||||
"23049": {
|
|
||||||
"name": "致長夜的星光",
|
|
||||||
"item_type": "光錐",
|
|
||||||
"rank_type": "5"
|
|
||||||
},
|
|
||||||
"23050": {
|
|
||||||
"name": "勿忘她的火焰",
|
|
||||||
"item_type": "光錐",
|
|
||||||
"rank_type": "5"
|
|
||||||
},
|
|
||||||
"23051": {
|
|
||||||
"name": "縱然山河萬程",
|
|
||||||
"item_type": "光錐",
|
|
||||||
"rank_type": "5"
|
|
||||||
},
|
|
||||||
"23052": {
|
|
||||||
"name": "愛如此刻永恆",
|
|
||||||
"item_type": "光錐",
|
|
||||||
"rank_type": "5"
|
|
||||||
},
|
|
||||||
"23053": {
|
|
||||||
"name": "花花世界迷人眼",
|
|
||||||
"item_type": "光錐",
|
|
||||||
"rank_type": "5"
|
|
||||||
},
|
|
||||||
"23054": {
|
|
||||||
"name": "當她決定看見",
|
|
||||||
"item_type": "光錐",
|
|
||||||
"rank_type": "5"
|
|
||||||
},
|
|
||||||
"24000": {
|
"24000": {
|
||||||
"name": "記一位星神的隕落",
|
"name": "記一位星神的隕落",
|
||||||
"item_type": "光錐",
|
"item_type": "光錐",
|
||||||
@@ -2297,11 +2157,6 @@
|
|||||||
"item_type": "角色",
|
"item_type": "角色",
|
||||||
"rank_type": "5"
|
"rank_type": "5"
|
||||||
},
|
},
|
||||||
"1321": {
|
|
||||||
"name": "大麗花",
|
|
||||||
"item_type": "角色",
|
|
||||||
"rank_type": "5"
|
|
||||||
},
|
|
||||||
"1401": {
|
"1401": {
|
||||||
"name": "大黑塔",
|
"name": "大黑塔",
|
||||||
"item_type": "角色",
|
"item_type": "角色",
|
||||||
@@ -2357,31 +2212,6 @@
|
|||||||
"item_type": "角色",
|
"item_type": "角色",
|
||||||
"rank_type": "5"
|
"rank_type": "5"
|
||||||
},
|
},
|
||||||
"1413": {
|
|
||||||
"name": "長夜月",
|
|
||||||
"item_type": "角色",
|
|
||||||
"rank_type": "5"
|
|
||||||
},
|
|
||||||
"1414": {
|
|
||||||
"name": "丹恆•騰荒",
|
|
||||||
"item_type": "角色",
|
|
||||||
"rank_type": "5"
|
|
||||||
},
|
|
||||||
"1415": {
|
|
||||||
"name": "昔漣",
|
|
||||||
"item_type": "角色",
|
|
||||||
"rank_type": "5"
|
|
||||||
},
|
|
||||||
"1501": {
|
|
||||||
"name": "火花",
|
|
||||||
"item_type": "角色",
|
|
||||||
"rank_type": "5"
|
|
||||||
},
|
|
||||||
"1502": {
|
|
||||||
"name": "爻光",
|
|
||||||
"item_type": "角色",
|
|
||||||
"rank_type": "5"
|
|
||||||
},
|
|
||||||
"8001": {
|
"8001": {
|
||||||
"name": "{NICKNAME}",
|
"name": "{NICKNAME}",
|
||||||
"item_type": "角色",
|
"item_type": "角色",
|
||||||
@@ -2539,16 +2369,6 @@
|
|||||||
"item_type": "Light Cone",
|
"item_type": "Light Cone",
|
||||||
"rank_type": "3"
|
"rank_type": "3"
|
||||||
},
|
},
|
||||||
"20023": {
|
|
||||||
"name": "Sneering",
|
|
||||||
"item_type": "Light Cone",
|
|
||||||
"rank_type": "3"
|
|
||||||
},
|
|
||||||
"20024": {
|
|
||||||
"name": "Lingering Tear",
|
|
||||||
"item_type": "Light Cone",
|
|
||||||
"rank_type": "3"
|
|
||||||
},
|
|
||||||
"21000": {
|
"21000": {
|
||||||
"name": "Post-Op Conversation",
|
"name": "Post-Op Conversation",
|
||||||
"item_type": "Light Cone",
|
"item_type": "Light Cone",
|
||||||
@@ -2854,16 +2674,6 @@
|
|||||||
"item_type": "Light Cone",
|
"item_type": "Light Cone",
|
||||||
"rank_type": "4"
|
"rank_type": "4"
|
||||||
},
|
},
|
||||||
"21064": {
|
|
||||||
"name": "Mushy Shroomy's Adventures",
|
|
||||||
"item_type": "Light Cone",
|
|
||||||
"rank_type": "4"
|
|
||||||
},
|
|
||||||
"21065": {
|
|
||||||
"name": "Today's Good Luck",
|
|
||||||
"item_type": "Light Cone",
|
|
||||||
"rank_type": "4"
|
|
||||||
},
|
|
||||||
"22000": {
|
"22000": {
|
||||||
"name": "Before the Tutorial Mission Starts",
|
"name": "Before the Tutorial Mission Starts",
|
||||||
"item_type": "Light Cone",
|
"item_type": "Light Cone",
|
||||||
@@ -2894,11 +2704,6 @@
|
|||||||
"item_type": "Light Cone",
|
"item_type": "Light Cone",
|
||||||
"rank_type": "4"
|
"rank_type": "4"
|
||||||
},
|
},
|
||||||
"22006": {
|
|
||||||
"name": "Fly Into a Pink Tomorrow",
|
|
||||||
"item_type": "Light Cone",
|
|
||||||
"rank_type": "4"
|
|
||||||
},
|
|
||||||
"23000": {
|
"23000": {
|
||||||
"name": "Night on the Milky Way",
|
"name": "Night on the Milky Way",
|
||||||
"item_type": "Light Cone",
|
"item_type": "Light Cone",
|
||||||
@@ -3144,36 +2949,6 @@
|
|||||||
"item_type": "Light Cone",
|
"item_type": "Light Cone",
|
||||||
"rank_type": "5"
|
"rank_type": "5"
|
||||||
},
|
},
|
||||||
"23049": {
|
|
||||||
"name": "To Evernight's Stars",
|
|
||||||
"item_type": "Light Cone",
|
|
||||||
"rank_type": "5"
|
|
||||||
},
|
|
||||||
"23050": {
|
|
||||||
"name": "Never Forget Her Flame",
|
|
||||||
"item_type": "Light Cone",
|
|
||||||
"rank_type": "5"
|
|
||||||
},
|
|
||||||
"23051": {
|
|
||||||
"name": "Though Worlds Apart",
|
|
||||||
"item_type": "Light Cone",
|
|
||||||
"rank_type": "5"
|
|
||||||
},
|
|
||||||
"23052": {
|
|
||||||
"name": "This Love, Forever",
|
|
||||||
"item_type": "Light Cone",
|
|
||||||
"rank_type": "5"
|
|
||||||
},
|
|
||||||
"23053": {
|
|
||||||
"name": "Dazzled by a Flowery World",
|
|
||||||
"item_type": "Light Cone",
|
|
||||||
"rank_type": "5"
|
|
||||||
},
|
|
||||||
"23054": {
|
|
||||||
"name": "When She Decided to See",
|
|
||||||
"item_type": "Light Cone",
|
|
||||||
"rank_type": "5"
|
|
||||||
},
|
|
||||||
"24000": {
|
"24000": {
|
||||||
"name": "On the Fall of an Aeon",
|
"name": "On the Fall of an Aeon",
|
||||||
"item_type": "Light Cone",
|
"item_type": "Light Cone",
|
||||||
@@ -3509,11 +3284,6 @@
|
|||||||
"item_type": "Character",
|
"item_type": "Character",
|
||||||
"rank_type": "5"
|
"rank_type": "5"
|
||||||
},
|
},
|
||||||
"1321": {
|
|
||||||
"name": "The Dahlia",
|
|
||||||
"item_type": "Character",
|
|
||||||
"rank_type": "5"
|
|
||||||
},
|
|
||||||
"1401": {
|
"1401": {
|
||||||
"name": "The Herta",
|
"name": "The Herta",
|
||||||
"item_type": "Character",
|
"item_type": "Character",
|
||||||
@@ -3569,31 +3339,6 @@
|
|||||||
"item_type": "Character",
|
"item_type": "Character",
|
||||||
"rank_type": "5"
|
"rank_type": "5"
|
||||||
},
|
},
|
||||||
"1413": {
|
|
||||||
"name": "Evernight",
|
|
||||||
"item_type": "Character",
|
|
||||||
"rank_type": "5"
|
|
||||||
},
|
|
||||||
"1414": {
|
|
||||||
"name": "Dan Heng • Permansor Terrae",
|
|
||||||
"item_type": "Character",
|
|
||||||
"rank_type": "5"
|
|
||||||
},
|
|
||||||
"1415": {
|
|
||||||
"name": "Cyrene",
|
|
||||||
"item_type": "Character",
|
|
||||||
"rank_type": "5"
|
|
||||||
},
|
|
||||||
"1501": {
|
|
||||||
"name": "Sparxie",
|
|
||||||
"item_type": "Character",
|
|
||||||
"rank_type": "5"
|
|
||||||
},
|
|
||||||
"1502": {
|
|
||||||
"name": "Yao Guang",
|
|
||||||
"item_type": "Character",
|
|
||||||
"rank_type": "5"
|
|
||||||
},
|
|
||||||
"8001": {
|
"8001": {
|
||||||
"name": "{NICKNAME}",
|
"name": "{NICKNAME}",
|
||||||
"item_type": "Character",
|
"item_type": "Character",
|
||||||
@@ -3751,16 +3496,6 @@
|
|||||||
"item_type": "光円錐",
|
"item_type": "光円錐",
|
||||||
"rank_type": "3"
|
"rank_type": "3"
|
||||||
},
|
},
|
||||||
"20023": {
|
|
||||||
"name": "{RUBY_B#ししょう}嗤笑{RUBY_E#}",
|
|
||||||
"item_type": "光円錐",
|
|
||||||
"rank_type": "3"
|
|
||||||
},
|
|
||||||
"20024": {
|
|
||||||
"name": "{RUBY_B#ざんるい}残涙{RUBY_E#}",
|
|
||||||
"item_type": "光円錐",
|
|
||||||
"rank_type": "3"
|
|
||||||
},
|
|
||||||
"21000": {
|
"21000": {
|
||||||
"name": "{RUBY_B#しゅじゅつご}手術後{RUBY_E#}の{RUBY_B#かいわ}会話{RUBY_E#}",
|
"name": "{RUBY_B#しゅじゅつご}手術後{RUBY_E#}の{RUBY_B#かいわ}会話{RUBY_E#}",
|
||||||
"item_type": "光円錐",
|
"item_type": "光円錐",
|
||||||
@@ -4066,16 +3801,6 @@
|
|||||||
"item_type": "光円錐",
|
"item_type": "光円錐",
|
||||||
"rank_type": "4"
|
"rank_type": "4"
|
||||||
},
|
},
|
||||||
"21064": {
|
|
||||||
"name": "タケタケ{RUBY_B#ぼうけんき}冒険記{RUBY_E#}",
|
|
||||||
"item_type": "光円錐",
|
|
||||||
"rank_type": "4"
|
|
||||||
},
|
|
||||||
"21065": {
|
|
||||||
"name": "{RUBY_B#きょう}今日{RUBY_E#}は{RUBY_B#こううん}好運{RUBY_E#}",
|
|
||||||
"item_type": "光円錐",
|
|
||||||
"rank_type": "4"
|
|
||||||
},
|
|
||||||
"22000": {
|
"22000": {
|
||||||
"name": "{RUBY_B#はじ}初{RUBY_E#}めてのクエストの{RUBY_B#まえ}前{RUBY_E#}に",
|
"name": "{RUBY_B#はじ}初{RUBY_E#}めてのクエストの{RUBY_B#まえ}前{RUBY_E#}に",
|
||||||
"item_type": "光円錐",
|
"item_type": "光円錐",
|
||||||
@@ -4106,11 +3831,6 @@
|
|||||||
"item_type": "光円錐",
|
"item_type": "光円錐",
|
||||||
"rank_type": "4"
|
"rank_type": "4"
|
||||||
},
|
},
|
||||||
"22006": {
|
|
||||||
"name": "ピンク{RUBY_B#いろ}色{RUBY_E#}の{RUBY_B#あした}明日{RUBY_E#}へ",
|
|
||||||
"item_type": "光円錐",
|
|
||||||
"rank_type": "4"
|
|
||||||
},
|
|
||||||
"23000": {
|
"23000": {
|
||||||
"name": "{RUBY_B#ぎんがてつどう}銀河鉄道{RUBY_E#}の{RUBY_B#よる}夜{RUBY_E#}",
|
"name": "{RUBY_B#ぎんがてつどう}銀河鉄道{RUBY_E#}の{RUBY_B#よる}夜{RUBY_E#}",
|
||||||
"item_type": "光円錐",
|
"item_type": "光円錐",
|
||||||
@@ -4356,36 +4076,6 @@
|
|||||||
"item_type": "光円錐",
|
"item_type": "光円錐",
|
||||||
"rank_type": "5"
|
"rank_type": "5"
|
||||||
},
|
},
|
||||||
"23049": {
|
|
||||||
"name": "{RUBY_B#なが}長{RUBY_E#}き{RUBY_B#よる}夜{RUBY_E#}に{RUBY_B#かがや}輝{RUBY_E#}く{RUBY_B#ほし}星{RUBY_E#}へ",
|
|
||||||
"item_type": "光円錐",
|
|
||||||
"rank_type": "5"
|
|
||||||
},
|
|
||||||
"23050": {
|
|
||||||
"name": "{RUBY_B#かのじょ}彼女{RUBY_E#}の{RUBY_B#ほのお}炎{RUBY_E#}を{RUBY_B#わす}忘{RUBY_E#}れずに",
|
|
||||||
"item_type": "光円錐",
|
|
||||||
"rank_type": "5"
|
|
||||||
},
|
|
||||||
"23051": {
|
|
||||||
"name": "{RUBY_B#ばんり}万里{RUBY_E#}の{RUBY_B#さんが}山河{RUBY_E#}を{RUBY_B#こ}越{RUBY_E#}えて",
|
|
||||||
"item_type": "光円錐",
|
|
||||||
"rank_type": "5"
|
|
||||||
},
|
|
||||||
"23052": {
|
|
||||||
"name": "{RUBY_B#あい}愛{RUBY_E#}はいま{RUBY_B#えいえん}永遠{RUBY_E#}に",
|
|
||||||
"item_type": "光円錐",
|
|
||||||
"rank_type": "5"
|
|
||||||
},
|
|
||||||
"23053": {
|
|
||||||
"name": "きらびやかな{RUBY_B#せかい}世界{RUBY_E#}",
|
|
||||||
"item_type": "光円錐",
|
|
||||||
"rank_type": "5"
|
|
||||||
},
|
|
||||||
"23054": {
|
|
||||||
"name": "{RUBY_B#かのじょ}彼女{RUBY_E#}が{RUBY_B#み}視{RUBY_E#}ると{RUBY_B#き}決{RUBY_E#}めた{RUBY_B#とき}時{RUBY_E#}",
|
|
||||||
"item_type": "光円錐",
|
|
||||||
"rank_type": "5"
|
|
||||||
},
|
|
||||||
"24000": {
|
"24000": {
|
||||||
"name": "とある{RUBY_B#アイオーン}星神{RUBY_E#}の{RUBY_B#うんらく}殞落{RUBY_E#}を{RUBY_B#しる}記{RUBY_E#}す",
|
"name": "とある{RUBY_B#アイオーン}星神{RUBY_E#}の{RUBY_B#うんらく}殞落{RUBY_E#}を{RUBY_B#しる}記{RUBY_E#}す",
|
||||||
"item_type": "光円錐",
|
"item_type": "光円錐",
|
||||||
@@ -4721,11 +4411,6 @@
|
|||||||
"item_type": "キャラ",
|
"item_type": "キャラ",
|
||||||
"rank_type": "5"
|
"rank_type": "5"
|
||||||
},
|
},
|
||||||
"1321": {
|
|
||||||
"name": "ダリア",
|
|
||||||
"item_type": "キャラ",
|
|
||||||
"rank_type": "5"
|
|
||||||
},
|
|
||||||
"1401": {
|
"1401": {
|
||||||
"name": "マダム・ヘルタ",
|
"name": "マダム・ヘルタ",
|
||||||
"item_type": "キャラ",
|
"item_type": "キャラ",
|
||||||
@@ -4781,31 +4466,6 @@
|
|||||||
"item_type": "キャラ",
|
"item_type": "キャラ",
|
||||||
"rank_type": "5"
|
"rank_type": "5"
|
||||||
},
|
},
|
||||||
"1413": {
|
|
||||||
"name": "{RUBY_B#ながよづき}長夜月{RUBY_E#}",
|
|
||||||
"item_type": "キャラ",
|
|
||||||
"rank_type": "5"
|
|
||||||
},
|
|
||||||
"1414": {
|
|
||||||
"name": "{RUBY_B#たんこう}丹恒{RUBY_E#}・{RUBY_B#とうこう}騰荒{RUBY_E#}",
|
|
||||||
"item_type": "キャラ",
|
|
||||||
"rank_type": "5"
|
|
||||||
},
|
|
||||||
"1415": {
|
|
||||||
"name": "キュレネ",
|
|
||||||
"item_type": "キャラ",
|
|
||||||
"rank_type": "5"
|
|
||||||
},
|
|
||||||
"1501": {
|
|
||||||
"name": "{RUBY_B#ひばな}火花{RUBY_E#}",
|
|
||||||
"item_type": "キャラ",
|
|
||||||
"rank_type": "5"
|
|
||||||
},
|
|
||||||
"1502": {
|
|
||||||
"name": "{RUBY_B#コウコウ}爻光{RUBY_E#}",
|
|
||||||
"item_type": "キャラ",
|
|
||||||
"rank_type": "5"
|
|
||||||
},
|
|
||||||
"8001": {
|
"8001": {
|
||||||
"name": "{NICKNAME}",
|
"name": "{NICKNAME}",
|
||||||
"item_type": "キャラ",
|
"item_type": "キャラ",
|
||||||
@@ -4963,16 +4623,6 @@
|
|||||||
"item_type": "무기",
|
"item_type": "무기",
|
||||||
"rank_type": "3"
|
"rank_type": "3"
|
||||||
},
|
},
|
||||||
"20023": {
|
|
||||||
"name": "비웃음",
|
|
||||||
"item_type": "무기",
|
|
||||||
"rank_type": "3"
|
|
||||||
},
|
|
||||||
"20024": {
|
|
||||||
"name": "눈물의 흔적",
|
|
||||||
"item_type": "무기",
|
|
||||||
"rank_type": "3"
|
|
||||||
},
|
|
||||||
"21000": {
|
"21000": {
|
||||||
"name": "수술 후의 대화",
|
"name": "수술 후의 대화",
|
||||||
"item_type": "무기",
|
"item_type": "무기",
|
||||||
@@ -5278,16 +4928,6 @@
|
|||||||
"item_type": "무기",
|
"item_type": "무기",
|
||||||
"rank_type": "4"
|
"rank_type": "4"
|
||||||
},
|
},
|
||||||
"21064": {
|
|
||||||
"name": "슈룸 모험기",
|
|
||||||
"item_type": "무기",
|
|
||||||
"rank_type": "4"
|
|
||||||
},
|
|
||||||
"21065": {
|
|
||||||
"name": "오늘의 행운",
|
|
||||||
"item_type": "무기",
|
|
||||||
"rank_type": "4"
|
|
||||||
},
|
|
||||||
"22000": {
|
"22000": {
|
||||||
"name": "초보자 임무 시작 전",
|
"name": "초보자 임무 시작 전",
|
||||||
"item_type": "무기",
|
"item_type": "무기",
|
||||||
@@ -5318,11 +4958,6 @@
|
|||||||
"item_type": "무기",
|
"item_type": "무기",
|
||||||
"rank_type": "4"
|
"rank_type": "4"
|
||||||
},
|
},
|
||||||
"22006": {
|
|
||||||
"name": "핑크빛 내일을 향해",
|
|
||||||
"item_type": "무기",
|
|
||||||
"rank_type": "4"
|
|
||||||
},
|
|
||||||
"23000": {
|
"23000": {
|
||||||
"name": "은하철도의 밤",
|
"name": "은하철도의 밤",
|
||||||
"item_type": "무기",
|
"item_type": "무기",
|
||||||
@@ -5568,36 +5203,6 @@
|
|||||||
"item_type": "무기",
|
"item_type": "무기",
|
||||||
"rank_type": "5"
|
"rank_type": "5"
|
||||||
},
|
},
|
||||||
"23049": {
|
|
||||||
"name": "긴 밤의 별빛에게",
|
|
||||||
"item_type": "무기",
|
|
||||||
"rank_type": "5"
|
|
||||||
},
|
|
||||||
"23050": {
|
|
||||||
"name": "그녀의 불꽃을 잊지 말라",
|
|
||||||
"item_type": "무기",
|
|
||||||
"rank_type": "5"
|
|
||||||
},
|
|
||||||
"23051": {
|
|
||||||
"name": "끝없는 산과 강을 거치더라도",
|
|
||||||
"item_type": "무기",
|
|
||||||
"rank_type": "5"
|
|
||||||
},
|
|
||||||
"23052": {
|
|
||||||
"name": "이 순간처럼 영원한 사랑",
|
|
||||||
"item_type": "무기",
|
|
||||||
"rank_type": "5"
|
|
||||||
},
|
|
||||||
"23053": {
|
|
||||||
"name": "눈부신 파키의 세상",
|
|
||||||
"item_type": "무기",
|
|
||||||
"rank_type": "5"
|
|
||||||
},
|
|
||||||
"23054": {
|
|
||||||
"name": "그녀가 보기로 결심했을 때",
|
|
||||||
"item_type": "무기",
|
|
||||||
"rank_type": "5"
|
|
||||||
},
|
|
||||||
"24000": {
|
"24000": {
|
||||||
"name": "어떤 에이언즈의 몰락",
|
"name": "어떤 에이언즈의 몰락",
|
||||||
"item_type": "무기",
|
"item_type": "무기",
|
||||||
@@ -5933,11 +5538,6 @@
|
|||||||
"item_type": "캐릭터",
|
"item_type": "캐릭터",
|
||||||
"rank_type": "5"
|
"rank_type": "5"
|
||||||
},
|
},
|
||||||
"1321": {
|
|
||||||
"name": "달리아",
|
|
||||||
"item_type": "캐릭터",
|
|
||||||
"rank_type": "5"
|
|
||||||
},
|
|
||||||
"1401": {
|
"1401": {
|
||||||
"name": "더 헤르타",
|
"name": "더 헤르타",
|
||||||
"item_type": "캐릭터",
|
"item_type": "캐릭터",
|
||||||
@@ -5993,31 +5593,6 @@
|
|||||||
"item_type": "캐릭터",
|
"item_type": "캐릭터",
|
||||||
"rank_type": "5"
|
"rank_type": "5"
|
||||||
},
|
},
|
||||||
"1413": {
|
|
||||||
"name": "에버나이트",
|
|
||||||
"item_type": "캐릭터",
|
|
||||||
"rank_type": "5"
|
|
||||||
},
|
|
||||||
"1414": {
|
|
||||||
"name": "단항•등황",
|
|
||||||
"item_type": "캐릭터",
|
|
||||||
"rank_type": "5"
|
|
||||||
},
|
|
||||||
"1415": {
|
|
||||||
"name": "키레네",
|
|
||||||
"item_type": "캐릭터",
|
|
||||||
"rank_type": "5"
|
|
||||||
},
|
|
||||||
"1501": {
|
|
||||||
"name": "스파키",
|
|
||||||
"item_type": "캐릭터",
|
|
||||||
"rank_type": "5"
|
|
||||||
},
|
|
||||||
"1502": {
|
|
||||||
"name": "효광",
|
|
||||||
"item_type": "캐릭터",
|
|
||||||
"rank_type": "5"
|
|
||||||
},
|
|
||||||
"8001": {
|
"8001": {
|
||||||
"name": "{NICKNAME}",
|
"name": "{NICKNAME}",
|
||||||
"item_type": "캐릭터",
|
"item_type": "캐릭터",
|
||||||
@@ -6059,5 +5634,5 @@
|
|||||||
"rank_type": "5"
|
"rank_type": "5"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"version": "4.0"
|
"version": "3.4"
|
||||||
}
|
}
|
||||||
@@ -27,7 +27,7 @@ const exportUIGF = async (uids) => {
|
|||||||
export_timestamp: Math.ceil(Date.now() / 1000),
|
export_timestamp: Math.ceil(Date.now() / 1000),
|
||||||
export_app: `${name}`,
|
export_app: `${name}`,
|
||||||
export_app_version: `v${version}`,
|
export_app_version: `v${version}`,
|
||||||
version: "v4.1"
|
version: "v4.0"
|
||||||
},
|
},
|
||||||
hkrpg: []
|
hkrpg: []
|
||||||
}
|
}
|
||||||
@@ -139,7 +139,7 @@ const importUIGF = async () => {
|
|||||||
try {
|
try {
|
||||||
const jsonData = fs.readJsonSync(filepath[0])
|
const jsonData = fs.readJsonSync(filepath[0])
|
||||||
if('info' in jsonData && 'version' in jsonData.info) {
|
if('info' in jsonData && 'version' in jsonData.info) {
|
||||||
if (jsonData.info.version !== 'v4.0' && jsonData.info.version !== 'v4.1') {
|
if (jsonData.info.version !== 'v4.0') {
|
||||||
sendMsg('不支持此版本UIGF')
|
sendMsg('不支持此版本UIGF')
|
||||||
console.error('不支持此版本UIGF')
|
console.error('不支持此版本UIGF')
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -3,73 +3,54 @@ import json
|
|||||||
from opencc import OpenCC
|
from opencc import OpenCC
|
||||||
|
|
||||||
# 初始化 OpenCC 转换器
|
# 初始化 OpenCC 转换器
|
||||||
cc = OpenCC("s2t")
|
cc = OpenCC('s2t')
|
||||||
|
|
||||||
|
# 获取 JSON 数据
|
||||||
|
weapon_url = 'https://api.hakush.in/hsr/data/lightcone.json'
|
||||||
|
character_url = 'https://api.hakush.in/hsr/data/character.json'
|
||||||
|
version_url = 'https://api.hakush.in/hsr/new.json'
|
||||||
|
|
||||||
# 语言映射配置
|
# 语言映射配置
|
||||||
language_map = {
|
language_map = {
|
||||||
"zh-cn": "zh",
|
"zh-cn": "cn",
|
||||||
"zh-tw": "zh", # 简体转繁体
|
"zh-tw": "cn", # 简体转繁体
|
||||||
"en-us": "en",
|
"en-us": "en",
|
||||||
"ja-jp": "ja",
|
"ja-jp": "jp",
|
||||||
"ko-kr": "ko",
|
"ko-kr": "kr"
|
||||||
}
|
}
|
||||||
|
|
||||||
# 类型映射配置
|
# 类型映射配置
|
||||||
type_map = {
|
type_map = {
|
||||||
"weapon": {
|
"weapon": {"zh-cn": "光锥", "zh-tw": "光錐", "en-us": "Light Cone", "ja-jp": "光円錐", "ko-kr": "무기"},
|
||||||
"zh-cn": "光锥",
|
"character": {"zh-cn": "角色", "zh-tw": "角色", "en-us": "Character", "ja-jp": "キャラ", "ko-kr": "캐릭터"}
|
||||||
"zh-tw": "光錐",
|
|
||||||
"en-us": "Light Cone",
|
|
||||||
"ja-jp": "光円錐",
|
|
||||||
"ko-kr": "무기",
|
|
||||||
},
|
|
||||||
"character": {
|
|
||||||
"zh-cn": "角色",
|
|
||||||
"zh-tw": "角色",
|
|
||||||
"en-us": "Character",
|
|
||||||
"ja-jp": "キャラ",
|
|
||||||
"ko-kr": "캐릭터",
|
|
||||||
},
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
def fetch_json(url):
|
def fetch_json(url):
|
||||||
response = requests.get(url)
|
response = requests.get(url)
|
||||||
response.raise_for_status()
|
response.raise_for_status()
|
||||||
return response.json()
|
return response.json()
|
||||||
|
|
||||||
|
|
||||||
def transform_data(data, item_type):
|
def transform_data(data, item_type):
|
||||||
transformed = {lang: {} for lang in language_map.keys()}
|
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():
|
for lang, key in language_map.items():
|
||||||
name = item[key] if lang != "zh-tw" else cc.convert(item["zh"])
|
name = item[key] if lang != 'zh-tw' else cc.convert(item['cn'])
|
||||||
transformed[lang][id] = {
|
transformed[lang][id] = {
|
||||||
"name": name,
|
"name": name,
|
||||||
"item_type": type_map[item_type][lang],
|
"item_type": type_map[item_type][lang],
|
||||||
"rank_type": item["rank"][-1],
|
"rank_type": item['rank'][-1]
|
||||||
}
|
}
|
||||||
return transformed
|
return transformed
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
try:
|
try:
|
||||||
version_url = "https://static.nanoka.cc/manifest.json"
|
|
||||||
version_data = fetch_json(version_url)
|
|
||||||
|
|
||||||
latest_version = version_data['hsr']['live']
|
|
||||||
print(f"Latest version: {latest_version}")
|
|
||||||
|
|
||||||
weapon_url = f"https://static.nanoka.cc/hsr/{latest_version}/lightcone.json"
|
|
||||||
character_url = f"https://static.nanoka.cc/hsr/{latest_version}/character.json"
|
|
||||||
weapon_data = fetch_json(weapon_url)
|
weapon_data = fetch_json(weapon_url)
|
||||||
print("Fetched", len(weapon_data), "lightcones")
|
|
||||||
character_data = fetch_json(character_url)
|
character_data = fetch_json(character_url)
|
||||||
print("Fetched", len(character_data), "characters")
|
version_data = fetch_json(version_url)
|
||||||
|
|
||||||
transformed_data = {lang: {} for lang in language_map.keys()}
|
transformed_data = {lang: {} for lang in language_map.keys()}
|
||||||
|
|
||||||
transformed_data["version"] = latest_version
|
transformed_data["version"] = version_data["version"]
|
||||||
|
|
||||||
weapon_transformed = transform_data(weapon_data, "weapon")
|
weapon_transformed = transform_data(weapon_data, "weapon")
|
||||||
character_transformed = transform_data(character_data, "character")
|
character_transformed = transform_data(character_data, "character")
|
||||||
@@ -78,12 +59,13 @@ def main():
|
|||||||
transformed_data[lang].update(weapon_transformed[lang])
|
transformed_data[lang].update(weapon_transformed[lang])
|
||||||
transformed_data[lang].update(character_transformed[lang])
|
transformed_data[lang].update(character_transformed[lang])
|
||||||
|
|
||||||
with open("./src/idJson.json", "w", encoding="utf-8") as f:
|
with open('./src/idJson.json', 'w', encoding='utf-8') as f:
|
||||||
json.dump(transformed_data, f, ensure_ascii=False, indent=2)
|
json.dump(transformed_data, f, ensure_ascii=False, indent=2)
|
||||||
|
|
||||||
|
print("Data successfully transformed and saved")
|
||||||
|
|
||||||
except requests.RequestException as e:
|
except requests.RequestException as e:
|
||||||
print(f"Error fetching data: {e}")
|
print(f"Error fetching data: {e}")
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
main()
|
main()
|
||||||
|
|||||||
Reference in New Issue
Block a user