mirror of
https://github.com/NeteaseCloudMusicApiEnhanced/api-enhanced.git
synced 2026-10-20 22:51:23 +08:00
refactors
This commit is contained in:
+13
-14
@@ -1,28 +1,27 @@
|
||||
const runtimeState = require('./util/runtimeState')
|
||||
const { generateRandomChineseIP } = require('./util/index')
|
||||
const request = require('./util/request')
|
||||
const { generateRandomChineseIP, generateDeviceId } = require('./util/index')
|
||||
|
||||
/**
|
||||
* 启动/预热配置。
|
||||
* 启动 / 手动刷新运行时动态配置。
|
||||
*
|
||||
* 凭证均存于内存(util/runtimeState.js),不做任何文件 I/O:
|
||||
* - 设备 ID 先行 —— xeapi 公钥注册需携带 deviceId(服务端对无
|
||||
* deviceId 的请求不下发 sk),匿名注册也复用同一设备身份;
|
||||
* - xeapi 公钥其次 —— 注册匿名令牌走 xeapi 加密,依赖该公钥;
|
||||
* - 匿名令牌最后注册,三者就绪后冷启动一次即可完成引导。
|
||||
*/
|
||||
async function generateConfig() {
|
||||
global.cnIp = generateRandomChineseIP()
|
||||
|
||||
// 先加载可选种子,保证网络刷新失败时仍有可用值(迁移/降级)。
|
||||
runtimeState.loadSeed()
|
||||
|
||||
// 启动时主动刷新匿名 token;失败则退回到种子(可能为空,由请求层按需兜底)。
|
||||
if (!global.deviceId) {
|
||||
global.deviceId = generateDeviceId()
|
||||
}
|
||||
try {
|
||||
const { refreshAnonymousToken } = require('./util/credentials')
|
||||
await refreshAnonymousToken()
|
||||
await request.refreshXeapiPublicKey()
|
||||
} catch (error) {
|
||||
console.log(error)
|
||||
}
|
||||
|
||||
try {
|
||||
const { fetchXeapiPublicKey } = require('./util/credentials')
|
||||
const publicKey = await fetchXeapiPublicKey()
|
||||
runtimeState.mergeXeapiPublicKey(publicKey)
|
||||
await request.refreshAnonymousToken()
|
||||
} catch (error) {
|
||||
console.log(error)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user