mirror of
https://github.com/LLOneBot/LLOneBot.git
synced 2024-11-22 01:56:33 +00:00
feat: stranger info add sex & qq_level
This commit is contained in:
parent
b12d205059
commit
dda5ea3972
@ -5,24 +5,29 @@ import {OB11Constructor} from "../../constructor";
|
||||
import {ActionName} from "../types";
|
||||
import {isNull, log} from "../../../common/utils";
|
||||
import {NTQQUserApi} from "../../../ntqqapi/api/user";
|
||||
import {Friend, GroupMember} from "../../../ntqqapi/types";
|
||||
|
||||
|
||||
export default class GoCQHTTPGetStrangerInfo extends BaseAction<{ user_id: number }, OB11User> {
|
||||
actionName = ActionName.GoCQHTTP_GetStrangerInfo
|
||||
|
||||
private async refreshInfo(user: Friend | GroupMember){
|
||||
if (isNull(user.sex)){
|
||||
let info = (await NTQQUserApi.getUserDetailInfo(user.uid))
|
||||
Object.assign(user, info);
|
||||
}
|
||||
}
|
||||
protected async _handle(payload: { user_id: number }): Promise<OB11User> {
|
||||
const user_id = payload.user_id.toString()
|
||||
const friend = await getFriend(user_id)
|
||||
if (friend) {
|
||||
await this.refreshInfo(friend);
|
||||
return OB11Constructor.friend(friend);
|
||||
}
|
||||
for (const group of groups) {
|
||||
const member = await getGroupMember(group.groupCode, user_id)
|
||||
if (member) {
|
||||
if (isNull(member.sex)){
|
||||
let info = (await NTQQUserApi.getUserDetailInfo(member.uid))
|
||||
Object.assign(member, info);
|
||||
}
|
||||
await this.refreshInfo(member);
|
||||
return OB11Constructor.groupMember(group.groupCode, member) as OB11User
|
||||
}
|
||||
}
|
||||
|
@ -305,9 +305,10 @@ export class OB11Constructor {
|
||||
return {
|
||||
user_id: parseInt(friend.uin),
|
||||
nickname: friend.nick,
|
||||
remark: friend.remark
|
||||
remark: friend.remark,
|
||||
sex: OB11Constructor.sex(friend.sex),
|
||||
qq_level: friend.qqLevel && calcQQLevel(friend.qqLevel) || 0
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
static selfInfo(selfInfo: SelfInfo): OB11User {
|
||||
|
@ -4,7 +4,9 @@ import {EventType} from "./event/OB11BaseEvent";
|
||||
export interface OB11User {
|
||||
user_id: number;
|
||||
nickname: string;
|
||||
remark?: string
|
||||
remark?: string;
|
||||
sex?: OB11UserSex;
|
||||
qq_level?: number;
|
||||
}
|
||||
|
||||
export enum OB11UserSex {
|
||||
|
Loading…
x
Reference in New Issue
Block a user