This commit is contained in:
idranme 2024-08-05 22:07:04 +08:00
parent 72eb013371
commit 5d78fdd6a4
No known key found for this signature in database
GPG Key ID: 926F7B5B668E495F
2 changed files with 44 additions and 4 deletions

View File

@ -52,6 +52,8 @@ import { checkFfmpeg } from '../common/utils/video'
import { GroupDecreaseSubType, OB11GroupDecreaseEvent } from '../onebot11/event/notice/OB11GroupDecreaseEvent' import { GroupDecreaseSubType, OB11GroupDecreaseEvent } from '../onebot11/event/notice/OB11GroupDecreaseEvent'
import '../ntqqapi/wrapper' import '../ntqqapi/wrapper'
import { sentMessages } from '@/ntqqapi/api' import { sentMessages } from '@/ntqqapi/api'
import { NTEventDispatch } from '../common/utils/EventTask'
import { wrapperApi, wrapperConstructor } from '../ntqqapi/wrapper'
let mainWindow: BrowserWindow | null = null let mainWindow: BrowserWindow | null = null
@ -436,6 +438,7 @@ function onLoad() {
uidMaps[value] = key uidMaps[value] = key
} }
}) })
NTEventDispatch.init({ ListenerMap: wrapperConstructor, WrapperSession: wrapperApi.NodeIQQNTWrapperSession })
try { try {
log('start get groups') log('start get groups')
const _groups = await NTQQGroupApi.getGroups() const _groups = await NTQQGroupApi.getGroups()

View File

@ -7,12 +7,46 @@ export interface NodeIQQNTWrapperSession {
getBuddyService(): NodeIKernelBuddyService getBuddyService(): NodeIKernelBuddyService
} }
export interface WrapperNodeApi { export interface WrapperApi {
[key: string]: any
NodeIQQNTWrapperSession?: NodeIQQNTWrapperSession NodeIQQNTWrapperSession?: NodeIQQNTWrapperSession
} }
export const wrapperApi: WrapperNodeApi = {} export interface WrapperConstructor {
[key: string]: any
NodeIKernelBuddyListener?: any
NodeIKernelGroupListener?: any
NodeQQNTWrapperUtil?: any
NodeIKernelMsgListener?: any
NodeIQQNTWrapperEngine?: any
NodeIGlobalAdapter?: any
NodeIDependsAdapter?: any
NodeIDispatcherAdapter?: any
NodeIKernelSessionListener?: any
NodeIKernelLoginService?: any
NodeIKernelLoginListener?: any
NodeIKernelProfileService?: any
NodeIKernelProfileListener?: any
}
export const wrapperApi: WrapperApi = {}
export const wrapperConstructor: WrapperConstructor = {}
const constructor = [
'NodeIKernelBuddyListener',
'NodeIKernelGroupListener',
'NodeQQNTWrapperUtil',
'NodeIKernelMsgListener',
'NodeIQQNTWrapperEngine',
'NodeIGlobalAdapter',
'NodeIDependsAdapter',
'NodeIDispatcherAdapter',
'NodeIKernelSessionListener',
'NodeIKernelLoginService',
'NodeIKernelLoginListener',
'NodeIKernelProfileService',
'NodeIKernelProfileListener',
]
Process.dlopenOrig = Process.dlopen Process.dlopenOrig = Process.dlopen
@ -24,8 +58,11 @@ Process.dlopen = function (module, filename, flags = os.constants.dlopen.RTLD_LA
const ret = new target(...args) const ret = new target(...args)
if (export_name === 'NodeIQQNTWrapperSession') wrapperApi.NodeIQQNTWrapperSession = ret if (export_name === 'NodeIQQNTWrapperSession') wrapperApi.NodeIQQNTWrapperSession = ret
return ret return ret
}, }
}) })
if (constructor.includes(export_name)) {
wrapperConstructor[export_name] = module.exports[export_name]
}
} }
return dlopenRet return dlopenRet
} }