score hist rework
parent
d7895cb8c7
commit
8db4d46835
|
@ -1,9 +1,7 @@
|
||||||
/* eslint-disable no-await-in-loop */
|
/* eslint-disable no-await-in-loop */
|
||||||
/* eslint-disable no-continue */
|
/* eslint-disable no-continue */
|
||||||
/* eslint-disable default-case */
|
/* eslint-disable default-case */
|
||||||
import moment from 'moment';
|
|
||||||
import { median, mode, mean } from 'mathjs';
|
import { median, mode, mean } from 'mathjs';
|
||||||
import { createPaginationEmbed } from 'eris-pagination';
|
|
||||||
import { Message } from 'eris';
|
import { Message } from 'eris';
|
||||||
import { Client, Command, RichEmbed } from '../class';
|
import { Client, Command, RichEmbed } from '../class';
|
||||||
import { getTotalMessageCount } from '../intervals/score';
|
import { getTotalMessageCount } from '../intervals/score';
|
||||||
|
@ -30,10 +28,9 @@ export default class Score_Hist extends Command {
|
||||||
}
|
}
|
||||||
const score = await this.client.db.Score.findOne({ userID: user.id }).lean().exec();
|
const score = await this.client.db.Score.findOne({ userID: user.id }).lean().exec();
|
||||||
if (!user) return this.error(message.channel, 'Member not found.');
|
if (!user) return this.error(message.channel, 'Member not found.');
|
||||||
const hists = await this.client.db.ScoreHistorical.find({ userID: user.id }).limit(31).lean().exec();
|
const hists = await this.client.db.ScoreHistorical.find({ userID: user.id }).lean().exec();
|
||||||
if (!hists) return this.error(message.channel, 'No history found.');
|
if (!hists) return this.error(message.channel, 'No history found.');
|
||||||
if (hists.length < 1) return this.error(message.channel, 'No history found.');
|
if (hists.length < 1) return this.error(message.channel, 'No history found.');
|
||||||
const histArray: [{ name: string, value: string }?] = [];
|
|
||||||
const totalArray: number[] = [];
|
const totalArray: number[] = [];
|
||||||
const activityArray: number[] = [];
|
const activityArray: number[] = [];
|
||||||
const moderationArray: number[] = [];
|
const moderationArray: number[] = [];
|
||||||
|
@ -97,7 +94,6 @@ export default class Score_Hist extends Command {
|
||||||
if (testDate > new Date()) hardInquiries++;
|
if (testDate > new Date()) hardInquiries++;
|
||||||
});
|
});
|
||||||
data += `__CommScore™:__ ${totalScore}\n__Activity:__ ${activityScore}\n__Roles:__ ${roleScore}\n__Moderation:__ ${moderationScore}\n__Cloud Services:__ ${cloudServicesScore}\n__Other:__ ${otherScore}\n__Misc:__ ${miscScore}\n\n__Hard Inquiries:__ ${hardInquiries}\n__Soft Inquiries:__ ${score.softInquiries?.length ?? '0'}`;
|
data += `__CommScore™:__ ${totalScore}\n__Activity:__ ${activityScore}\n__Roles:__ ${roleScore}\n__Moderation:__ ${moderationScore}\n__Cloud Services:__ ${cloudServicesScore}\n__Other:__ ${otherScore}\n__Misc:__ ${miscScore}\n\n__Hard Inquiries:__ ${hardInquiries}\n__Soft Inquiries:__ ${score.softInquiries?.length ?? '0'}`;
|
||||||
histArray.push({ name: moment(hist.date).calendar(), value: data });
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -112,11 +108,7 @@ export default class Score_Hist extends Command {
|
||||||
otherMean: mean(otherArray),
|
otherMean: mean(otherArray),
|
||||||
miscMean: mean(miscArray),
|
miscMean: mean(miscArray),
|
||||||
};
|
};
|
||||||
const splitHist = this.client.util.splitFields(histArray);
|
|
||||||
const cmdPages: RichEmbed[] = [];
|
|
||||||
splitHist.forEach((split) => {
|
|
||||||
const embed = new RichEmbed();
|
|
||||||
embed.setTitle('Historical Community Report');
|
|
||||||
let totalMean = '0';
|
let totalMean = '0';
|
||||||
let totalMedian = '0';
|
let totalMedian = '0';
|
||||||
let totalMode = '0';
|
let totalMode = '0';
|
||||||
|
@ -159,15 +151,6 @@ export default class Score_Hist extends Command {
|
||||||
else if (stat.cloudServicesMean > 10) cloudServicesMean = '10';
|
else if (stat.cloudServicesMean > 10) cloudServicesMean = '10';
|
||||||
else cloudServicesMean = `${stat.cloudServicesMean}`;
|
else cloudServicesMean = `${stat.cloudServicesMean}`;
|
||||||
|
|
||||||
embed.setDescription(`__**Statistical Averages**__\n**CommScore™ Mean:** ${totalMean} | **CommScore™ Mode:** ${totalMode} | **CommScore™ Median:** ${totalMedian}\n\n**Activity Mean:** ${activityMean}\n**Roles Mean:** ${roleMean}\n**Moderation Mean:** ${moderationMean}\n**Cloud Services Mean:** ${cloudServicesMean}\n**Other Mean:** ${otherMean}\n**Misc Mean:** ${miscMean}`);
|
|
||||||
embed.setAuthor(user.username, user.avatarURL);
|
|
||||||
embed.setThumbnail(user.avatarURL);
|
|
||||||
embed.setTimestamp();
|
|
||||||
embed.setFooter(this.client.user.username, this.client.user.avatarURL);
|
|
||||||
split.forEach((c) => embed.addField(c.name, c.value));
|
|
||||||
return cmdPages.push(embed);
|
|
||||||
});
|
|
||||||
|
|
||||||
let name = '';
|
let name = '';
|
||||||
for (const role of this.client.util.resolveMember(message.author.id, this.mainGuild).roles.map((r) => this.mainGuild.roles.get(r)).sort((a, b) => b.position - a.position)) {
|
for (const role of this.client.util.resolveMember(message.author.id, this.mainGuild).roles.map((r) => this.mainGuild.roles.get(r)).sort((a, b) => b.position - a.position)) {
|
||||||
name = `Library of Code sp-us | ${role.name} - [HISTORICAL]`;
|
name = `Library of Code sp-us | ${role.name} - [HISTORICAL]`;
|
||||||
|
@ -176,8 +159,14 @@ export default class Score_Hist extends Command {
|
||||||
await this.client.report.createInquiry(user.id, name, 1);
|
await this.client.report.createInquiry(user.id, name, 1);
|
||||||
|
|
||||||
|
|
||||||
if (cmdPages.length === 1) return message.channel.createMessage({ embed: cmdPages[0] });
|
const embed = new RichEmbed();
|
||||||
return createPaginationEmbed(message, cmdPages);
|
embed.setTitle('Historical Community Report');
|
||||||
|
embed.setAuthor(user.username, user.avatarURL);
|
||||||
|
embed.setThumbnail(user.avatarURL);
|
||||||
|
embed.setDescription(`__**Statistical Averages**__\n**CommScore™ Mean:** ${totalMean} | **CommScore™ Mode:** ${totalMode} | **CommScore™ Median:** ${totalMedian}\n\n**Activity Mean:** ${activityMean}\n**Roles Mean:** ${roleMean}\n**Moderation Mean:** ${moderationMean}\n**Cloud Services Mean:** ${cloudServicesMean}\n**Other Mean:** ${otherMean}\n**Misc Mean:** ${miscMean}`);
|
||||||
|
embed.setFooter(this.client.user.username, this.client.user.avatarURL);
|
||||||
|
|
||||||
|
return message.channel.createMessage({ embed });
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
return this.client.util.handleError(err, message, this);
|
return this.client.util.handleError(err, message, this);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,17 +1,34 @@
|
||||||
import { Document, Schema, model, Types } from 'mongoose';
|
import { Document, Schema, model, Types } from 'mongoose';
|
||||||
import { ScoreInterfaceRaw } from '.';
|
|
||||||
|
|
||||||
export interface ScoreHistoricalRaw {
|
export interface ScoreHistoricalRaw {
|
||||||
userID: string,
|
userID: string,
|
||||||
report: ScoreInterfaceRaw,
|
report: {
|
||||||
inquiries: [ Types.ObjectId ],
|
total: number,
|
||||||
|
activity: number,
|
||||||
|
roles: number,
|
||||||
|
moderation: number,
|
||||||
|
cloudServices: number,
|
||||||
|
staff: number,
|
||||||
|
other: number,
|
||||||
|
},
|
||||||
|
// inquiries: [ Types.ObjectId ],
|
||||||
|
inquiries: Types.ObjectId[],
|
||||||
date: Date,
|
date: Date,
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface ScoreHistoricalInterface extends Document {
|
export interface ScoreHistoricalInterface extends Document {
|
||||||
userID: string,
|
userID: string,
|
||||||
report: ScoreInterfaceRaw,
|
report: {
|
||||||
inquiries: [ Types.ObjectId ],
|
total: number,
|
||||||
|
activity: number,
|
||||||
|
roles: number,
|
||||||
|
moderation: number,
|
||||||
|
cloudServices: number,
|
||||||
|
staff: number,
|
||||||
|
other: number,
|
||||||
|
},
|
||||||
|
// inquiries: [ Types.ObjectId ],
|
||||||
|
inquiries: Types.ObjectId[],
|
||||||
date: Date
|
date: Date
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue