UNPKG

@ginstone/nga-api

Version:

62 lines (61 loc) 2.57 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.BaseUserInfo = void 0; const SimpleUserInfo_1 = require("./SimpleUserInfo"); const UserBuff_1 = require("./UserBuff"); const Honor_1 = require("../Honor"); const Money_1 = require("../Money"); const ObjUtils_1 = require("../../../utils/ObjUtils"); const TimeUtils_1 = require("../../../utils/TimeUtils"); const ReadDocBody_1 = require("../../body/ReadDocBody"); const BbsTagParser_1 = require("../../../bbscode/BbsTagParser"); const UserBuffType_1 = require("../../../enums/UserBuffType"); const ResourceApi_1 = require("../../../method/ResourceApi"); class BaseUserInfo extends SimpleUserInfo_1.SimpleUserInfo { constructor(raw) { super(raw); this.groupId = raw.groupid; if (raw.buffs) this.buffs = (0, ObjUtils_1.values)(raw.buffs).flatMap(item => { if (typeof item === 'object' && typeof item[0] === 'object') { return (0, ObjUtils_1.values)(item).map((i) => new UserBuff_1.UserBuff(i)); } return [new UserBuff_1.UserBuff(item)]; }); if (raw.honor) this.honor = new Honor_1.Honor(raw.honor); if (raw.medal && raw.medal !== '0') this.medal = raw.medal.split(",").map(i => Number(i)); if (raw.memberid) this.memberId = raw.memberid; this.money = new Money_1.Money(raw.money); this.regDatetime = (0, TimeUtils_1.secondsToDate)(raw.regdate); this.postCount = raw.posts || raw.postnum; this.prestige = raw.rvrc; const signature = raw.sign || raw.signature; if (signature) this.signature = signature.replace(new RegExp(ReadDocBody_1.TAB_PLACEHOLDER, "g"), "\t"); if (this.signature) this.signatureNodes = BbsTagParser_1.BbsTagParser.parseContent(this.signature); } /** * 返回当前生效的头像buff */ getAvatarBuff() { if (!this.buffs) { return undefined; } const buffs = this.buffs.filter(i => i.type === UserBuffType_1.UserBuffType.AVATAR_CHANGED); if (buffs.length === 0) { return undefined; } const commonUiData = ResourceApi_1.ResourceApi.commonUiData; if (!commonUiData) { return undefined; } // 最后一个buff的id const id = buffs[buffs.length - 1].extraData; return commonUiData.avatarBuffs.filter(i => i.id === id)[0]; } } exports.BaseUserInfo = BaseUserInfo;