chore: HttpAdapter

This commit is contained in:
手瓜一十雪
2024-08-11 00:35:39 +08:00
parent 44a8c8e35d
commit a2e20a8092
3 changed files with 16 additions and 5 deletions

View File

@@ -3,7 +3,7 @@ import { OB11Config } from './helper/config';
import { NapCatPathWrapper } from '@/common/framework/napcat'; import { NapCatPathWrapper } from '@/common/framework/napcat';
import { OneBotApiContextType } from './types/adapter'; import { OneBotApiContextType } from './types/adapter';
import { OneBotFriendApi, OneBotGroupApi, OneBotUserApi } from './api'; import { OneBotFriendApi, OneBotGroupApi, OneBotUserApi } from './api';
import { OB11NetworkManager } from '@/onebot/network'; import { OB11NetworkManager, OB11PassiveHttpAdapter } from '@/onebot/network';
import { OB11InputStatusEvent } from '@/onebot/event/notice/OB11InputStatusEvent'; import { OB11InputStatusEvent } from '@/onebot/event/notice/OB11InputStatusEvent';
import { MessageUnique } from '@/common/utils/MessageUnique'; import { MessageUnique } from '@/common/utils/MessageUnique';
import { OB11Constructor } from '@/onebot/helper/data'; import { OB11Constructor } from '@/onebot/helper/data';
@@ -50,6 +50,9 @@ export class NapCatOneBot11Adapter {
this.context.logger.setLogSelfInfo(selfInfo); this.context.logger.setLogSelfInfo(selfInfo);
}).catch(this.context.logger.logError); }).catch(this.context.logger.logError);
this.context.logger.log(`[Notice] [OneBot11] ${serviceInfo}`); this.context.logger.log(`[Notice] [OneBot11] ${serviceInfo}`);
let OB11NetworkManagerWrap = new OB11NetworkManager();
OB11NetworkManagerWrap.registerAdapter(new OB11PassiveHttpAdapter(ob11Config.http.port, ob11Config.token, this.core, this));
OB11NetworkManagerWrap.openAllAdapters();
// Todo 开始启动NetWork // Todo 开始启动NetWork
await this.initMsgListener(); await this.initMsgListener();

View File

@@ -20,7 +20,9 @@ export class OB11NetworkManager {
async getAllAdapters() { async getAllAdapters() {
return this.adapters; return this.adapters;
} }
async openAllAdapters() {
return Promise.all(this.adapters.map(adapter => adapter.open()));
}
async emitEvent(event: OB11EmitEventContent) { async emitEvent(event: OB11EmitEventContent) {
// Mlikiowa V2.0.0 Refactor Todo // Mlikiowa V2.0.0 Refactor Todo
return Promise.all(this.adapters.map(adapter => adapter.onEvent(event))); return Promise.all(this.adapters.map(adapter => adapter.onEvent(event)));

View File

@@ -3,6 +3,8 @@ import { OB11BaseEvent } from '@/onebot/event/OB11BaseEvent';
import BaseAction from '@/onebot/action/BaseAction'; import BaseAction from '@/onebot/action/BaseAction';
import express, { Express, Request, Response } from 'express'; import express, { Express, Request, Response } from 'express';
import http from 'http'; import http from 'http';
import { NapCatCore } from '@/core';
import { NapCatOneBot11Adapter } from '../main';
export class OB11PassiveHttpAdapter implements IOB11NetworkAdapter { export class OB11PassiveHttpAdapter implements IOB11NetworkAdapter {
private app: Express | undefined; private app: Express | undefined;
@@ -12,10 +14,14 @@ export class OB11PassiveHttpAdapter implements IOB11NetworkAdapter {
private actionMap: Map<string, BaseAction<any, any>> = new Map(); private actionMap: Map<string, BaseAction<any, any>> = new Map();
private port: number; private port: number;
token: string; token: string;
coreContext: NapCatCore;
onebotContext: NapCatOneBot11Adapter;
constructor(port: number, token: string) { constructor(port: number, token: string, coreContext: NapCatCore, onebotContext: NapCatOneBot11Adapter) {
this.port = port; this.port = port;
this.token = token; this.token = token;
this.coreContext = coreContext;
this.onebotContext = onebotContext;
} }
registerAction<T extends BaseAction<P, R>, P, R>(action: T) { registerAction<T extends BaseAction<P, R>, P, R>(action: T) {
@@ -32,7 +38,7 @@ export class OB11PassiveHttpAdapter implements IOB11NetworkAdapter {
open() { open() {
if (this.hasBeenClosed) { if (this.hasBeenClosed) {
throw new Error('Cannot open a closed HTTP server'); this.coreContext.context.logger.logError('Cannot open a closed HTTP server');
} }
if (!this.isOpen) { if (!this.isOpen) {
this.initializeServer(); this.initializeServer();
@@ -49,7 +55,7 @@ export class OB11PassiveHttpAdapter implements IOB11NetworkAdapter {
this.app.all('*', this.handleRequest.bind(this)); this.app.all('*', this.handleRequest.bind(this));
this.server.listen(this.port, () => { this.server.listen(this.port, () => {
console.log(`HTTP server listening on port ${this.port}`); this.coreContext.context.logger.log(`HTTP server listening on port ${this.port}`);
}); });
} }