mirror of
https://github.com/NapNeko/NapCatQQ.git
synced 2026-02-06 13:05:09 +00:00
refactor: friend
This commit is contained in:
@@ -1,14 +1,12 @@
|
||||
import BaseAction from '../BaseAction';
|
||||
import { OB11Message, OB11User } from '../../types';
|
||||
import { getFriend, friends } from '@/core/data';
|
||||
import { ActionName } from '../types';
|
||||
import { ChatType } from '@/core/entities';
|
||||
import { dbUtil } from '@/common/utils/db';
|
||||
import { NTQQMsgApi } from '@/core/apis/msg';
|
||||
import { OB11Constructor } from '../../constructor';
|
||||
import { logDebug } from '@/common/utils/log';
|
||||
import { FromSchema, JSONSchema } from 'json-schema-to-ts';
|
||||
import { NTQQUserApi } from '@/core';
|
||||
import { NTQQFriendApi, NTQQUserApi } from '@/core';
|
||||
|
||||
interface Response {
|
||||
messages: OB11Message[];
|
||||
@@ -35,7 +33,7 @@ export default class GetFriendMsgHistory extends BaseAction<Payload, Response> {
|
||||
throw `记录${payload.user_id}不存在`;
|
||||
}
|
||||
const startMsgId = (await dbUtil.getMsgByShortId(payload.message_seq))?.msgId || '0';
|
||||
const friend = await getFriend(uid);
|
||||
const friend = await NTQQFriendApi.isBuddy(uid);
|
||||
const historyResult = (await NTQQMsgApi.getMsgHistory({
|
||||
chatType: friend ? ChatType.friend : ChatType.temp,
|
||||
peerUid: uid
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
import { ChatType, Peer } from '@/core/entities';
|
||||
import BaseAction from '../BaseAction';
|
||||
import { ActionName } from '../types';
|
||||
import { NTQQMsgApi, NTQQUserApi } from '@/core/apis';
|
||||
import { getFriend } from '@/core/data';
|
||||
import { NTQQFriendApi, NTQQMsgApi, NTQQUserApi } from '@/core/apis';
|
||||
import { FromSchema, JSONSchema } from 'json-schema-to-ts';
|
||||
|
||||
const SchemaData = {
|
||||
@@ -22,8 +21,8 @@ class MarkMsgAsRead extends BaseAction<PlayloadType, null> {
|
||||
if (!peerUid) {
|
||||
throw `私聊${payload.user_id}不存在`;
|
||||
}
|
||||
const friend = await getFriend(peerUid);
|
||||
return { chatType: friend ? ChatType.friend : ChatType.temp, peerUid };
|
||||
const isBuddy = await NTQQFriendApi.isBuddy(peerUid);
|
||||
return { chatType: isBuddy ? ChatType.friend : ChatType.temp, peerUid };
|
||||
}
|
||||
if (!payload.group_id) {
|
||||
throw '缺少参数 group_id 或 user_id';
|
||||
|
||||
@@ -7,17 +7,15 @@ import {
|
||||
OB11PostSendMsg
|
||||
} from '@/onebot11/types';
|
||||
import { ActionName, BaseCheckResult } from '@/onebot11/action/types';
|
||||
import { getFriend, getGroup } from '@/core/data';
|
||||
import { getGroup } from '@/core/data';
|
||||
import { dbUtil } from '@/common/utils/db';
|
||||
import { ChatType, ElementType, Group, NTQQMsgApi, NTQQUserApi, Peer, SendMessageElement, } from '@/core';
|
||||
import { ChatType, ElementType, Group, NTQQFileApi, NTQQFriendApi, NTQQMsgApi, NTQQUserApi, Peer, SendMessageElement, } from '@/core';
|
||||
import fs from 'node:fs';
|
||||
import { logDebug, logError } from '@/common/utils/log';
|
||||
import { decodeCQCode } from '@/onebot11/cqcode';
|
||||
import createSendElements from './create-send-elements';
|
||||
import { handleForwardNode } from '@/onebot11/action/msg/SendMsg/handle-forward-node';
|
||||
|
||||
const ALLOW_SEND_TEMP_MSG = false;
|
||||
|
||||
export interface ReturnDataType {
|
||||
message_id: number;
|
||||
}
|
||||
@@ -90,24 +88,12 @@ async function createContext(payload: OB11PostSendMsg): Promise<{
|
||||
group: group,
|
||||
};
|
||||
} else if (payload.user_id) { // take this as a private message
|
||||
const friend = await getFriend(payload.user_id.toString());
|
||||
if (!friend) {
|
||||
if (ALLOW_SEND_TEMP_MSG) {
|
||||
//const tempUid = getUidByUin(payload.user_id.toString());
|
||||
const tempUid = await NTQQUserApi.getUidByUin(payload.user_id.toString());
|
||||
if (tempUid) return {
|
||||
peer: {
|
||||
chatType: ChatType.temp,
|
||||
peerUid: tempUid
|
||||
},
|
||||
};
|
||||
}
|
||||
throw `找不到私聊对象 ${payload.user_id}`;
|
||||
}
|
||||
const Uid = await NTQQUserApi.getUidByUin(payload.user_id.toString());
|
||||
const isBuddy = await NTQQFriendApi.isBuddy(payload.user_id.toString());
|
||||
return {
|
||||
peer: {
|
||||
chatType: ChatType.friend,
|
||||
peerUid: friend.uid
|
||||
chatType: isBuddy ? ChatType.friend : ChatType.temp,
|
||||
peerUid: Uid!
|
||||
},
|
||||
};
|
||||
}
|
||||
@@ -134,16 +120,18 @@ export class SendMsg extends BaseAction<OB11PostSendMsg, ReturnDataType> {
|
||||
return { valid: false, message: `群${payload.group_id}不存在` };
|
||||
}
|
||||
if (payload.user_id && payload.message_type !== 'group') {
|
||||
if (!(await getFriend(payload.user_id))) {
|
||||
let isBuddy = await NTQQFriendApi.isBuddy(payload.user_id.toString());
|
||||
// 此处有问题
|
||||
if (!isBuddy) {
|
||||
if (
|
||||
!ALLOW_SEND_TEMP_MSG &&
|
||||
!(await NTQQUserApi.getUidByUin(payload.user_id))
|
||||
) {
|
||||
return { valid: false, message: '不能发送临时消息' };
|
||||
return { valid: false, message: '异常消息' };
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
return { valid: true, };
|
||||
return { valid: true };
|
||||
}
|
||||
|
||||
protected async _handle(payload: OB11PostSendMsg): Promise<{ message_id: number }> {
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
import { NTQQUserApi } from '@/core/apis';
|
||||
import BaseAction from '../BaseAction';
|
||||
import { getFriend } from '@/core/data';
|
||||
import { ActionName } from '../types';
|
||||
import { log, logDebug } from '@/common/utils/log';
|
||||
import { FromSchema, JSONSchema } from 'json-schema-to-ts';
|
||||
|
||||
const SchemaData = {
|
||||
@@ -23,13 +21,7 @@ export default class SendLike extends BaseAction<Payload, null> {
|
||||
//logDebug('点赞参数', payload);
|
||||
try {
|
||||
const qq = payload.user_id.toString();
|
||||
const friend = await getFriend(qq);
|
||||
let uid: string;
|
||||
if (!friend) {
|
||||
uid = await NTQQUserApi.getUidByUin(qq) || '';
|
||||
} else {
|
||||
uid = friend.uid;
|
||||
}
|
||||
let uid: string = await NTQQUserApi.getUidByUin(qq) || '';
|
||||
const result = await NTQQUserApi.like(uid, parseInt(payload.times?.toString()) || 1);
|
||||
//logDebug('点赞结果', result);
|
||||
if (result.result !== 0) {
|
||||
|
||||
@@ -39,7 +39,7 @@ import { OB11GroupTitleEvent } from './event/notice/OB11GroupTitleEvent';
|
||||
import { OB11GroupCardEvent } from './event/notice/OB11GroupCardEvent';
|
||||
import { OB11GroupDecreaseEvent } from './event/notice/OB11GroupDecreaseEvent';
|
||||
import { ob11Config } from '@/onebot11/config';
|
||||
import { deleteGroup, getFriend, getGroupMember, groupMembers, selfInfo, tempGroupCodeMap } from '@/core/data';
|
||||
import { deleteGroup, getGroupMember, groupMembers, selfInfo, tempGroupCodeMap } from '@/core/data';
|
||||
import { NTQQFileApi, NTQQGroupApi, NTQQMsgApi, NTQQUserApi } from '@/core/apis';
|
||||
import { OB11GroupMsgEmojiLikeEvent } from '@/onebot11/event/notice/OB11MsgEmojiLikeEvent';
|
||||
import { napCatCore } from '@/core';
|
||||
@@ -80,10 +80,8 @@ export class OB11Constructor {
|
||||
}
|
||||
else if (msg.chatType == ChatType.friend) {
|
||||
resMsg.sub_type = 'friend';
|
||||
const friend = await getFriend(msg.senderUin!);
|
||||
if (friend) {
|
||||
resMsg.sender.nickname = friend.nick;
|
||||
}
|
||||
let user = await NTQQUserApi.getUserDetailInfoByUin(msg.senderUin!);
|
||||
resMsg.sender.nickname = user.info.nick;
|
||||
}
|
||||
else if (msg.chatType == ChatType.temp) {
|
||||
resMsg.sub_type = 'group';
|
||||
|
||||
@@ -19,7 +19,7 @@ import { OB11Config, ob11Config } from '@/onebot11/config';
|
||||
import { httpHeart, ob11HTTPServer } from '@/onebot11/server/http';
|
||||
import { ob11WebsocketServer } from '@/onebot11/server/ws/WebsocketServer';
|
||||
import { ob11ReverseWebsockets } from '@/onebot11/server/ws/ReverseWebsocket';
|
||||
import { getFriend, getGroup, getGroupMember, groupNotifies, selfInfo, tempGroupCodeMap } from '@/core/data';
|
||||
import { getGroup, getGroupMember, groupNotifies, selfInfo, tempGroupCodeMap } from '@/core/data';
|
||||
import { dbUtil } from '@/common/utils/db';
|
||||
import { BuddyListener, GroupListener, NodeIKernelBuddyListener } from '@/core/listeners';
|
||||
import { OB11FriendRequestEvent } from '@/onebot11/event/request/OB11FriendRequest';
|
||||
@@ -474,10 +474,7 @@ export class NapCatOnebot11 {
|
||||
logDebug('收到邀请我加群通知');
|
||||
const groupInviteEvent = new OB11GroupRequestEvent();
|
||||
groupInviteEvent.group_id = parseInt(notify.group.groupCode);
|
||||
let user_id = (await getFriend(notify.user2.uid))?.uin;
|
||||
if (!user_id) {
|
||||
user_id = (await NTQQUserApi.getUinByUid(notify.user2.uid)) || '';
|
||||
}
|
||||
let user_id = (await NTQQUserApi.getUinByUid(notify.user2.uid)) || '';
|
||||
groupInviteEvent.user_id = parseInt(user_id);
|
||||
groupInviteEvent.sub_type = 'invite';
|
||||
groupInviteEvent.flag = flag;
|
||||
|
||||
Reference in New Issue
Block a user