mirror of
https://github.com/NapNeko/NapCatQQ.git
synced 2024-11-21 09:36:35 +00:00
chore: 快速登录
This commit is contained in:
parent
a78bc686cd
commit
35e75be0d0
@ -9,6 +9,7 @@ import { LoginListener } from '@/core/listeners';
|
|||||||
import { NodeIKernelLoginService } from '@/core/services';
|
import { NodeIKernelLoginService } from '@/core/services';
|
||||||
import { NodeIQQNTWrapperSession, WrapperNodeApi } from '@/core/wrapper/wrapper';
|
import { NodeIQQNTWrapperSession, WrapperNodeApi } from '@/core/wrapper/wrapper';
|
||||||
import { NapCatOneBot11Adapter } from '@/onebot/main';
|
import { NapCatOneBot11Adapter } from '@/onebot/main';
|
||||||
|
import { InitWebUi } from '@/webui';
|
||||||
|
|
||||||
//Framework ES入口文件
|
//Framework ES入口文件
|
||||||
export async function NCoreInitFramework(
|
export async function NCoreInitFramework(
|
||||||
@ -45,7 +46,7 @@ export async function NCoreInitFramework(
|
|||||||
const loaderObject = new NapCatFramework(wrapper, session, logger, loginService, selfInfo, basicInfoWrapper, pathWrapper);
|
const loaderObject = new NapCatFramework(wrapper, session, logger, loginService, selfInfo, basicInfoWrapper, pathWrapper);
|
||||||
|
|
||||||
//启动WebUi
|
//启动WebUi
|
||||||
|
InitWebUi(logger, pathWrapper).then().catch(logger.logError);
|
||||||
//初始化LLNC的Onebot实现
|
//初始化LLNC的Onebot实现
|
||||||
new NapCatOneBot11Adapter(loaderObject.core, loaderObject.context, pathWrapper);
|
new NapCatOneBot11Adapter(loaderObject.core, loaderObject.context, pathWrapper);
|
||||||
}
|
}
|
||||||
|
@ -117,7 +117,6 @@ export class NapCatOneBot11Adapter {
|
|||||||
await WebUiDataRuntime.setOB11ConfigCall(async (ob11: OB11Config) => {
|
await WebUiDataRuntime.setOB11ConfigCall(async (ob11: OB11Config) => {
|
||||||
this.config.save(ob11);
|
this.config.save(ob11);
|
||||||
});
|
});
|
||||||
InitWebUi(this.context.logger, this.context.pathWrapper).then().catch(this.context.logger.logError);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private initMsgListener() {
|
private initMsgListener() {
|
||||||
|
@ -24,6 +24,9 @@ import { NodeIKernelLoginService } from '@/core/services';
|
|||||||
import { program } from 'commander';
|
import { program } from 'commander';
|
||||||
import qrcode from 'qrcode-terminal';
|
import qrcode from 'qrcode-terminal';
|
||||||
import { NapCatOneBot11Adapter } from '@/onebot';
|
import { NapCatOneBot11Adapter } from '@/onebot';
|
||||||
|
import { InitWebUi } from '@/webui';
|
||||||
|
import { WebUiDataRuntime } from '@/webui/src/helper/Data';
|
||||||
|
import { promisify } from 'util';
|
||||||
|
|
||||||
program.option('-q, --qq [number]', 'QQ号').parse(process.argv);
|
program.option('-q, --qq [number]', 'QQ号').parse(process.argv);
|
||||||
const cmdOptions = program.opts();
|
const cmdOptions = program.opts();
|
||||||
@ -37,6 +40,8 @@ export async function NCoreInitShell() {
|
|||||||
const basicInfoWrapper = new QQBasicInfoWrapper({ logger });
|
const basicInfoWrapper = new QQBasicInfoWrapper({ logger });
|
||||||
const wrapper = loadQQWrapper(basicInfoWrapper.getFullQQVesion());
|
const wrapper = loadQQWrapper(basicInfoWrapper.getFullQQVesion());
|
||||||
|
|
||||||
|
InitWebUi(logger, pathWrapper).then().catch(logger.logError);
|
||||||
|
|
||||||
// from constructor
|
// from constructor
|
||||||
const engine = new wrapper.NodeIQQNTWrapperEngine();
|
const engine = new wrapper.NodeIQQNTWrapperEngine();
|
||||||
const util = new wrapper.NodeQQNTWrapperUtil();
|
const util = new wrapper.NodeQQNTWrapperUtil();
|
||||||
@ -124,6 +129,33 @@ export async function NCoreInitShell() {
|
|||||||
loginService.addKernelLoginListener(new wrapper.NodeIKernelLoginListener(
|
loginService.addKernelLoginListener(new wrapper.NodeIKernelLoginListener(
|
||||||
proxiedListenerOf(loginListener, logger)));
|
proxiedListenerOf(loginListener, logger)));
|
||||||
|
|
||||||
|
// 实现WebUi快速登录
|
||||||
|
loginService.getLoginList().then((res) => {
|
||||||
|
// 遍历 res.LocalLoginInfoList[x].isQuickLogin是否可以 res.LocalLoginInfoList[x].uin 转为string 加入string[] 最后遍历完成调用WebUiDataRuntime.setQQQuickLoginList
|
||||||
|
WebUiDataRuntime.setQQQuickLoginList(res.LocalLoginInfoList.filter((item) => item.isQuickLogin).map((item) => item.uin.toString()));
|
||||||
|
});
|
||||||
|
|
||||||
|
WebUiDataRuntime.setQQQuickLoginCall(async (uin: string) => {
|
||||||
|
const QuickLogin: Promise<{ result: boolean, message: string }> = new Promise((resolve, reject) => {
|
||||||
|
if (uin) {
|
||||||
|
logger.log('正在快速登录 ', uin);
|
||||||
|
loginService.quickLoginWithUin(uin).then(res => {
|
||||||
|
if (res.loginErrorInfo.errMsg) {
|
||||||
|
resolve({ result: false, message: res.loginErrorInfo.errMsg });
|
||||||
|
}
|
||||||
|
resolve({ result: true, message: '' });
|
||||||
|
}).catch((e) => {
|
||||||
|
logger.logError(e);
|
||||||
|
resolve({ result: false, message: '快速登录发生错误' });
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
resolve({ result: false, message: '快速登录失败' });
|
||||||
|
}
|
||||||
|
});
|
||||||
|
const result = await QuickLogin;
|
||||||
|
return result;
|
||||||
|
});
|
||||||
|
|
||||||
if (quickLoginUin && historyLoginList.some(u => u.uin === quickLoginUin)) {
|
if (quickLoginUin && historyLoginList.some(u => u.uin === quickLoginUin)) {
|
||||||
logger.log('正在快速登录 ', quickLoginUin);
|
logger.log('正在快速登录 ', quickLoginUin);
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
@ -139,8 +171,7 @@ export async function NCoreInitShell() {
|
|||||||
} else {
|
} else {
|
||||||
logger.log('没有 -q 指令指定快速登录,或未曾登录过这个 QQ,将使用二维码登录方式');
|
logger.log('没有 -q 指令指定快速登录,或未曾登录过这个 QQ,将使用二维码登录方式');
|
||||||
if (historyLoginList.length > 0) {
|
if (historyLoginList.length > 0) {
|
||||||
logger.log(`可用于快速登录的 QQ:\n${
|
logger.log(`可用于快速登录的 QQ:\n${historyLoginList.map((u, index) => `${index + 1}. ${u.uin} ${u.nickName}`)
|
||||||
historyLoginList.map((u, index) => `${index + 1}. ${u.uin} ${u.nickName}`)
|
|
||||||
.join('\n')
|
.join('\n')
|
||||||
}`);
|
}`);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user