@ginstone/nga-api
Version:
62 lines (61 loc) • 2.57 kB
JavaScript
;
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;