refactor: uin - > uid

This commit is contained in:
手瓜一十雪 2024-06-04 23:06:53 +08:00
parent 4b616299cf
commit 9a502cdf6f
9 changed files with 49 additions and 50 deletions

View File

@ -11,22 +11,22 @@ interface OB11GroupRequestNotify {
flag: string flag: string
} }
export default class GetGroupAddRequest extends BaseAction<null, OB11GroupRequestNotify[]> { export default class GetGroupAddRequest extends BaseAction<null, OB11GroupRequestNotify[] | null> {
actionName = ActionName.GetGroupIgnoreAddRequest; actionName = ActionName.GetGroupIgnoreAddRequest;
protected async _handle(payload: null): Promise<OB11GroupRequestNotify[]> { protected async _handle(payload: null): Promise<OB11GroupRequestNotify[] | null> {
const data = await NTQQGroupApi.getGroupIgnoreNotifies(); const data = await NTQQGroupApi.getGroupIgnoreNotifies();
// log(data); // log(data);
const notifies: GroupNotify[] = data.notifies.filter(notify => notify.status === GroupNotifyStatus.WAIT_HANDLE); // const notifies: GroupNotify[] = data.notifies.filter(notify => notify.status === GroupNotifyStatus.WAIT_HANDLE);
const returnData: OB11GroupRequestNotify[] = []; // const returnData: OB11GroupRequestNotify[] = [];
for (const notify of notifies) { // for (const notify of notifies) {
const uin = uid2UinMap[notify.user1.uid] || (await NTQQUserApi.getUserDetailInfo(notify.user1.uid))?.uin; // const uin = uid2UinMap[notify.user1.uid] || (await NTQQUserApi.getUserDetailInfo(notify.user1.uid))?.uin;
returnData.push({ // returnData.push({
group_id: parseInt(notify.group.groupCode), // group_id: parseInt(notify.group.groupCode),
user_id: parseInt(uin), // user_id: parseInt(uin),
flag: notify.seq // flag: notify.seq
}); // });
} // }
return returnData; return null;
} }
} }

View File

@ -1,10 +1,8 @@
import BaseAction from '../BaseAction'; import BaseAction from '../BaseAction';
import { OB11User } from '../../types'; import { OB11User } from '../../types';
import { getUidByUin, uid2UinMap } from '@/core/data';
import { OB11Constructor } from '../../constructor'; import { OB11Constructor } from '../../constructor';
import { ActionName } from '../types'; import { ActionName } from '../types';
import { NTQQUserApi } from '@/core/apis/user'; import { NTQQUserApi } from '@/core/apis/user';
import { log, logDebug } from '@/common/utils/log';
import { FromSchema, JSONSchema } from 'json-schema-to-ts'; import { FromSchema, JSONSchema } from 'json-schema-to-ts';
const SchemaData = { const SchemaData = {
@ -23,10 +21,11 @@ export default class GoCQHTTPGetStrangerInfo extends BaseAction<Payload, OB11Use
protected async _handle(payload: Payload): Promise<OB11User> { protected async _handle(payload: Payload): Promise<OB11User> {
const user_id = payload.user_id.toString(); const user_id = payload.user_id.toString();
//logDebug('uidMaps', uidMaps); //logDebug('uidMaps', uidMaps);
const uid = getUidByUin(user_id); // const uid = getUidByUin(user_id);
if (!uid) { // if (!uid) {
throw new Error('查无此人'); // throw new Error('查无此人');
} // }
return OB11Constructor.stranger(await NTQQUserApi.getUserDetailInfo(uid)); // !!!!!!!!!!!!!!!需要重构
return OB11Constructor.stranger(await NTQQUserApi.getUserDetailInfo((await NTQQUserApi.getUidByUin(user_id))!));
} }
} }

View File

