群成员获取研究

This commit is contained in:
linyuchen
2023-11-01 17:46:46 +08:00
parent 7a7d21d533
commit e2759417f5
6 changed files with 209 additions and 153 deletions

85
src/global.d.ts vendored
View File

@@ -1,68 +1,6 @@
declare enum AtType {
notAt = 0,
atUser = 2
}
import {Group, GroupMemberInfo, MessageElement, Peer, PostDataSendMsg, SendMessage, User} from "./types";
declare type Peer = {
chatType: "private" | "group"
name: string
uid: string // qq号
}
interface MessageElement {
raw: {
elements: {
replyElement: {
senderUid: string, // 原消息发送者QQ号
sourceMsgIsIncPic: boolean; // 原消息是否有图片
sourceMsgText: string;
sourceMsgIdInRecords: string; // 原消息id
},
textElement: {
atType: AtType
atUid: string,
content: string
},
picElement: {
sourcePath: string // 图片本地路径
picWidth: number
picHeight: number
fileSize: number
fileName: string
fileUuid: string
}
}[]
}
peer: Peer,
sender: {
uid: string // 一串加密的字符串
memberName: string
nickname: string
}
}
declare type User = {
avatarUrl?: string;
bio?: string; // 签名
nickName: string;
uid?: string; // 加密的字符串
uin: string; // QQ号
}
declare type Group = {
uid: string; // 群号
name: string;
}
declare type SendMessage = {
type: "text",
content: string,
} | {
type: "image",
file: string, // 这是本地路径?
}
declare var LLAPI: {
on(event: "new-messages", callback: (data: MessageElement[]) => void): void;
@@ -76,16 +14,12 @@ declare var LLAPI: {
sendMessage(peer: Peer, message: SendMessage[]): Promise<void>;
getGroupsList(forced: boolean): Promise<Group[]>
getFriendsList(forced: boolean): Promise<User[]>
getGroupMemberList(group_id: string, num: number): Promise<{result: { infos: Record<string, GroupMemberInfo> }}>
};
declare type PostDataSendMsg = {
action: "send_private_msg" | "send_group_msg" | "get_group_list",
params: {
user_id: string,
group_id: string,
message: SendMessage[];
}
}
declare var llonebot: {
postData: (data: any) => void
@@ -94,4 +28,11 @@ declare var llonebot: {
updateFriends: (friends: User[]) => void
updateGroupMembers: (data: { groupMembers: User[], group_id: string }) => void
startExpress: () => void
};
};
declare global {
interface Window {
LLAPI: typeof LLAPI;
llonebot: typeof llonebot;
}
}