mirror of
https://github.com/LLOneBot/LLOneBot.git
synced 2024-11-22 01:56:33 +00:00
optimize
This commit is contained in:
parent
a2056a43f3
commit
388e016365
@ -4,7 +4,6 @@ import { invoke, NTMethod, NTClass } from '../ntcall'
|
||||
import { getSession } from '@/ntqqapi/wrapper'
|
||||
import { BuddyListReqType, NodeIKernelProfileService } from '../services'
|
||||
import { NTEventDispatch } from '@/common/utils/eventTask'
|
||||
import { LimitedHashTable } from '@/common/utils/table'
|
||||
import { pick } from 'cosmokit'
|
||||
import { Service, Context } from 'cordis'
|
||||
|
||||
@ -101,8 +100,9 @@ export class NTQQFriendApi extends Service {
|
||||
}
|
||||
}
|
||||
|
||||
async getBuddyIdMap(refresh = false): Promise<LimitedHashTable<string, string>> {
|
||||
const retMap: LimitedHashTable<string, string> = new LimitedHashTable<string, string>(5000)
|
||||
/** uid => uin */
|
||||
async getBuddyIdMap(refresh = false): Promise<Map<string, string>> {
|
||||
const retMap: Map<string, string> = new Map()
|
||||
const session = getSession()
|
||||
if (session) {
|
||||
const uids: string[] = []
|
||||
@ -112,9 +112,12 @@ export class NTQQFriendApi extends Service {
|
||||
const data = await NTEventDispatch.CallNoListenerEvent<NodeIKernelProfileService['getCoreAndBaseInfo']>(
|
||||
'NodeIKernelProfileService/getCoreAndBaseInfo', 5000, 'nodeStore', uids
|
||||
)
|
||||
data.forEach((value, key) => {
|
||||
retMap.set(value.uin!, value.uid!)
|
||||
})
|
||||
for (const [, item] of data) {
|
||||
if (retMap.size > 5000) {
|
||||
break
|
||||
}
|
||||
retMap.set(item.uid!, item.uin!)
|
||||
}
|
||||
} else {
|
||||
const data = await invoke<{
|
||||
buddyCategory: CategoryFriend[]
|
||||
@ -129,7 +132,10 @@ export class NTQQFriendApi extends Service {
|
||||
}
|
||||
)
|
||||
for (const item of Object.values(data.userSimpleInfos)) {
|
||||
retMap.set(item.uin!, item.uid!)
|
||||
if (retMap.size > 5000) {
|
||||
break
|
||||
}
|
||||
retMap.set(item.uid!, item.uin!)
|
||||
}
|
||||
}
|
||||
return retMap
|
||||
|
@ -210,11 +210,11 @@ export class NTQQUserApi extends Service {
|
||||
uid = (await session.getUixConvertService().getUid([uin])).uidInfo.get(uin)
|
||||
if (uid) return uid
|
||||
} else {
|
||||
let uid = (await invoke('nodeIKernelGroupService/getUidByUins', [{ uin: [uin] }, null])).uids.get(uin)
|
||||
let uid = (await invoke('nodeIKernelGroupService/getUidByUins', [{ uin: [uin] }])).uids.get(uin)
|
||||
if (uid) return uid
|
||||
uid = (await invoke('nodeIKernelProfileService/getUidByUin', [{ callFrom: 'FriendsServiceImpl', uin: [uin] }, null])).get(uin)
|
||||
uid = (await invoke('nodeIKernelProfileService/getUidByUin', [{ callFrom: 'FriendsServiceImpl', uin: [uin] }])).get(uin)
|
||||
if (uid) return uid
|
||||
uid = (await invoke('nodeIKernelUixConvertService/getUid', [{ uins: [uin] }, null])).uidInfo.get(uin)
|
||||
uid = (await invoke('nodeIKernelUixConvertService/getUid', [{ uins: [uin] }])).uidInfo.get(uin)
|
||||
if (uid) return uid
|
||||
}
|
||||
const unveifyUid = (await this.getUserDetailInfoByUinV2(uin)).detail.uid //从QQ Native 特殊转换
|
||||
@ -280,14 +280,14 @@ export class NTQQUserApi extends Service {
|
||||
uin = (await session.getUixConvertService().getUin([uid])).uinInfo.get(uid)
|
||||
if (uin) return uin
|
||||
} else {
|
||||
let uin = (await invoke('nodeIKernelGroupService/getUinByUids', [{ uid: [uid] }, null])).uins.get(uid)
|
||||
let uin = (await invoke('nodeIKernelGroupService/getUinByUids', [{ uid: [uid] }])).uins.get(uid)
|
||||
if (uin) return uin
|
||||
uin = (await invoke('nodeIKernelProfileService/getUinByUid', [{ callFrom: 'FriendsServiceImpl', uid: [uid] }, null])).get(uid)
|
||||
uin = (await invoke('nodeIKernelProfileService/getUinByUid', [{ callFrom: 'FriendsServiceImpl', uid: [uid] }])).get(uid)
|
||||
if (uin) return uin
|
||||
uin = (await invoke('nodeIKernelUixConvertService/getUin', [{ uids: [uid] }, null])).uinInfo.get(uid)
|
||||
uin = (await invoke('nodeIKernelUixConvertService/getUin', [{ uids: [uid] }])).uinInfo.get(uid)
|
||||
if (uin) return uin
|
||||
}
|
||||
let uin = (await this.ctx.ntFriendApi.getBuddyIdMap(true)).getKey(uid)
|
||||
let uin = (await this.ctx.ntFriendApi.getBuddyIdMap(true)).get(uid)
|
||||
if (uin) return uin
|
||||
uin = (await this.getUserDetailInfo(uid)).uin //从QQ Native 转换
|
||||
return uin
|
||||
|
Loading…
x
Reference in New Issue
Block a user