@ -1,8 +1,7 @@
import BaseAction from '../BaseAction'; import BaseAction from '../BaseAction';
import { NTQQMsgApi } from '@/core/apis'; import { NTQQMsgApi, NTQQUserApi } from '@/core/apis';
import { ChatType, Peer } from '@/core/entities'; import { ChatType, Peer } from '@/core/entities';
import { dbUtil } from '@/common/utils/db'; import { dbUtil } from '@/common/utils/db';
import { getUidByUin } from '@/core/data';
import { ActionName } from '../types'; import { ActionName } from '../types';
import { FromSchema, JSONSchema } from 'json-schema-to-ts'; import { FromSchema, JSONSchema } from 'json-schema-to-ts';
@ -21,7 +20,7 @@ type Payload = FromSchema<typeof SchemaData>;
class ForwardSingleMsg extends BaseAction<Payload, null> { class ForwardSingleMsg extends BaseAction<Payload, null> {
protected async getTargetPeer(payload: Payload): Promise<Peer> { protected async getTargetPeer(payload: Payload): Promise<Peer> {
if (payload.user_id) { if (payload.user_id) {
const peerUid = getUidByUin(payload.user_id.toString()); const peerUid = await NTQQUserApi.getUidByUin(payload.user_id.toString());
if (!peerUid) { if (!peerUid) {
throw new Error(`无法找到私聊对象${payload.user_id}`); throw new Error(`无法找到私聊对象${payload.user_id}`);
} }

View File

@ -1,15 +1,15 @@
import { ChatType, Peer } from '@/core/entities'; import { ChatType, Peer } from '@/core/entities';
import BaseAction from '../BaseAction'; import BaseAction from '../BaseAction';
import { ActionName } from '../types'; import { ActionName } from '../types';
import { NTQQMsgApi } from '@/core/apis'; import { NTQQMsgApi, NTQQUserApi } from '@/core/apis';
import { getFriend, getUidByUin } from '@/core/data'; import { getFriend } from '@/core/data';
import { FromSchema, JSONSchema } from 'json-schema-to-ts'; import { FromSchema, JSONSchema } from 'json-schema-to-ts';
const SchemaData = { const SchemaData = {
type: 'object', type: 'object',
properties: { properties: {
user_id: { type: [ 'number' , 'string' ] }, user_id: { type: ['number', 'string'] },
group_id: { type: [ 'number' , 'string' ] } group_id: { type: ['number', 'string'] }
} }
} as const satisfies JSONSchema; } as const satisfies JSONSchema;
@ -18,12 +18,12 @@ type PlayloadType = FromSchema<typeof SchemaData>;
class MarkMsgAsRead extends BaseAction<PlayloadType, null> { class MarkMsgAsRead extends BaseAction<PlayloadType, null> {
async getPeer(payload: PlayloadType): Promise<Peer> { async getPeer(payload: PlayloadType): Promise<Peer> {
if (payload.user_id) { if (payload.user_id) {
const peerUid = getUidByUin(payload.user_id.toString()); const peerUid = await NTQQUserApi.getUidByUin(payload.user_id.toString());
if (!peerUid) { if (!peerUid) {
throw `私聊${payload.user_id}不存在`; throw `私聊${payload.user_id}不存在`;
} }
const friend = await getFriend(peerUid); const friend = await getFriend(peerUid);
return { chatType: friend ? ChatType.friend: ChatType.temp, peerUid }; return { chatType: friend ? ChatType.friend : ChatType.temp, peerUid };
} }
if (!payload.group_id) { if (!payload.group_id) {
throw '缺少参数 group_id 或 user_id'; throw '缺少参数 group_id 或 user_id';
@ -50,11 +50,11 @@ export class MarkGroupMsgAsRead extends MarkMsgAsRead {
} }
interface Payload{ interface Payload {
message_id: number message_id: number
} }
export class GoCQHTTPMarkMsgAsRead extends BaseAction<Payload, null>{ export class GoCQHTTPMarkMsgAsRead extends BaseAction<Payload, null> {
actionName = ActionName.GoCQHTTP_MarkMsgAsRead; actionName = ActionName.GoCQHTTP_MarkMsgAsRead;
protected async _handle(payload: Payload): Promise<null> { protected async _handle(payload: Payload): Promise<null> {

View File

@ -7,9 +7,9 @@ import {
OB11PostSendMsg OB11PostSendMsg
} from '@/onebot11/types'; } from '@/onebot11/types';
import { ActionName, BaseCheckResult } from '@/onebot11/action/types'; import { ActionName, BaseCheckResult } from '@/onebot11/action/types';
import { getFriend, getGroup, getUidByUin } from '@/core/data'; import { getFriend, getGroup } from '@/core/data';
import { dbUtil } from '@/common/utils/db'; import { dbUtil } from '@/common/utils/db';
import { ChatType, ElementType, Group, NTQQMsgApi, Peer, SendMessageElement, } from '@/core'; import { ChatType, ElementType, Group, NTQQMsgApi, NTQQUserApi, Peer, SendMessageElement, } from '@/core';
import fs from 'node:fs'; import fs from 'node:fs';
import { logDebug, logError } from '@/common/utils/log'; import { logDebug, logError } from '@/common/utils/log';
import { decodeCQCode } from '@/onebot11/cqcode'; import { decodeCQCode } from '@/onebot11/cqcode';
@ -93,7 +93,8 @@ async function createContext(payload: OB11PostSendMsg): Promise<{
const friend = await getFriend(payload.user_id.toString()); const friend = await getFriend(payload.user_id.toString());
if (!friend) { if (!friend) {
if (ALLOW_SEND_TEMP_MSG) { if (ALLOW_SEND_TEMP_MSG) {
const tempUid = getUidByUin(payload.user_id.toString()); //const tempUid = getUidByUin(payload.user_id.toString());
const tempUid = await NTQQUserApi.getUidByUin(payload.user_id.toString());
if (tempUid) return { if (tempUid) return {
peer: { peer: {
chatType: ChatType.temp, chatType: ChatType.temp,

View File

@ -1,6 +1,6 @@
import { NTQQUserApi } from '@/core/apis'; import { NTQQUserApi } from '@/core/apis';
import BaseAction from '../BaseAction'; import BaseAction from '../BaseAction';
import { getFriend, getUidByUin, uid2UinMap } from '@/core/data'; import { getFriend } from '@/core/data';
import { ActionName } from '../types'; import { ActionName } from '../types';
import { log, logDebug } from '@/common/utils/log'; import { log, logDebug } from '@/common/utils/log';
import { FromSchema, JSONSchema } from 'json-schema-to-ts'; import { FromSchema, JSONSchema } from 'json-schema-to-ts';
@ -8,7 +8,7 @@ import { FromSchema, JSONSchema } from 'json-schema-to-ts';
const SchemaData = { const SchemaData = {
type: 'object', type: 'object',
properties: { properties: {
user_id: { type: [ 'number' , 'string' ] }, user_id: { type: ['number', 'string'] },
times: { type: 'number' } times: { type: 'number' }
}, },
required: ['user_id', 'times'] required: ['user_id', 'times']
@ -26,7 +26,7 @@ export default class SendLike extends BaseAction<Payload, null> {
const friend = await getFriend(qq); const friend = await getFriend(qq);
let uid: string; let uid: string;
if (!friend) { if (!friend) {
uid = getUidByUin(qq) || ''; uid = await NTQQUserApi.getUidByUin(qq) || '';
} else { } else {
uid = friend.uid; uid = friend.uid;
} }

View File

@ -338,7 +338,7 @@ export class OB11Constructor {
deleteGroup(msg.peerUid); deleteGroup(msg.peerUid);
NTQQGroupApi.quitGroup(msg.peerUid).then(); NTQQGroupApi.quitGroup(msg.peerUid).then();
try { try {
const adminUin = (await getGroupMember(msg.peerUid, groupElement.adminUid))?.uin || (await NTQQUserApi.getUserDetailInfo(groupElement.adminUid))?.uin; const adminUin = (await getGroupMember(msg.peerUid, groupElement.adminUid))?.uin || (await NTQQUserApi.getUidByUin(groupElement.adminUid));
if (adminUin) { if (adminUin) {
return new OB11GroupDecreaseEvent(parseInt(msg.peerUid), parseInt(selfInfo.uin), parseInt(adminUin), 'kick_me'); return new OB11GroupDecreaseEvent(parseInt(msg.peerUid), parseInt(selfInfo.uin), parseInt(adminUin), 'kick_me');
} }

View File

@ -424,18 +424,18 @@ export class NapCatOnebot11 {
} else if (notify.type == GroupNotifyTypes.MEMBER_EXIT || notify.type == GroupNotifyTypes.KICK_MEMBER) { } else if (notify.type == GroupNotifyTypes.MEMBER_EXIT || notify.type == GroupNotifyTypes.KICK_MEMBER) {
logDebug('有成员退出通知', notify); logDebug('有成员退出通知', notify);
try { try {
const member1 = await NTQQUserApi.getUserDetailInfo(notify.user1.uid); const member1Uin = (await NTQQUserApi.getUinByUid(notify.user1.uid))!;
let operatorId = member1.uin; let operatorId = member1Uin;
let subType: GroupDecreaseSubType = 'leave'; let subType: GroupDecreaseSubType = 'leave';
if (notify.user2.uid) { if (notify.user2.uid) {
// 是被踢的 // 是被踢的
const member2 = await getGroupMember(notify.group.groupCode, notify.user2.uid); const member2Uin = await NTQQUserApi.getUinByUid(notify.user2.uid);
if (member2) { if (member2Uin) {
operatorId = member2.uin; operatorId = member2Uin;
} }
subType = 'kick'; subType = 'kick';
} }
const groupDecreaseEvent = new OB11GroupDecreaseEvent(parseInt(notify.group.groupCode), parseInt(member1.uin), parseInt(operatorId), subType); const groupDecreaseEvent = new OB11GroupDecreaseEvent(parseInt(notify.group.groupCode), parseInt(member1Uin), parseInt(operatorId), subType);
postOB11Event(groupDecreaseEvent, true); postOB11Event(groupDecreaseEvent, true);
} catch (e: any) { } catch (e: any) {
logError('获取群通知的成员信息失败', notify, e.stack.toString()); logError('获取群通知的成员信息失败', notify, e.stack.toString());
@ -463,7 +463,7 @@ export class NapCatOnebot11 {
groupInviteEvent.group_id = parseInt(notify.group.groupCode); groupInviteEvent.group_id = parseInt(notify.group.groupCode);
let user_id = (await getFriend(notify.user2.uid))?.uin; let user_id = (await getFriend(notify.user2.uid))?.uin;
if (!user_id) { if (!user_id) {
user_id = (await NTQQUserApi.getUserDetailInfo(notify.user2.uid))?.uin; user_id = (await NTQQUserApi.getUinByUid(notify.user2.uid)) || '';
} }
groupInviteEvent.user_id = parseInt(user_id); groupInviteEvent.user_id = parseInt(user_id);
groupInviteEvent.sub_type = 'invite'; groupInviteEvent.sub_type = 'invite';
@ -520,8 +520,8 @@ export class NapCatOnebot11 {
friendRequests[flag] = req; friendRequests[flag] = req;
const friendRequestEvent = new OB11FriendRequestEvent(); const friendRequestEvent = new OB11FriendRequestEvent();
try { try {
const requester = await NTQQUserApi.getUserDetailInfo(req.friendUid); const requesterUin = await NTQQUserApi.getUinByUid(req.friendUid);
friendRequestEvent.user_id = parseInt(requester.uin); friendRequestEvent.user_id = parseInt(requesterUin!);
} catch (e) { } catch (e) {
logDebug('获取加好友者QQ号失败', e); logDebug('获取加好友者QQ号失败', e);
} }

View File

@ -12,8 +12,8 @@ import { OB11FriendRequestEvent } from '../event/request/OB11FriendRequest';
import { OB11GroupRequestEvent } from '../event/request/OB11GroupRequest'; import { OB11GroupRequestEvent } from '../event/request/OB11GroupRequest';
import { isNull } from '@/common/utils/helper'; import { isNull } from '@/common/utils/helper';
import { dbUtil } from '@/common/utils/db'; import { dbUtil } from '@/common/utils/db';
import { friendRequests, getGroup, getUidByUin, groupNotifies, selfInfo } from '@/core/data'; import { friendRequests, getGroup, groupNotifies, selfInfo } from '@/core/data';
import { NTQQFriendApi, NTQQGroupApi, NTQQMsgApi } from '@/core/apis'; import { NTQQFriendApi, NTQQGroupApi, NTQQUserApi } from '@/core/apis';
import createSendElements from '../action/msg/SendMsg/create-send-elements'; import createSendElements from '../action/msg/SendMsg/create-send-elements';
export type QuickActionEvent = OB11Message | OB11BaseMetaEvent | OB11BaseNoticeEvent export type QuickActionEvent = OB11Message | OB11BaseMetaEvent | OB11BaseNoticeEvent
@ -129,7 +129,7 @@ async function handleMsg(msg: OB11Message, quickAction: QuickAction) {
const reply = quickAction.reply; const reply = quickAction.reply;
const peer: Peer = { const peer: Peer = {
chatType: ChatType.friend, chatType: ChatType.friend,
peerUid: getUidByUin(msg.user_id.toString()) as string peerUid: await NTQQUserApi.getUidByUin(msg.user_id.toString()) as string
}; };
if (msg.message_type == 'private') { if (msg.message_type == 'private') {
if (msg.sub_type === 'group') { if (msg.sub_type === 'group') {