Skip to content

Commit

Permalink
fix: handleQuickOperation
Browse files Browse the repository at this point in the history
  • Loading branch information
MliKiowa committed Aug 27, 2024
1 parent be39fc3 commit f691320
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 19 deletions.
2 changes: 1 addition & 1 deletion src/onebot/action/go-cqhttp/QuickAction.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ export class GoCQHTTPHandleQuickAction extends BaseAction<Payload, null> {
async _handle(payload: Payload): Promise<null> {
this.obContext.apis.QuickActionApi
.handleQuickOperation(payload.context, payload.operation)
.catch(this.core.context.logger.logError);
.catch(this.core.context.logger.logError.bind(this.core.context.logger));
return null;
}
}
2 changes: 1 addition & 1 deletion src/onebot/action/msg/SendMsg.ts
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ export function normalize(message: OB11MessageMixType, autoEscape = false): OB11
) : Array.isArray(message) ? message : [message];
}

async function createContext(core: NapCatCore, payload: OB11PostSendMsg, contextMode: ContextMode): Promise<Peer> {
export async function createContext(core: NapCatCore, payload: OB11PostSendMsg, contextMode: ContextMode): Promise<Peer> {
// This function determines the type of message by the existence of user_id / group_id,
// not message_type.
// This redundant design of Ob11 here should be blamed.
Expand Down
31 changes: 14 additions & 17 deletions src/onebot/api/quick-action.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,9 @@ import {
import { ChatType, GroupRequestOperateTypes, NapCatCore, Peer } from '@/core';
import { OB11FriendRequestEvent } from '@/onebot/event/request/OB11FriendRequest';
import { OB11GroupRequestEvent } from '@/onebot/event/request/OB11GroupRequest';
import { normalize } from '@/onebot/action/msg/SendMsg';
import { ContextMode, normalize } from '@/onebot/action/msg/SendMsg';
import { isNull } from '@/common/helper';

import { createContext } from '@/onebot/action/msg/SendMsg';
export class OneBotQuickActionApi {
constructor(
public obContext: NapCatOneBot11Adapter,
Expand All @@ -24,37 +24,34 @@ export class OneBotQuickActionApi {
}

async handleQuickOperation(eventContext: QuickActionEvent, quickAction: QuickAction) {
const logger = this.core.context.logger;
if (eventContext.post_type === 'message') {
await this.handleMsg(eventContext as OB11Message, quickAction)
.catch(this.core.context.logger.logError);
.catch(logger.logError.bind(logger));
}
if (eventContext.post_type === 'request') {
const friendRequest = eventContext as OB11FriendRequestEvent;
const groupRequest = eventContext as OB11GroupRequestEvent;
if ((friendRequest).request_type === 'friend') {
await this.handleFriendRequest(friendRequest, quickAction)
.catch(this.core.context.logger.logError);
.catch(logger.logError.bind(logger));
} else if (groupRequest.request_type === 'group') {
await this.handleGroupRequest(groupRequest, quickAction)
.catch(this.core.context.logger.logError);
.catch(logger.logError.bind(logger));
}
}
}

async handleMsg(msg: OB11Message, quickAction: QuickAction) {
const reply = quickAction.reply;
const peer: Peer = {
chatType: ChatType.KCHATTYPEC2C,
peerUid: await this.core.apis.UserApi.getUidByUinV2(msg.user_id.toString()) as string,
};
if (msg.message_type == 'private') {
if (msg.sub_type === 'group') {
peer.chatType = ChatType.KCHATTYPETEMPC2CFROMGROUP;
}
} else {
peer.chatType = ChatType.KCHATTYPETEMPC2CFROMGROUP;
peer.peerUid = msg.group_id!.toString();
}
const peerContextMode = msg.message_type == 'private' ? ContextMode.Private : ContextMode.Group;

const peer: Peer = await createContext(this.core, {
message: "",
group_id: msg.group_id?.toString(),
user_id: msg.user_id?.toString(),
}, peerContextMode);

if (reply) {
// let group: Group | undefined;
let replyMessage: OB11MessageData[] = [];
Expand Down

0 comments on commit f691320

Please sign in to comment.