From af19c2959c5987ef75533b8bb062decfb1ca5c8a Mon Sep 17 00:00:00 2001 From: bbaban <3102509561@qq.com> Date: Tue, 10 Oct 2023 12:53:42 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=8D=E9=87=8D=E5=A4=8D=E7=94=9F=E6=88=90fp?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- plugins/genshin/model/mys/mysApi.js | 20 ++------------------ plugins/genshin/model/mys/mysInfo.js | 26 +++++++++++++++++++++++++- 2 files changed, 27 insertions(+), 19 deletions(-) diff --git a/plugins/genshin/model/mys/mysApi.js b/plugins/genshin/model/mys/mysApi.js index 1d1878c..32c991d 100644 --- a/plugins/genshin/model/mys/mysApi.js +++ b/plugins/genshin/model/mys/mysApi.js @@ -68,24 +68,8 @@ export default class MysApi { return this.isSr ? 'prod_gf_cn' : 'cn_gf01' } - async getData(type, data = {}, cached = false, isGetFP = false) { - if (!isGetFP && !this.device_fp && !data?.headers?.['x-rpc-device_fp']) { - let seed_id = this.generateSeed(16) - let device_fp = await this.getData('getFp', { - seed_id - }, false, true) - this.device_fp = device_fp?.data?.device_fp - } - if (!isGetFP && this.device_fp && !data?.headers?.['x-rpc-device_fp']) { - if (data?.headers) { - data.headers['x-rpc-device_fp'] = this.device_fp - } else { - if (!data) data = {} - data.headers = { - 'x-rpc-device_fp': this.device_fp - } - } - } + async getData(type, data = {}, cached = false) { + if (type == 'getFp') data = { seed_id: this.generateSeed(16) } let { url, headers, body } = this.getUrl(type, data) if (!url) return false diff --git a/plugins/genshin/model/mys/mysInfo.js b/plugins/genshin/model/mys/mysInfo.js index 70ba98a..010f68c 100644 --- a/plugins/genshin/model/mys/mysInfo.js +++ b/plugins/genshin/model/mys/mysInfo.js @@ -161,10 +161,34 @@ export default class MysInfo { let user = e.user?.getMysUser() let mysApi = new MysApi(mysInfo.uid, mysInfo.ckInfo.ck, option, e.isSr, user.device) + if (!data?.headers?.['x-rpc-device_fp']){ + let device_fp = (await mysApi.getData('getFp')).data?.device_fp + if (data?.headers) { + data.headers['x-rpc-device_fp'] = device_fp + } else { + if (!data) data = {} + data.headers = { + 'x-rpc-device_fp': device_fp + } + } + } + let res if (lodash.isObject(api)) { let all = [] /** 同步请求 */ + for (let i in api) { + if (!api[i]?.headers?.['x-rpc-device_fp']){ + if (api[i]?.headers) { + api[i].headers['x-rpc-device_fp'] = device_fp + } else { + if (!api[i]) api[i] = {} + api[i].headers = { + 'x-rpc-device_fp': device_fp + } + } + } + } if (e.apiSync) { res = [] for (let i in api) { @@ -396,7 +420,7 @@ export default class MysInfo { let vali = new Validate(mysApi.uid, mysApi.cookie, mysApi.option, mysApi.isSr ? 'sr' : 'gs', mysApi._device) res = await vali.getvali(type, data) } catch (error) { } - + if (!res || res?.retcode == 1034) { logger.mark(`[米游社查询失败][uid:${this.uid}][qq:${this.userId}] 遇到验证码`) if (!isTask) this.e.reply('米游社查询遇到验证码,请稍后再试')