refactors

This commit is contained in:
Takanashi Hoshino
2026-09-13 12:04:37 +08:00
parent c478367c6c
commit ddfd680301
15 changed files with 196 additions and 651 deletions
+13 -14
View File
@@ -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)
}