fix:补充描述

This commit is contained in:
kissnavel 2024-09-22 08:12:02 +08:00
parent d6e52b1a24
commit c5f40f6a24
2 changed files with 20 additions and 23 deletions

View file

@ -69,7 +69,7 @@ git clone --depth=1 https://gitee.com/bietiaop/ZZZ-Plugin.git ./plugins/ZZZ-Plug
## 绑定设备
本插件会自带一个默认设备参数模拟真机进行请求,但是这个设备参数会被所有使用本插件的用户共同使用,因此**大概率**会遭遇账号异常,因此在遇到米游社抛出对应错误时,需要每个人绑定登陆米游社账号的常用设备参数进行请求。
本插件会自带一个默认设备参数模拟真机进行请求,但是这个设备参数会被所有使用本插件的用户共同使用,因此**大概率**会遭遇账号异常,因此在遇到米游社抛出对应错误时,需要每个人绑定**已经登陆米游社账号的常用设备参数**进行请求。
如果需要绑定设备,请发送 `%绑定设备帮助` 进行查看如何绑定。第一种方法就是抓包此种方法危害性较小技术难度相对较高但是IOS与Android设备通用。

View file

@ -130,7 +130,7 @@ export default class MysZZZApi extends MysApi {
if (data.deviceId) {
headers['x-rpc-device_id'] = data.deviceId;
}
// 如果有设备信息,写入设备信息
// 如果有绑定设备信息,写入绑定设备信息,否则写入默认设备信息
if (data?.deviceInfo && data?.modelName) {
const deviceBrand = data.deviceInfo?.split('/')[0];
try {
@ -140,6 +140,19 @@ export default class MysZZZApi extends MysApi {
} catch (error) {
logger.error(`[ZZZ]设备信息解析失败:${error.message}`);
}
} else {
const deviceCfg = settings.getConfig('device');
const defDeviceCfg = settings.getdefSet('device');
const modelName = _.get(deviceCfg, 'modelName') ?? _.get(defDeviceCfg, 'modelName');
const deviceInfo = _.get(deviceCfg, 'deviceInfo') ?? _.get(defDeviceCfg, 'deviceInfo');
const deviceBrand = deviceInfo.split('/')[0];
try {
headers['x-rpc-device_name'] = `${deviceBrand} ${modelName}`;
headers['x-rpc-device_model'] = modelName;
headers['x-rpc-csm_source'] = 'myself';
} catch (error) {
logger.error(`[ZZZ]设备信息解析失败:${error.message}`);
}
}
// 写入DS
switch (dsSalt) {
@ -212,12 +225,11 @@ export default class MysZZZApi extends MysApi {
* @returns {object}
*/
getHeaders(query = '', body = '') {
const info = this.getBindInfo()
const deviceCfg = settings.getConfig('device');
const defDeviceCfg = settings.getdefSet('device');
const deviceInfo = info?.deviceFingerprint ?? _.get(deviceCfg, 'deviceInfo') ?? _.get(defDeviceCfg, 'deviceInfo');
const osVersion = info?.androidVersion ?? _.get(deviceCfg, 'osVersion') ?? _.get(defDeviceCfg, 'osVersion');
const modelName = info?.deviceModel ?? _.get(deviceCfg, 'modelName') ?? _.get(defDeviceCfg, 'modelName');
const osVersion = _.get(deviceCfg, 'osVersion') ?? _.get(defDeviceCfg, 'osVersion');
const modelName = _.get(deviceCfg, 'modelName') ?? _.get(defDeviceCfg, 'modelName');
const deviceInfo = _.get(deviceCfg, 'deviceInfo') ?? _.get(defDeviceCfg, 'deviceInfo');
const deviceDisplay = deviceInfo.split('/')[3];
const cn = {
app_version: '2.73.1',
@ -257,22 +269,6 @@ export default class MysZZZApi extends MysApi {
};
}
async getBindInfo() {
// 从 this.cookie 中获取ltuid
const ck = this.cookie;
let ltuid = ck.match(/ltuid=(\d+);/);
if (ltuid) {
ltuid = ltuid[1];
}
let bindInfo = await redis.get(`ZZZ:DEVICE_FP:${ltuid}:BIND`);
if (bindInfo) {
bindInfo = JSON.parse(bindInfo);
} else {
bindInfo = null;
}
return { bindInfo };
}
/**
* 校验状态码
* @param e 消息e
@ -333,8 +329,9 @@ export default class MysZZZApi extends MysApi {
ltuid = ltuid[1];
}
if (ltuid) {
let bindInfo = this.getBindInfo();
let bindInfo = await redis.get(`ZZZ:DEVICE_FP:${ltuid}:BIND`);
if (bindInfo) {
bindInfo = JSON.parse(bindInfo);
try {
data = {
...data,