mirror of
https://github.com/LLOneBot/LLOneBot.git
synced 2024-11-22 01:56:33 +00:00
fix: get_group_member_list
API
This commit is contained in:
parent
156bbaea33
commit
c2a723380a
@ -104,11 +104,20 @@ export interface NodeIKernelGroupService {
|
|||||||
|
|
||||||
createMemberListScene(groupCode: string, scene: string): string
|
createMemberListScene(groupCode: string, scene: string): string
|
||||||
|
|
||||||
destroyMemberListScene(SceneId: string): void
|
destroyMemberListScene(sceneId: string): void
|
||||||
//About Arg (a) name: lastId 根据手Q来看为object {index:?(number),uid:string}
|
|
||||||
getNextMemberList(sceneId: string, a: undefined, num: number): Promise<{
|
getNextMemberList(sceneId: string, a: undefined, num: number): Promise<{
|
||||||
errCode: number, errMsg: string,
|
errCode: number
|
||||||
result: { ids: string[], infos: Map<string, GroupMember>, finish: boolean, hasRobot: boolean }
|
errMsg: string
|
||||||
|
result: {
|
||||||
|
ids: {
|
||||||
|
uid: string
|
||||||
|
index: number
|
||||||
|
}[]
|
||||||
|
infos: Map<string, GroupMember>
|
||||||
|
finish: boolean
|
||||||
|
hasRobot: boolean
|
||||||
|
}
|
||||||
}>
|
}>
|
||||||
|
|
||||||
getPrevMemberList(): unknown
|
getPrevMemberList(): unknown
|
||||||
|
@ -62,8 +62,9 @@ export interface GroupMember {
|
|||||||
sex?: Sex
|
sex?: Sex
|
||||||
qqLevel?: QQLevel
|
qqLevel?: QQLevel
|
||||||
isChangeRole: boolean
|
isChangeRole: boolean
|
||||||
joinTime: string
|
joinTime: number
|
||||||
lastSpeakTime: string
|
lastSpeakTime: number
|
||||||
|
memberLevel: number
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface PublishGroupBulletinReq {
|
export interface PublishGroupBulletinReq {
|
||||||
|
@ -13,11 +13,16 @@ class GetGroupMemberList extends BaseAction<Payload, OB11GroupMember[]> {
|
|||||||
actionName = ActionName.GetGroupMemberList
|
actionName = ActionName.GetGroupMemberList
|
||||||
|
|
||||||
protected async _handle(payload: Payload) {
|
protected async _handle(payload: Payload) {
|
||||||
const groupMembers = await this.ctx.ntGroupApi.getGroupMembers(payload.group_id.toString())
|
const groupCode = payload.group_id.toString()
|
||||||
|
let groupMembers = await this.ctx.ntGroupApi.getGroupMembers(groupCode)
|
||||||
|
if (groupMembers.size === 0) {
|
||||||
|
await this.ctx.sleep(100)
|
||||||
|
groupMembers = await this.ctx.ntGroupApi.getGroupMembers(groupCode)
|
||||||
|
}
|
||||||
const groupMembersArr = Array.from(groupMembers.values())
|
const groupMembersArr = Array.from(groupMembers.values())
|
||||||
|
|
||||||
let _groupMembers = groupMembersArr.map(item => {
|
const _groupMembers = groupMembersArr.map(item => {
|
||||||
return OB11Entities.groupMember(payload.group_id.toString(), item)
|
return OB11Entities.groupMember(groupCode, item)
|
||||||
})
|
})
|
||||||
|
|
||||||
const MemberMap: Map<number, OB11GroupMember> = new Map<number, OB11GroupMember>()
|
const MemberMap: Map<number, OB11GroupMember> = new Map<number, OB11GroupMember>()
|
||||||
@ -25,8 +30,8 @@ class GetGroupMemberList extends BaseAction<Payload, OB11GroupMember[]> {
|
|||||||
|
|
||||||
for (let i = 0, len = _groupMembers.length; i < len; i++) {
|
for (let i = 0, len = _groupMembers.length; i < len; i++) {
|
||||||
// 保证基础数据有这个 同时避免群管插件过于依赖这个杀了
|
// 保证基础数据有这个 同时避免群管插件过于依赖这个杀了
|
||||||
_groupMembers[i].join_time = date
|
_groupMembers[i].join_time ||= date
|
||||||
_groupMembers[i].last_sent_time = date
|
_groupMembers[i].last_sent_time ||= date
|
||||||
MemberMap.set(_groupMembers[i].user_id, _groupMembers[i])
|
MemberMap.set(_groupMembers[i].user_id, _groupMembers[i])
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -34,24 +39,24 @@ class GetGroupMemberList extends BaseAction<Payload, OB11GroupMember[]> {
|
|||||||
const isPrivilege = selfRole === 3 || selfRole === 4
|
const isPrivilege = selfRole === 3 || selfRole === 4
|
||||||
|
|
||||||
if (isPrivilege) {
|
if (isPrivilege) {
|
||||||
const webGroupMembers = await this.ctx.ntWebApi.getGroupMembers(payload.group_id.toString())
|
const webGroupMembers = await this.ctx.ntWebApi.getGroupMembers(groupCode)
|
||||||
for (let i = 0, len = webGroupMembers.length; i < len; i++) {
|
for (let i = 0, len = webGroupMembers.length; i < len; i++) {
|
||||||
if (!webGroupMembers[i]?.uin) {
|
if (!webGroupMembers[i]?.uin) {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
const MemberData = MemberMap.get(webGroupMembers[i]?.uin)
|
const MemberData = MemberMap.get(webGroupMembers[i]?.uin)
|
||||||
if (MemberData) {
|
if (MemberData) {
|
||||||
|
if (MemberData.join_time === date) {
|
||||||
MemberData.join_time = webGroupMembers[i]?.join_time
|
MemberData.join_time = webGroupMembers[i]?.join_time
|
||||||
MemberData.last_sent_time = webGroupMembers[i]?.last_speak_time
|
MemberData.last_sent_time = webGroupMembers[i]?.last_speak_time
|
||||||
|
}
|
||||||
MemberData.qage = webGroupMembers[i]?.qage
|
MemberData.qage = webGroupMembers[i]?.qage
|
||||||
MemberData.level = webGroupMembers[i]?.lv.level.toString()
|
|
||||||
MemberMap.set(webGroupMembers[i]?.uin, MemberData)
|
MemberMap.set(webGroupMembers[i]?.uin, MemberData)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
_groupMembers = Array.from(MemberMap.values())
|
return Array.from(MemberMap.values())
|
||||||
return _groupMembers
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -710,10 +710,10 @@ export namespace OB11Entities {
|
|||||||
sex: sex(member.sex!),
|
sex: sex(member.sex!),
|
||||||
age: 0,
|
age: 0,
|
||||||
area: '',
|
area: '',
|
||||||
level: '0',
|
level: String(member.memberLevel ?? 0),
|
||||||
qq_level: (member.qqLevel && calcQQLevel(member.qqLevel)) || 0,
|
qq_level: (member.qqLevel && calcQQLevel(member.qqLevel)) || 0,
|
||||||
join_time: 0, // 暂时没法获取
|
join_time: member.joinTime,
|
||||||
last_sent_time: 0, // 暂时没法获取
|
last_sent_time: member.lastSpeakTime,
|
||||||
title_expire_time: 0,
|
title_expire_time: 0,
|
||||||
unfriendly: false,
|
unfriendly: false,
|
||||||
card_changeable: true,
|
card_changeable: true,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user