mirror of
https://github.com/NapNeko/NapCatQQ.git
synced 2026-02-12 07:50:25 +00:00
chore: 针对的并非框架
This commit is contained in:
78
src/framework/napcat.ts
Normal file
78
src/framework/napcat.ts
Normal file
@@ -0,0 +1,78 @@
|
||||
import { NapCatPathWrapper } from "@/common/framework/napcat";
|
||||
import { LogWrapper } from "@/common/utils/log";
|
||||
import { proxiedListenerOf } from "@/common/utils/proxy-handler";
|
||||
import { QQBasicInfoWrapper } from "@/common/utils/QQBasicInfo";
|
||||
import { NapCatCore, NapCatCoreWorkingEnv, loadQQWrapper } from "@/core/core";
|
||||
import { InstanceContext } from "@/core";
|
||||
import { SelfInfo } from "@/core/entities";
|
||||
import { LoginListener } from "@/core/listeners";
|
||||
import { NodeIKernelLoginService } from "@/core/services";
|
||||
import { WrapperNodeApi, NodeIQQNTWrapperSession } from "@/core/wrapper/wrapper";
|
||||
import { NapCatOneBot11Adapter } from "@/onebot/main";
|
||||
import { sleep } from "@/common/utils/helper";
|
||||
|
||||
//LiteLoader ES入口文件
|
||||
export async function NCoreInitLiteLoader(
|
||||
session: NodeIQQNTWrapperSession,
|
||||
loginService: NodeIKernelLoginService,
|
||||
registerInitCallback: (callback: () => void) => void
|
||||
) {
|
||||
//在进入本层前是否登录未进行判断
|
||||
console.log("NapCat LiteLoader App Loading...");
|
||||
const pathWrapper = new NapCatPathWrapper();
|
||||
const logger = new LogWrapper(pathWrapper.logsPath);
|
||||
const basicInfoWrapper = new QQBasicInfoWrapper({ logger });
|
||||
const wrapper = loadQQWrapper(basicInfoWrapper.getFullQQVesion());
|
||||
//直到登录成功后,执行下一步
|
||||
const selfInfo = await new Promise<SelfInfo>((resolveSelfInfo) => {
|
||||
const loginListener = new LoginListener();
|
||||
loginListener.onQRCodeLoginSucceed = async (loginResult) => {
|
||||
await new Promise<void>(resolvePendingInit => {
|
||||
registerInitCallback(() => resolvePendingInit());
|
||||
});
|
||||
resolveSelfInfo({
|
||||
uid: loginResult.uid,
|
||||
uin: loginResult.uin,
|
||||
nick: '', // 获取不到
|
||||
online: true,
|
||||
});
|
||||
};
|
||||
loginService.addKernelLoginListener(new wrapper.NodeIKernelLoginListener(
|
||||
proxiedListenerOf(loginListener, logger)));
|
||||
});
|
||||
// 过早进入会导致addKernelMsgListener等Listener添加失败
|
||||
// await sleep(2500);
|
||||
// 初始化 NapCatLiteLoader
|
||||
const loaderObject = new NapCatLiteLoader(wrapper, session, logger, loginService, selfInfo, basicInfoWrapper, pathWrapper);
|
||||
|
||||
//启动WebUi
|
||||
|
||||
//初始化LLNC的Onebot实现
|
||||
new NapCatOneBot11Adapter(loaderObject.core, loaderObject.context, pathWrapper);
|
||||
}
|
||||
|
||||
export class NapCatLiteLoader {
|
||||
public core: NapCatCore;
|
||||
context: InstanceContext;
|
||||
|
||||
constructor(
|
||||
wrapper: WrapperNodeApi,
|
||||
session: NodeIQQNTWrapperSession,
|
||||
logger: LogWrapper,
|
||||
loginService: NodeIKernelLoginService,
|
||||
selfInfo: SelfInfo,
|
||||
basicInfoWrapper: QQBasicInfoWrapper,
|
||||
pathWrapper: NapCatPathWrapper
|
||||
) {
|
||||
this.context = {
|
||||
workingEnv: NapCatCoreWorkingEnv.LiteLoader,
|
||||
wrapper,
|
||||
session,
|
||||
logger,
|
||||
loginService,
|
||||
basicInfoWrapper,
|
||||
pathWrapper
|
||||
};
|
||||
this.core = new NapCatCore(this.context, selfInfo);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user