🐞 fix: 修复同时请求问题 #448

This commit is contained in:
底层用户
2025-08-20 10:35:43 +08:00
parent bfcd59daca
commit 201186bab2
5 changed files with 223 additions and 161 deletions

2
components.d.ts vendored
View File

@@ -92,11 +92,9 @@ declare module 'vue' {
NOl: typeof import('naive-ui')['NOl']
NP: typeof import('naive-ui')['NP']
NPopover: typeof import('naive-ui')['NPopover']
NProgress: typeof import('naive-ui')['NProgress']
NQrCode: typeof import('naive-ui')['NQrCode']
NRadio: typeof import('naive-ui')['NRadio']
NRadioGroup: typeof import('naive-ui')['NRadioGroup']
NResult: typeof import('naive-ui')['NResult']
NScrollbar: typeof import('naive-ui')['NScrollbar']
NSelect: typeof import('naive-ui')['NSelect']
NSkeleton: typeof import('naive-ui')['NSkeleton']

View File

@@ -46,7 +46,7 @@ const initAppServer = async () => {
server.register(initNcmAPI, { prefix: "/api" });
server.register(initUnblockAPI, { prefix: "/api" });
// 启动端口
const port = Number(import.meta.env["VITE_SERVER_PORT"] || 25884);
const port = Number(process.env["VITE_SERVER_PORT"] || 25884);
await server.listen({ port });
log.info(`🌐 Starting AppServer on port ${port}`);
return server;

View File

@@ -49,7 +49,7 @@
"@pixi/sprite": "^7.4.3",
"@vueuse/core": "^12.8.2",
"NeteaseCloudMusicApi": "^4.27.0",
"axios": "^1.8.4",
"axios": "^1.11.0",
"change-case": "^5.4.4",
"dayjs": "^1.11.13",
"electron-dl": "^4.0.0",
@@ -99,7 +99,7 @@
"eslint-plugin-vue": "^9.33.0",
"fast-glob": "^3.3.3",
"fastify": "^5.3.1",
"naive-ui": "^2.41.0",
"naive-ui": "^2.42.0",
"node-taglib-sharp": "^6.0.1",
"prettier": "^3.5.3",
"sass": "^1.86.3",
@@ -110,9 +110,9 @@
"vite": "^5.4.18",
"vite-plugin-compression": "^0.5.1",
"vite-plugin-wasm": "^3.4.1",
"vue": "^3.5.13",
"vue": "^3.5.18",
"vue-router": "^4.5.0",
"vue-tsc": "^2.2.8"
"vue-tsc": "^3.0.5"
},
"pnpm": {
"overrides": {

356
pnpm-lock.yaml generated
View File

@@ -20,7 +20,7 @@ importers:
version: 0.2.4
'@applemusic-like-lyrics/vue':
specifier: ^0.1.5
version: 0.1.5(@pixi/app@7.4.3(@pixi/core@7.4.3)(@pixi/display@7.4.3(@pixi/core@7.4.3)))(@pixi/core@7.4.3)(@pixi/display@7.4.3(@pixi/core@7.4.3))(@pixi/filter-blur@7.4.3(@pixi/core@7.4.3))(@pixi/filter-bulge-pinch@5.1.1(@pixi/core@7.4.3))(@pixi/filter-color-matrix@7.4.3(@pixi/core@7.4.3))(@pixi/sprite@7.4.3(@pixi/core@7.4.3)(@pixi/display@7.4.3(@pixi/core@7.4.3)))(jss-preset-default@10.10.0)(jss@10.10.0)(vue@3.5.13(typescript@5.8.3))
version: 0.1.5(@pixi/app@7.4.3(@pixi/core@7.4.3)(@pixi/display@7.4.3(@pixi/core@7.4.3)))(@pixi/core@7.4.3)(@pixi/display@7.4.3(@pixi/core@7.4.3))(@pixi/filter-blur@7.4.3(@pixi/core@7.4.3))(@pixi/filter-bulge-pinch@5.1.1(@pixi/core@7.4.3))(@pixi/filter-color-matrix@7.4.3(@pixi/core@7.4.3))(@pixi/sprite@7.4.3(@pixi/core@7.4.3)(@pixi/display@7.4.3(@pixi/core@7.4.3)))(jss-preset-default@10.10.0)(jss@10.10.0)(vue@3.5.18(typescript@5.8.3))
'@electron-toolkit/preload':
specifier: ^3.0.1
version: 3.0.1(electron@35.1.5)
@@ -61,8 +61,8 @@ importers:
specifier: ^4.27.0
version: 4.27.0
axios:
specifier: ^1.8.4
version: 1.8.4
specifier: ^1.11.0
version: 1.11.0
change-case:
specifier: ^5.4.4
version: 5.4.4
@@ -119,16 +119,16 @@ importers:
version: 10.5.1
pinia:
specifier: ^2.3.1
version: 2.3.1(typescript@5.8.3)(vue@3.5.13(typescript@5.8.3))
version: 2.3.1(typescript@5.8.3)(vue@3.5.18(typescript@5.8.3))
pinia-plugin-persistedstate:
specifier: ^4.2.0
version: 4.2.0(pinia@2.3.1(typescript@5.8.3)(vue@3.5.13(typescript@5.8.3)))
version: 4.2.0(pinia@2.3.1(typescript@5.8.3)(vue@3.5.18(typescript@5.8.3)))
plyr:
specifier: ^3.7.8
version: 3.7.8
vue-virt-list:
specifier: ^1.5.10
version: 1.5.10(vue@3.5.13(typescript@5.8.3))
version: 1.5.10(vue@3.5.18(typescript@5.8.3))
devDependencies:
'@electron-toolkit/tsconfig':
specifier: ^1.0.1
@@ -168,7 +168,7 @@ importers:
version: 8.30.1(eslint@9.24.0(jiti@2.4.2))(typescript@5.8.3)
'@vitejs/plugin-vue':
specifier: ^5.2.3
version: 5.2.3(vite@5.4.18(@types/node@22.14.1)(sass@1.86.3)(terser@5.39.0))(vue@3.5.13(typescript@5.8.3))
version: 5.2.3(vite@5.4.18(@types/node@22.14.1)(sass@1.86.3)(terser@5.39.0))(vue@3.5.18(typescript@5.8.3))
ajv:
specifier: ^8.17.1
version: 8.17.1
@@ -200,8 +200,8 @@ importers:
specifier: ^5.3.1
version: 5.3.1
naive-ui:
specifier: ^2.41.0
version: 2.41.0(vue@3.5.13(typescript@5.8.3))
specifier: ^2.42.0
version: 2.42.0(vue@3.5.18(typescript@5.8.3))
node-taglib-sharp:
specifier: ^6.0.1
version: 6.0.1
@@ -222,7 +222,7 @@ importers:
version: 0.19.0(@nuxt/kit@3.16.2)(@vueuse/core@12.8.2(typescript@5.8.3))(rollup@4.40.0)
unplugin-vue-components:
specifier: ^28.5.0
version: 28.5.0(@babel/parser@7.27.0)(@nuxt/kit@3.16.2)(vue@3.5.13(typescript@5.8.3))
version: 28.5.0(@babel/parser@7.28.3)(@nuxt/kit@3.16.2)(vue@3.5.18(typescript@5.8.3))
vite:
specifier: ^5.4.18
version: 5.4.18(@types/node@22.14.1)(sass@1.86.3)(terser@5.39.0)
@@ -233,14 +233,14 @@ importers:
specifier: ^3.4.1
version: 3.4.1(vite@5.4.18(@types/node@22.14.1)(sass@1.86.3)(terser@5.39.0))
vue:
specifier: ^3.5.13
version: 3.5.13(typescript@5.8.3)
specifier: ^3.5.18
version: 3.5.18(typescript@5.8.3)
vue-router:
specifier: ^4.5.0
version: 4.5.0(vue@3.5.13(typescript@5.8.3))
version: 4.5.0(vue@3.5.18(typescript@5.8.3))
vue-tsc:
specifier: ^2.2.8
version: 2.2.8(typescript@5.8.3)
specifier: ^3.0.5
version: 3.0.5(typescript@5.8.3)
packages:
@@ -313,10 +313,18 @@ packages:
resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==}
engines: {node: '>=6.9.0'}
'@babel/helper-string-parser@7.27.1':
resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==}
engines: {node: '>=6.9.0'}
'@babel/helper-validator-identifier@7.25.9':
resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==}
engines: {node: '>=6.9.0'}
'@babel/helper-validator-identifier@7.27.1':
resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==}
engines: {node: '>=6.9.0'}
'@babel/helper-validator-option@7.25.9':
resolution: {integrity: sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==}
engines: {node: '>=6.9.0'}
@@ -330,6 +338,11 @@ packages:
engines: {node: '>=6.0.0'}
hasBin: true
'@babel/parser@7.28.3':
resolution: {integrity: sha512-7+Ey1mAgYqFAx2h0RuoxcQT5+MlG3GTV0TQrgr7/ZliKsm/MNDxVVutlWaziMq7wJNAz8MTqz55XLpWvva6StA==}
engines: {node: '>=6.0.0'}
hasBin: true
'@babel/plugin-transform-arrow-functions@7.25.9':
resolution: {integrity: sha512-6jmooXYIwn9ca5/RylZADJ+EnSxVUS5sjeJ9UPk6RWRzXCmOJCy6dqItPJFpw2cuCangPK4OYr5uhGKcmrm5Qg==}
engines: {node: '>=6.9.0'}
@@ -352,6 +365,10 @@ packages:
resolution: {integrity: sha512-H45s8fVLYjbhFH62dIJ3WtmJ6RSPt/3DRO0ZcT2SUiYiQyz3BLVb9ADEnLl91m74aQPS3AzzeajZHYOalWe3bg==}
engines: {node: '>=6.9.0'}
'@babel/types@7.28.2':
resolution: {integrity: sha512-ruv7Ae4J5dUYULmeXw1gmb7rYRz57OWCPM57pHojnLq/3Z1CK2lNSLTCVjxVk1F/TZHwOZZrOWi0ur95BbLxNQ==}
engines: {node: '>=6.9.0'}
'@css-render/plugin-bem@0.15.14':
resolution: {integrity: sha512-QK513CJ7yEQxm/P3EwsI+d+ha8kSOcjGvD6SevM41neEMxdULE+18iuQK6tEChAWMOQNQPLG/Rw3Khb69r5neg==}
peerDependencies:
@@ -1447,26 +1464,26 @@ packages:
vite: ^5.0.0 || ^6.0.0
vue: ^3.2.25
'@volar/language-core@2.4.12':
resolution: {integrity: sha512-RLrFdXEaQBWfSnYGVxvR2WrO6Bub0unkdHYIdC31HzIEqATIuuhRRzYu76iGPZ6OtA4Au1SnW0ZwIqPP217YhA==}
'@volar/language-core@2.4.22':
resolution: {integrity: sha512-gp4M7Di5KgNyIyO903wTClYBavRt6UyFNpc5LWfyZr1lBsTUY+QrVZfmbNF2aCyfklBOVk9YC4p+zkwoyT7ECg==}
'@volar/source-map@2.4.12':
resolution: {integrity: sha512-bUFIKvn2U0AWojOaqf63ER0N/iHIBYZPpNGogfLPQ68F5Eet6FnLlyho7BS0y2HJ1jFhSif7AcuTx1TqsCzRzw==}
'@volar/source-map@2.4.22':
resolution: {integrity: sha512-L2nVr/1vei0xKRgO2tYVXtJYd09HTRjaZi418e85Q+QdbbqA8h7bBjfNyPPSsjnrOO4l4kaAo78c8SQUAdHvgA==}
'@volar/typescript@2.4.12':
resolution: {integrity: sha512-HJB73OTJDgPc80K30wxi3if4fSsZZAOScbj2fcicMuOPoOkcf9NNAINb33o+DzhBdF9xTKC1gnPmIRDous5S0g==}
'@volar/typescript@2.4.22':
resolution: {integrity: sha512-6ZczlJW1/GWTrNnkmZxJp4qyBt/SGVlcTuCWpI5zLrdPdCZsj66Aff9ZsfFaT3TyjG8zVYgBMYPuCm/eRkpcpQ==}
'@vue/compiler-core@3.5.13':
resolution: {integrity: sha512-oOdAkwqUfW1WqpwSYJce06wvt6HljgY3fGeM9NcVA1HaYOij3mZG9Rkysn0OHuyUAGMbEbARIpsG+LPVlBJ5/Q==}
'@vue/compiler-core@3.5.18':
resolution: {integrity: sha512-3slwjQrrV1TO8MoXgy3aynDQ7lslj5UqDxuHnrzHtpON5CBinhWjJETciPngpin/T3OuW3tXUf86tEurusnztw==}
'@vue/compiler-dom@3.5.13':
resolution: {integrity: sha512-ZOJ46sMOKUjO3e94wPdCzQ6P1Lx/vhp2RSvfaab88Ajexs0AHeV0uasYhi99WPaogmBlRHNRuly8xV75cNTMDA==}
'@vue/compiler-dom@3.5.18':
resolution: {integrity: sha512-RMbU6NTU70++B1JyVJbNbeFkK+A+Q7y9XKE2EM4NLGm2WFR8x9MbAtWxPPLdm0wUkuZv9trpwfSlL6tjdIa1+A==}
'@vue/compiler-sfc@3.5.13':
resolution: {integrity: sha512-6VdaljMpD82w6c2749Zhf5T9u5uLBWKnVue6XWxprDobftnletJ8+oel7sexFfM3qIxNmVE7LSFGTpv6obNyaQ==}
'@vue/compiler-sfc@3.5.18':
resolution: {integrity: sha512-5aBjvGqsWs+MoxswZPoTB9nSDb3dhd1x30xrrltKujlCxo48j8HGDNj3QPhF4VIS0VQDUrA1xUfp2hEa+FNyXA==}
'@vue/compiler-ssr@3.5.13':
resolution: {integrity: sha512-wMH6vrYHxQl/IybKJagqbquvxpWCuVYpoUJfCqFZwa/JY1GdATAQ+TgVtgrwwMZ0D07QhA99rs/EAAWfvG6KpA==}
'@vue/compiler-ssr@3.5.18':
resolution: {integrity: sha512-xM16Ak7rSWHkM3m22NlmcdIM+K4BMyFARAfV9hYFl+SFuRzrZ3uGMNW05kA5pmeMa0X9X963Kgou7ufdbpOP9g==}
'@vue/compiler-vue2@2.7.16':
resolution: {integrity: sha512-qYC3Psj9S/mfu9uVi5WvNZIzq+xnXMhOwbTFKKDD7b1lhpnn71jXSFdTQ+WsIEk0ONCd7VV2IMm7ONl6tbQ86A==}
@@ -1474,30 +1491,30 @@ packages:
'@vue/devtools-api@6.6.4':
resolution: {integrity: sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==}
'@vue/language-core@2.2.8':
resolution: {integrity: sha512-rrzB0wPGBvcwaSNRriVWdNAbHQWSf0NlGqgKHK5mEkXpefjUlVRP62u03KvwZpvKVjRnBIQ/Lwre+Mx9N6juUQ==}
'@vue/language-core@3.0.5':
resolution: {integrity: sha512-gCEjn9Ik7I/seHVNIEipOm8W+f3/kg60e8s1IgIkMYma2wu9ZGUTMv3mSL2bX+Md2L8fslceJ4SU8j1fgSRoiw==}
peerDependencies:
typescript: '*'
peerDependenciesMeta:
typescript:
optional: true
'@vue/reactivity@3.5.13':
resolution: {integrity: sha512-NaCwtw8o48B9I6L1zl2p41OHo/2Z4wqYGGIK1Khu5T7yxrn+ATOixn/Udn2m+6kZKB/J7cuT9DbWWhRxqixACg==}
'@vue/reactivity@3.5.18':
resolution: {integrity: sha512-x0vPO5Imw+3sChLM5Y+B6G1zPjwdOri9e8V21NnTnlEvkxatHEH5B5KEAJcjuzQ7BsjGrKtfzuQ5eQwXh8HXBg==}
'@vue/runtime-core@3.5.13':
resolution: {integrity: sha512-Fj4YRQ3Az0WTZw1sFe+QDb0aXCerigEpw418pw1HBUKFtnQHWzwojaukAs2X/c9DQz4MQ4bsXTGlcpGxU/RCIw==}
'@vue/runtime-core@3.5.18':
resolution: {integrity: sha512-DUpHa1HpeOQEt6+3nheUfqVXRog2kivkXHUhoqJiKR33SO4x+a5uNOMkV487WPerQkL0vUuRvq/7JhRgLW3S+w==}
'@vue/runtime-dom@3.5.13':
resolution: {integrity: sha512-dLaj94s93NYLqjLiyFzVs9X6dWhTdAlEAciC3Moq7gzAc13VJUdCnjjRurNM6uTLFATRHexHCTu/Xp3eW6yoog==}
'@vue/runtime-dom@3.5.18':
resolution: {integrity: sha512-YwDj71iV05j4RnzZnZtGaXwPoUWeRsqinblgVJwR8XTXYZ9D5PbahHQgsbmzUvCWNF6x7siQ89HgnX5eWkr3mw==}
'@vue/server-renderer@3.5.13':
resolution: {integrity: sha512-wAi4IRJV/2SAW3htkTlB+dHeRmpTiVIK1OGLWV1yeStVSebSQQOwGwIq0D3ZIoBj2C2qpgz5+vX9iEBkTdk5YA==}
'@vue/server-renderer@3.5.18':
resolution: {integrity: sha512-PvIHLUoWgSbDG7zLHqSqaCoZvHi6NNmfVFOqO+OnwvqMz/tqQr3FuGWS8ufluNddk7ZLBJYMrjcw1c6XzR12mA==}
peerDependencies:
vue: 3.5.13
vue: 3.5.18
'@vue/shared@3.5.13':
resolution: {integrity: sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==}
'@vue/shared@3.5.18':
resolution: {integrity: sha512-cZy8Dq+uuIXbxCZpuLd2GJdeSO/lIzIspC2WtkqIpje5QyFbvLaI5wZtdUjLHjGZrlVX6GilejatWwVYYRc8tA==}
'@vueuse/core@12.8.2':
resolution: {integrity: sha512-HbvCmZdzAu3VGi/pWYm5Ut+Kd9mn1ZHnn4L5G8kOQTPs/IwIAmJoBrmYk2ckLArgMXZj0AW3n5CAejLUO+PhdQ==}
@@ -1584,8 +1601,8 @@ packages:
ajv@8.17.1:
resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==}
alien-signals@1.0.13:
resolution: {integrity: sha512-OGj9yyTnJEttvzhTUWuscOvtqxq5vrhF7vL9oS0xJ2mK0ItPYP1/y+vCFebfxoEyAz0++1AIwJ5CMr+Fk3nDmg==}
alien-signals@2.0.7:
resolution: {integrity: sha512-wE7y3jmYeb0+h6mr5BOovuqhFv22O/MV9j5p0ndJsa7z1zJNPGQ4ph5pQk/kTTCWRC3xsA4SmtwmkzQO+7NCNg==}
ansi-regex@5.0.1:
resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
@@ -1693,8 +1710,8 @@ packages:
avvio@9.1.0:
resolution: {integrity: sha512-fYASnYi600CsH/j9EQov7lECAniYiBFiiAtBNuZYLA2leLe9qOvZzqYHFjtIj6gD2VMoMLP14834LFWvr4IfDw==}
axios@1.8.4:
resolution: {integrity: sha512-eBSYY4Y68NNlHbHBMdeDmKNtDgXWhQsJcGqzO3iLUM0GraQFSS9cVgPX5I9b3lbdFKyYoAEGAZF1DwhTaljNAw==}
axios@1.11.0:
resolution: {integrity: sha512-1Lx3WLFQWm3ooKDYZD1eXmoGO9fxYQjrycfHFC8P0sCfQVXyROp0p9PFWBehewBOdCwHc+f/b8I0fMto5eSfwA==}
balanced-match@1.0.2:
resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
@@ -2247,6 +2264,9 @@ packages:
end-of-stream@1.4.4:
resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==}
end-of-stream@1.4.5:
resolution: {integrity: sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==}
entities@4.5.0:
resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==}
engines: {node: '>=0.12'}
@@ -2547,8 +2567,8 @@ packages:
resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==}
engines: {node: '>=14'}
form-data@4.0.2:
resolution: {integrity: sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==}
form-data@4.0.4:
resolution: {integrity: sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==}
engines: {node: '>= 6'}
forwarded@0.2.0:
@@ -3310,8 +3330,8 @@ packages:
resolution: {integrity: sha512-xrm3w7SV0Wk+OythZcSbaI8mcr/KHd0knJieu8bVpaPfMv/Agz5EooCAPz3OR5hbYMiUG6dgAPKZKnMzV+3amA==}
engines: {node: '>=10'}
naive-ui@2.41.0:
resolution: {integrity: sha512-KnmLg+xPLwXV8QVR7ZZ69eCjvel7R5vru8+eFe4VoAJHEgqAJgVph6Zno9K2IVQRpSF3GBGea3tjavslOR4FAA==}
naive-ui@2.42.0:
resolution: {integrity: sha512-c7cXR2YgOjgtBadXHwiWL4Y0tpGLAI5W5QzzHksOi22iuHXoSGMAzdkVTGVPE/PM0MSGQ/JtUIzCx2Y0hU0vTQ==}
peerDependencies:
vue: ^3.0.0
@@ -3561,6 +3581,10 @@ packages:
resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==}
engines: {node: '>=12'}
picomatch@4.0.3:
resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==}
engines: {node: '>=12'}
pinia-plugin-persistedstate@4.2.0:
resolution: {integrity: sha512-3buhA7ac+ssbOIx3VRCC8oHkoFwhDM9oHRCjo7nj+O8WUqnW+jRqh7eYT5eS/DNa3H28zp3dYf/nd/Vc8zj8eQ==}
peerDependencies:
@@ -3620,6 +3644,10 @@ packages:
resolution: {integrity: sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==}
engines: {node: ^10 || ^12 || >=14}
postcss@8.5.6:
resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==}
engines: {node: ^10 || ^12 || >=14}
prelude-ls@1.2.1:
resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
engines: {node: '>= 0.8.0'}
@@ -4382,8 +4410,8 @@ packages:
peerDependencies:
vue: ^3.2.0
vue-tsc@2.2.8:
resolution: {integrity: sha512-jBYKBNFADTN+L+MdesNX/TB3XuDSyaWynKMDgR+yCSln0GQ9Tfb7JS2lr46s2LiFUT1WsmfWsSvIElyxzOPqcQ==}
vue-tsc@3.0.5:
resolution: {integrity: sha512-PsTFN9lo1HJCrZw9NoqjYcAbYDXY0cOKyuW2E7naX5jcaVyWpqEsZOHN9Dws5890E8e5SDAD4L4Zam3dxG3/Cw==}
hasBin: true
peerDependencies:
typescript: '>=5.0.0'
@@ -4397,8 +4425,8 @@ packages:
'@vue/composition-api':
optional: true
vue@3.5.13:
resolution: {integrity: sha512-wmeiSMxkZCSc+PM2w2VRsOYAZC8GdipNFRTsLSfodVqI9mbejKeXEGr8SckuLnrQPGe3oJN5c3K0vpoU9q/wCQ==}
vue@3.5.18:
resolution: {integrity: sha512-7W4Y4ZbMiQ3SEo+m9lnoNpV9xG7QVMLa+/0RFwwiAVkeYoyGXqWE85jabU4pllJNUzqfLShJ5YLptewhCWUgNA==}
peerDependencies:
typescript: '*'
peerDependenciesMeta:
@@ -4540,10 +4568,10 @@ snapshots:
'@applemusic-like-lyrics/lyric@0.2.4': {}
'@applemusic-like-lyrics/vue@0.1.5(@pixi/app@7.4.3(@pixi/core@7.4.3)(@pixi/display@7.4.3(@pixi/core@7.4.3)))(@pixi/core@7.4.3)(@pixi/display@7.4.3(@pixi/core@7.4.3))(@pixi/filter-blur@7.4.3(@pixi/core@7.4.3))(@pixi/filter-bulge-pinch@5.1.1(@pixi/core@7.4.3))(@pixi/filter-color-matrix@7.4.3(@pixi/core@7.4.3))(@pixi/sprite@7.4.3(@pixi/core@7.4.3)(@pixi/display@7.4.3(@pixi/core@7.4.3)))(jss-preset-default@10.10.0)(jss@10.10.0)(vue@3.5.13(typescript@5.8.3))':
'@applemusic-like-lyrics/vue@0.1.5(@pixi/app@7.4.3(@pixi/core@7.4.3)(@pixi/display@7.4.3(@pixi/core@7.4.3)))(@pixi/core@7.4.3)(@pixi/display@7.4.3(@pixi/core@7.4.3))(@pixi/filter-blur@7.4.3(@pixi/core@7.4.3))(@pixi/filter-bulge-pinch@5.1.1(@pixi/core@7.4.3))(@pixi/filter-color-matrix@7.4.3(@pixi/core@7.4.3))(@pixi/sprite@7.4.3(@pixi/core@7.4.3)(@pixi/display@7.4.3(@pixi/core@7.4.3)))(jss-preset-default@10.10.0)(jss@10.10.0)(vue@3.5.18(typescript@5.8.3))':
dependencies:
'@applemusic-like-lyrics/core': 0.1.3(@pixi/app@7.4.3(@pixi/core@7.4.3)(@pixi/display@7.4.3(@pixi/core@7.4.3)))(@pixi/core@7.4.3)(@pixi/display@7.4.3(@pixi/core@7.4.3))(@pixi/filter-blur@7.4.3(@pixi/core@7.4.3))(@pixi/filter-bulge-pinch@5.1.1(@pixi/core@7.4.3))(@pixi/filter-color-matrix@7.4.3(@pixi/core@7.4.3))(@pixi/sprite@7.4.3(@pixi/core@7.4.3)(@pixi/display@7.4.3(@pixi/core@7.4.3)))(jss-preset-default@10.10.0)(jss@10.10.0)
vue: 3.5.13(typescript@5.8.3)
vue: 3.5.18(typescript@5.8.3)
transitivePeerDependencies:
- '@pixi/app'
- '@pixi/core'
@@ -4619,8 +4647,12 @@ snapshots:
'@babel/helper-string-parser@7.25.9': {}
'@babel/helper-string-parser@7.27.1': {}
'@babel/helper-validator-identifier@7.25.9': {}
'@babel/helper-validator-identifier@7.27.1': {}
'@babel/helper-validator-option@7.25.9': {}
'@babel/helpers@7.27.0':
@@ -4632,6 +4664,10 @@ snapshots:
dependencies:
'@babel/types': 7.27.0
'@babel/parser@7.28.3':
dependencies:
'@babel/types': 7.28.2
'@babel/plugin-transform-arrow-functions@7.25.9(@babel/core@7.26.10)':
dependencies:
'@babel/core': 7.26.10
@@ -4664,13 +4700,18 @@ snapshots:
'@babel/helper-string-parser': 7.25.9
'@babel/helper-validator-identifier': 7.25.9
'@babel/types@7.28.2':
dependencies:
'@babel/helper-string-parser': 7.27.1
'@babel/helper-validator-identifier': 7.27.1
'@css-render/plugin-bem@0.15.14(css-render@0.15.14)':
dependencies:
css-render: 0.15.14
'@css-render/vue3-ssr@0.15.14(vue@3.5.13(typescript@5.8.3))':
'@css-render/vue3-ssr@0.15.14(vue@3.5.18(typescript@5.8.3))':
dependencies:
vue: 3.5.13(typescript@5.8.3)
vue: 3.5.18(typescript@5.8.3)
'@develar/schema-utils@2.6.5':
dependencies:
@@ -5649,52 +5690,52 @@ snapshots:
'@typescript-eslint/types': 8.30.1
eslint-visitor-keys: 4.2.0
'@vitejs/plugin-vue@5.2.3(vite@5.4.18(@types/node@22.14.1)(sass@1.86.3)(terser@5.39.0))(vue@3.5.13(typescript@5.8.3))':
'@vitejs/plugin-vue@5.2.3(vite@5.4.18(@types/node@22.14.1)(sass@1.86.3)(terser@5.39.0))(vue@3.5.18(typescript@5.8.3))':
dependencies:
vite: 5.4.18(@types/node@22.14.1)(sass@1.86.3)(terser@5.39.0)
vue: 3.5.13(typescript@5.8.3)
vue: 3.5.18(typescript@5.8.3)
'@volar/language-core@2.4.12':
'@volar/language-core@2.4.22':
dependencies:
'@volar/source-map': 2.4.12
'@volar/source-map': 2.4.22
'@volar/source-map@2.4.12': {}
'@volar/source-map@2.4.22': {}
'@volar/typescript@2.4.12':
'@volar/typescript@2.4.22':
dependencies:
'@volar/language-core': 2.4.12
'@volar/language-core': 2.4.22
path-browserify: 1.0.1
vscode-uri: 3.1.0
'@vue/compiler-core@3.5.13':
'@vue/compiler-core@3.5.18':
dependencies:
'@babel/parser': 7.27.0
'@vue/shared': 3.5.13
'@babel/parser': 7.28.3
'@vue/shared': 3.5.18
entities: 4.5.0
estree-walker: 2.0.2
source-map-js: 1.2.1
'@vue/compiler-dom@3.5.13':
'@vue/compiler-dom@3.5.18':
dependencies:
'@vue/compiler-core': 3.5.13
'@vue/shared': 3.5.13
'@vue/compiler-core': 3.5.18
'@vue/shared': 3.5.18
'@vue/compiler-sfc@3.5.13':
'@vue/compiler-sfc@3.5.18':
dependencies:
'@babel/parser': 7.27.0
'@vue/compiler-core': 3.5.13
'@vue/compiler-dom': 3.5.13
'@vue/compiler-ssr': 3.5.13
'@vue/shared': 3.5.13
'@babel/parser': 7.28.3
'@vue/compiler-core': 3.5.18
'@vue/compiler-dom': 3.5.18
'@vue/compiler-ssr': 3.5.18
'@vue/shared': 3.5.18
estree-walker: 2.0.2
magic-string: 0.30.17
postcss: 8.5.3
postcss: 8.5.6
source-map-js: 1.2.1
'@vue/compiler-ssr@3.5.13':
'@vue/compiler-ssr@3.5.18':
dependencies:
'@vue/compiler-dom': 3.5.13
'@vue/shared': 3.5.13
'@vue/compiler-dom': 3.5.18
'@vue/shared': 3.5.18
'@vue/compiler-vue2@2.7.16':
dependencies:
@@ -5703,49 +5744,49 @@ snapshots:
'@vue/devtools-api@6.6.4': {}
'@vue/language-core@2.2.8(typescript@5.8.3)':
'@vue/language-core@3.0.5(typescript@5.8.3)':
dependencies:
'@volar/language-core': 2.4.12
'@vue/compiler-dom': 3.5.13
'@volar/language-core': 2.4.22
'@vue/compiler-dom': 3.5.18
'@vue/compiler-vue2': 2.7.16
'@vue/shared': 3.5.13
alien-signals: 1.0.13
minimatch: 9.0.5
'@vue/shared': 3.5.18
alien-signals: 2.0.7
muggle-string: 0.4.1
path-browserify: 1.0.1
picomatch: 4.0.3
optionalDependencies:
typescript: 5.8.3
'@vue/reactivity@3.5.13':
'@vue/reactivity@3.5.18':
dependencies:
'@vue/shared': 3.5.13
'@vue/shared': 3.5.18
'@vue/runtime-core@3.5.13':
'@vue/runtime-core@3.5.18':
dependencies:
'@vue/reactivity': 3.5.13
'@vue/shared': 3.5.13
'@vue/reactivity': 3.5.18
'@vue/shared': 3.5.18
'@vue/runtime-dom@3.5.13':
'@vue/runtime-dom@3.5.18':
dependencies:
'@vue/reactivity': 3.5.13
'@vue/runtime-core': 3.5.13
'@vue/shared': 3.5.13
'@vue/reactivity': 3.5.18
'@vue/runtime-core': 3.5.18
'@vue/shared': 3.5.18
csstype: 3.1.3
'@vue/server-renderer@3.5.13(vue@3.5.13(typescript@5.8.3))':
'@vue/server-renderer@3.5.18(vue@3.5.18(typescript@5.8.3))':
dependencies:
'@vue/compiler-ssr': 3.5.13
'@vue/shared': 3.5.13
vue: 3.5.13(typescript@5.8.3)
'@vue/compiler-ssr': 3.5.18
'@vue/shared': 3.5.18
vue: 3.5.18(typescript@5.8.3)
'@vue/shared@3.5.13': {}
'@vue/shared@3.5.18': {}
'@vueuse/core@12.8.2(typescript@5.8.3)':
dependencies:
'@types/web-bluetooth': 0.0.21
'@vueuse/metadata': 12.8.2
'@vueuse/shared': 12.8.2(typescript@5.8.3)
vue: 3.5.13(typescript@5.8.3)
vue: 3.5.18(typescript@5.8.3)
transitivePeerDependencies:
- typescript
@@ -5753,7 +5794,7 @@ snapshots:
'@vueuse/shared@12.8.2(typescript@5.8.3)':
dependencies:
vue: 3.5.13(typescript@5.8.3)
vue: 3.5.18(typescript@5.8.3)
transitivePeerDependencies:
- typescript
@@ -5761,7 +5802,7 @@ snapshots:
NeteaseCloudMusicApi@4.27.0:
dependencies:
axios: 1.8.4
axios: 1.11.0
crypto-js: 4.2.0
express: 4.21.2
express-fileupload: 1.5.1
@@ -5840,7 +5881,7 @@ snapshots:
json-schema-traverse: 1.0.0
require-from-string: 2.0.2
alien-signals@1.0.13: {}
alien-signals@2.0.7: {}
ansi-regex@5.0.1: {}
@@ -5883,7 +5924,7 @@ snapshots:
ejs: 3.1.10
electron-builder-squirrel-windows: 25.1.8(dmg-builder@25.1.8)
electron-publish: 25.1.7
form-data: 4.0.2
form-data: 4.0.4
fs-extra: 10.1.0
hosted-git-info: 4.1.0
is-ci: 3.0.1
@@ -6018,10 +6059,10 @@ snapshots:
'@fastify/error': 4.1.0
fastq: 1.19.1
axios@1.8.4:
axios@1.11.0:
dependencies:
follow-redirects: 1.15.9
form-data: 4.0.2
form-data: 4.0.4
proxy-from-env: 1.1.0
transitivePeerDependencies:
- debug
@@ -6633,7 +6674,7 @@ snapshots:
builder-util: 26.0.11
builder-util-runtime: 9.3.1
chalk: 4.1.2
form-data: 4.0.2
form-data: 4.0.4
fs-extra: 10.1.0
lazy-val: 1.0.5
mime: 2.6.0
@@ -6697,6 +6738,10 @@ snapshots:
dependencies:
once: 1.4.0
end-of-stream@1.4.5:
dependencies:
once: 1.4.0
entities@4.5.0: {}
env-paths@2.2.1: {}
@@ -7115,11 +7160,12 @@ snapshots:
cross-spawn: 7.0.6
signal-exit: 4.1.0
form-data@4.0.2:
form-data@4.0.4:
dependencies:
asynckit: 0.4.0
combined-stream: 1.0.8
es-set-tostringtag: 2.1.0
hasown: 2.0.2
mime-types: 2.1.35
forwarded@0.2.0: {}
@@ -7934,10 +7980,10 @@ snapshots:
transitivePeerDependencies:
- supports-color
naive-ui@2.41.0(vue@3.5.13(typescript@5.8.3)):
naive-ui@2.42.0(vue@3.5.18(typescript@5.8.3)):
dependencies:
'@css-render/plugin-bem': 0.15.14(css-render@0.15.14)
'@css-render/vue3-ssr': 0.15.14(vue@3.5.13(typescript@5.8.3))
'@css-render/vue3-ssr': 0.15.14(vue@3.5.18(typescript@5.8.3))
'@types/katex': 0.16.7
'@types/lodash': 4.17.16
'@types/lodash-es': 4.17.12
@@ -7952,10 +7998,10 @@ snapshots:
lodash-es: 4.17.21
seemly: 0.3.10
treemate: 0.3.11
vdirs: 0.1.8(vue@3.5.13(typescript@5.8.3))
vooks: 0.2.12(vue@3.5.13(typescript@5.8.3))
vue: 3.5.13(typescript@5.8.3)
vueuc: 0.4.64(vue@3.5.13(typescript@5.8.3))
vdirs: 0.1.8(vue@3.5.18(typescript@5.8.3))
vooks: 0.2.12(vue@3.5.18(typescript@5.8.3))
vue: 3.5.18(typescript@5.8.3)
vueuc: 0.4.64(vue@3.5.18(typescript@5.8.3))
nanoid@3.3.11: {}
@@ -8197,22 +8243,24 @@ snapshots:
picomatch@4.0.2: {}
pinia-plugin-persistedstate@4.2.0(pinia@2.3.1(typescript@5.8.3)(vue@3.5.13(typescript@5.8.3))):
picomatch@4.0.3: {}
pinia-plugin-persistedstate@4.2.0(pinia@2.3.1(typescript@5.8.3)(vue@3.5.18(typescript@5.8.3))):
dependencies:
'@nuxt/kit': 3.16.2
deep-pick-omit: 1.2.1
defu: 6.1.4
destr: 2.0.5
optionalDependencies:
pinia: 2.3.1(typescript@5.8.3)(vue@3.5.13(typescript@5.8.3))
pinia: 2.3.1(typescript@5.8.3)(vue@3.5.18(typescript@5.8.3))
transitivePeerDependencies:
- magicast
pinia@2.3.1(typescript@5.8.3)(vue@3.5.13(typescript@5.8.3)):
pinia@2.3.1(typescript@5.8.3)(vue@3.5.18(typescript@5.8.3)):
dependencies:
'@vue/devtools-api': 6.6.4
vue: 3.5.13(typescript@5.8.3)
vue-demi: 0.14.10(vue@3.5.13(typescript@5.8.3))
vue: 3.5.18(typescript@5.8.3)
vue-demi: 0.14.10(vue@3.5.18(typescript@5.8.3))
optionalDependencies:
typescript: 5.8.3
transitivePeerDependencies:
@@ -8281,6 +8329,12 @@ snapshots:
picocolors: 1.1.1
source-map-js: 1.2.1
postcss@8.5.6:
dependencies:
nanoid: 3.3.11
picocolors: 1.1.1
source-map-js: 1.2.1
prelude-ls@1.2.1: {}
prettier@3.5.3: {}
@@ -8772,7 +8826,7 @@ snapshots:
tar-stream@2.2.0:
dependencies:
bl: 4.1.0
end-of-stream: 1.4.4
end-of-stream: 1.4.5
fs-constants: 1.0.0
inherits: 2.0.4
readable-stream: 3.6.2
@@ -8918,7 +8972,7 @@ snapshots:
magic-string: 0.30.17
mlly: 1.7.4
pathe: 2.0.3
picomatch: 4.0.2
picomatch: 4.0.3
pkg-types: 2.1.0
scule: 1.3.0
strip-literal: 3.0.0
@@ -8962,7 +9016,7 @@ snapshots:
pathe: 2.0.3
picomatch: 4.0.2
unplugin-vue-components@28.5.0(@babel/parser@7.27.0)(@nuxt/kit@3.16.2)(vue@3.5.13(typescript@5.8.3)):
unplugin-vue-components@28.5.0(@babel/parser@7.28.3)(@nuxt/kit@3.16.2)(vue@3.5.18(typescript@5.8.3)):
dependencies:
chokidar: 3.6.0
debug: 4.4.0
@@ -8972,9 +9026,9 @@ snapshots:
tinyglobby: 0.2.12
unplugin: 2.3.2
unplugin-utils: 0.2.4
vue: 3.5.13(typescript@5.8.3)
vue: 3.5.18(typescript@5.8.3)
optionalDependencies:
'@babel/parser': 7.27.0
'@babel/parser': 7.28.3
'@nuxt/kit': 3.16.2
transitivePeerDependencies:
- supports-color
@@ -9030,10 +9084,10 @@ snapshots:
vary@1.1.2: {}
vdirs@0.1.8(vue@3.5.13(typescript@5.8.3)):
vdirs@0.1.8(vue@3.5.18(typescript@5.8.3)):
dependencies:
evtd: 0.2.4
vue: 3.5.13(typescript@5.8.3)
vue: 3.5.18(typescript@5.8.3)
verror@1.10.1:
dependencies:
@@ -9066,16 +9120,16 @@ snapshots:
sass: 1.86.3
terser: 5.39.0
vooks@0.2.12(vue@3.5.13(typescript@5.8.3)):
vooks@0.2.12(vue@3.5.18(typescript@5.8.3)):
dependencies:
evtd: 0.2.4
vue: 3.5.13(typescript@5.8.3)
vue: 3.5.18(typescript@5.8.3)
vscode-uri@3.1.0: {}
vue-demi@0.14.10(vue@3.5.13(typescript@5.8.3)):
vue-demi@0.14.10(vue@3.5.18(typescript@5.8.3)):
dependencies:
vue: 3.5.13(typescript@5.8.3)
vue: 3.5.18(typescript@5.8.3)
vue-eslint-parser@9.4.3(eslint@9.24.0(jiti@2.4.2)):
dependencies:
@@ -9090,42 +9144,42 @@ snapshots:
transitivePeerDependencies:
- supports-color
vue-router@4.5.0(vue@3.5.13(typescript@5.8.3)):
vue-router@4.5.0(vue@3.5.18(typescript@5.8.3)):
dependencies:
'@vue/devtools-api': 6.6.4
vue: 3.5.13(typescript@5.8.3)
vue: 3.5.18(typescript@5.8.3)
vue-tsc@2.2.8(typescript@5.8.3):
vue-tsc@3.0.5(typescript@5.8.3):
dependencies:
'@volar/typescript': 2.4.12
'@vue/language-core': 2.2.8(typescript@5.8.3)
'@volar/typescript': 2.4.22
'@vue/language-core': 3.0.5(typescript@5.8.3)
typescript: 5.8.3
vue-virt-list@1.5.10(vue@3.5.13(typescript@5.8.3)):
vue-virt-list@1.5.10(vue@3.5.18(typescript@5.8.3)):
dependencies:
vue: 3.5.13(typescript@5.8.3)
vue-demi: 0.14.10(vue@3.5.13(typescript@5.8.3))
vue: 3.5.18(typescript@5.8.3)
vue-demi: 0.14.10(vue@3.5.18(typescript@5.8.3))
vue@3.5.13(typescript@5.8.3):
vue@3.5.18(typescript@5.8.3):
dependencies:
'@vue/compiler-dom': 3.5.13
'@vue/compiler-sfc': 3.5.13
'@vue/runtime-dom': 3.5.13
'@vue/server-renderer': 3.5.13(vue@3.5.13(typescript@5.8.3))
'@vue/shared': 3.5.13
'@vue/compiler-dom': 3.5.18
'@vue/compiler-sfc': 3.5.18
'@vue/runtime-dom': 3.5.18
'@vue/server-renderer': 3.5.18(vue@3.5.18(typescript@5.8.3))
'@vue/shared': 3.5.18
optionalDependencies:
typescript: 5.8.3
vueuc@0.4.64(vue@3.5.13(typescript@5.8.3)):
vueuc@0.4.64(vue@3.5.18(typescript@5.8.3)):
dependencies:
'@css-render/vue3-ssr': 0.15.14(vue@3.5.13(typescript@5.8.3))
'@css-render/vue3-ssr': 0.15.14(vue@3.5.18(typescript@5.8.3))
'@juggle/resize-observer': 3.4.0
css-render: 0.15.14
evtd: 0.2.4
seemly: 0.3.10
vdirs: 0.1.8(vue@3.5.13(typescript@5.8.3))
vooks: 0.2.12(vue@3.5.13(typescript@5.8.3))
vue: 3.5.13(typescript@5.8.3)
vdirs: 0.1.8(vue@3.5.18(typescript@5.8.3))
vooks: 0.2.12(vue@3.5.18(typescript@5.8.3))
vue: 3.5.18(typescript@5.8.3)
wcwidth@1.0.1:
dependencies:

View File

@@ -167,12 +167,22 @@ class Player {
const keyWord = songData.name + "-" + artist;
if (!songId || !keyWord) return null;
// 尝试解锁
const [neteaseUrl, kuwoUrl] = await Promise.all([
const results = await Promise.allSettled([
unlockSongUrl(songId, keyWord, "netease"),
unlockSongUrl(songId, keyWord, "kuwo"),
]);
if (neteaseUrl.code === 200 && neteaseUrl.url !== "") return neteaseUrl.url;
if (kuwoUrl.code === 200 && kuwoUrl.url !== "") return kuwoUrl.url;
// 解析结果
const [neteaseRes, kuwoRes] = results;
if (
neteaseRes.status === "fulfilled" &&
neteaseRes.value.code === 200 &&
neteaseRes.value.url
) {
return neteaseRes.value.url;
}
if (kuwoRes.status === "fulfilled" && kuwoRes.value.code === 200 && kuwoRes.value.url) {
return kuwoRes.value.url;
}
return null;
} catch (error) {
console.error("Error in getUnlockSongUrl", error);