mirror of
https://github.com/NapNeko/NapCatQQ.git
synced 2026-02-11 23:40:24 +00:00
chore: vite build
Co-Authored-By: Wesley F. Young <25684570+Wesley-Young@users.noreply.github.com>
This commit is contained in:
@@ -0,0 +1,21 @@
|
||||
import { LogWrapper } from "./log";
|
||||
|
||||
export function proxyHandlerOf(logger: LogWrapper) {
|
||||
return {
|
||||
get(target: any, prop: any, receiver: any) {
|
||||
// console.log('get', prop, typeof target[prop]);
|
||||
if (typeof target[prop] === 'undefined') {
|
||||
// 如果方法不存在,返回一个函数,这个函数调用existentMethod
|
||||
return (..._args: unknown[]) => {
|
||||
logger.logDebug(`${target.constructor.name} has no method ${prop}`);
|
||||
};
|
||||
}
|
||||
// 如果方法存在,正常返回
|
||||
return Reflect.get(target, prop, receiver);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
export function proxiedListenerOf<T extends object>(listener: T, logger: LogWrapper) {
|
||||
return new Proxy<T>(listener, proxyHandlerOf(logger))
|
||||
}
|
||||
@@ -3,6 +3,7 @@ import { NodeIQQNTWrapperSession, WrapperNodeApi } from "./wrapper/wrapper";
|
||||
import path from "node:path";
|
||||
import fs from "node:fs";
|
||||
import { NodeIKernelLoginService } from "./services";
|
||||
import { SelfInfo } from "./entities";
|
||||
|
||||
export enum NapCatCoreWorkingEnv {
|
||||
Unknown = 0,
|
||||
@@ -20,26 +21,22 @@ export function loadQQWrapper(QQVersion: string): WrapperNodeApi {
|
||||
return nativemodule.exports;
|
||||
}
|
||||
|
||||
export class NapCatCore {
|
||||
export interface InstanceContext {
|
||||
readonly workingEnv: NapCatCoreWorkingEnv;
|
||||
readonly core: NapCatCore;
|
||||
readonly wrapper: WrapperNodeApi;
|
||||
readonly session: NodeIQQNTWrapperSession;
|
||||
readonly logger: LogWrapper;
|
||||
readonly loginService: NodeIKernelLoginService;
|
||||
readonly selfInfo: SelfInfo;
|
||||
readonly QQVersion: string;
|
||||
}
|
||||
|
||||
constructor(
|
||||
env: NapCatCoreWorkingEnv,
|
||||
wrapper: WrapperNodeApi,
|
||||
session: NodeIQQNTWrapperSession,
|
||||
logger: LogWrapper,
|
||||
loginService: NodeIKernelLoginService,
|
||||
QQVersion: string
|
||||
) {
|
||||
this.workingEnv = env;
|
||||
this.logger = logger;
|
||||
this.wrapper = wrapper;
|
||||
this.session = session;
|
||||
this.loginService = loginService;
|
||||
export class NapCatCore {
|
||||
readonly context: InstanceContext;
|
||||
|
||||
constructor(context: InstanceContext) {
|
||||
this.context = context;
|
||||
}
|
||||
|
||||
// Renamed from 'InitDataListener'
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
export * from './core';
|
||||
@@ -77,9 +77,10 @@ async function checkNTIsInit() {
|
||||
}
|
||||
async function NCInit() {
|
||||
console.log("[NapCat] [Info] 开始初始化NapCat");
|
||||
//await import("file://" + path.join(CurrentPath, './napcat.mjs'));
|
||||
const { NCoreInitLiteLoader } = await import("file://" + path.join(CurrentPath, './napcat.mjs'));
|
||||
//传入LoginService Session 其余自载入
|
||||
console.log("[NapCat] [Info] NapCat初始化完成");
|
||||
await NCoreInitLiteLoader(getWrapperSession(), getWrapperLoginService());
|
||||
//console.log("[NapCat] [Info] NapCat初始化完成");
|
||||
}
|
||||
(async () => {
|
||||
try {
|
||||
|
||||
@@ -5,6 +5,7 @@ import { LogWrapper } from "@/common/utils/log";
|
||||
import { proxiedListenerOf } from "@/common/utils/proxy-handler";
|
||||
import { QQBasicInfoWrapper } from "@/common/utils/QQBasicInfo";
|
||||
import { NapCatCoreWorkingEnv, loadQQWrapper } from "@/core/core";
|
||||
import { SelfInfo } from "@/core/entities";
|
||||
import { LoginListener } from "@/core/listeners";
|
||||
import { NodeIKernelLoginService } from "@/core/services";
|
||||
import { selfInfo } from "@/core/wrapper/data";
|
||||
@@ -21,9 +22,14 @@ export async function NCoreInitLiteLoader(session: NodeIQQNTWrapperSession, logi
|
||||
let LLNC = new NapCatLiteLoader(logger, session, loginService, BasicInfo);
|
||||
|
||||
//直到登录成功后,执行下一步
|
||||
await new Promise<void>((resolve) => {
|
||||
let selfInfo = await new Promise<SelfInfo>((resolve) => {
|
||||
let OBLoginListener = new LoginListener();
|
||||
OBLoginListener.onQRCodeLoginSucceed = async (arg) => resolve();
|
||||
OBLoginListener.onQRCodeLoginSucceed = async (loginResult) => resolve({
|
||||
uid: loginResult.uid,
|
||||
uin: loginResult.uin,
|
||||
nick: '', // 获取不到
|
||||
online: true
|
||||
});
|
||||
loginService.addKernelLoginListener(new LLNC.wrapper.NodeIKernelLoginListener(proxiedListenerOf(OBLoginListener, logger)));
|
||||
});
|
||||
//启动WebUi
|
||||
|
||||
0
src/liteloader/preload.cjs
Normal file
0
src/liteloader/preload.cjs
Normal file
0
src/liteloader/renderer.cjs
Normal file
0
src/liteloader/renderer.cjs
Normal file
Reference in New Issue
Block a user