fix: 部分逻辑

This commit is contained in:
bietiaop 2024-08-19 22:39:21 +08:00
parent 34cd8b15dc
commit 70836ab785
9 changed files with 204 additions and 173 deletions

View file

@ -16,6 +16,10 @@ export class Panel extends ZZZPlugin {
reg: `${rulePrefix}绑定设备$`,
fnc: 'bindDevice',
},
{
reg: `${rulePrefix}解绑设备$`,
fnc: 'deleteBind',
},
{
reg: `${rulePrefix}绑定设备帮助$`,
fnc: 'bindDeviceHelp',
@ -25,9 +29,6 @@ export class Panel extends ZZZPlugin {
}
async bindDevice() {
const uid = await this.getUID();
if (!uid) {
this.reply('未绑定UID');
}
this.setContext('toBindDevice');
await this.reply(
`为UID ${uid}绑定设备,请发送设备信息,或者发送“取消”取消绑定`,
@ -58,13 +59,20 @@ export class Panel extends ZZZPlugin {
this.reply('设备信息格式错误', false, { at: true, recallMsg: 100 });
return false;
}
if (!!info?.device_id && !!info.device_fp) {
await redis.set(`ZZZ:DEVICE_FP:${ltuid}:FP`, info.device_fp);
await redis.set(`ZZZ:DEVICE_FP:${ltuid}:ID`, info.device_id);
await this.reply('绑定设备成功', false, { at: true, recallMsg: 100 });
this.finish('toBindDevice');
return false;
}
if (
!'deviceName' in info ||
!'deviceBoard' in info ||
!'deviceModel' in info ||
!'oaid' in info ||
!'deviceFingerprint' in info ||
!'deviceProduct' in info
!info?.deviceName ||
!info?.deviceBoard ||
!info?.deviceModel ||
!info?.oaid ||
!info?.deviceFingerprint ||
!info?.deviceProduct
) {
this.reply('设备信息格式错误', false, { at: true, recallMsg: 100 });
return false;
@ -86,16 +94,41 @@ export class Panel extends ZZZPlugin {
return false;
}
}
async deleteBind() {
const ltuid = await this.getLtuid();
await redis.del(`ZZZ:DEVICE_FP:${ltuid}:FP`);
await redis.del(`ZZZ:DEVICE_FP:${ltuid}:BIND`);
await redis.del(`ZZZ:DEVICE_FP:${ltuid}:ID`);
await this.reply('解绑设备成功', false, { at: true, recallMsg: 100 });
}
async bindDeviceHelp() {
const msgs = [
'绑定设备帮助',
settings.getConfig('config')?.url,
'1. 使用常用米游社手机下载以上APK并安装',
'[绑定设备]',
'方法一:',
'1. 使用抓包软件抓取米游社APP的请求',
'2. 在请求头内找到【x-rpc-device_id】和【x-rpc-device_fp】',
'3. 自行构造如下格式的信息:',
' {device_id: "x-rpc-device_id的内容", device_fp: "x-rpc-device_fp的内容"}',
'4. 给机器人发送"%绑定设备"指令',
'5. 机器人会提示发送设备信息',
'6. 粘贴自行构造的信息发送',
'7. 提示绑定成功',
'--------------------------------',
'方法二(仅适用于安卓设备):',
'1. 使用常用米游社手机下载下面链接的APK文件并安装',
_.get(
settings.getConfig('config'),
'url',
'https://ghproxy.mihomo.me/https://raw.githubusercontent.com/forchannot/get_device_info/main/app/build/outputs/apk/debug/app-debug.apk'
),
'2. 打开后点击按钮复制',
'3. 给机器人发送"%绑定设备"指令',
'4. 机器人会提示发送设备信息',
'5. 粘贴设备信息发送',
'6. 提示绑定成功',
'--------------------------------',
'[解绑设备]',
'发送 %解绑设备 即可',
],
msg = msgs.join('\n');
await this.reply(await common.makeForwardMsg(this.e, msg, '绑定设备帮助'));