Skip to content

Commit

Permalink
metricbygroup
Browse files Browse the repository at this point in the history
  • Loading branch information
xdnw committed Jan 9, 2024
1 parent 775f563 commit 3528644
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 8 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -19,15 +19,18 @@
import link.locutus.discord.commands.rankings.table.TableNumberFormat;
import link.locutus.discord.commands.rankings.table.TimeFormat;
import link.locutus.discord.commands.rankings.table.TimeNumericTable;
import link.locutus.discord.db.GuildDB;
import link.locutus.discord.db.entities.DBAlliance;
import link.locutus.discord.db.entities.DBCity;
import link.locutus.discord.db.entities.DBNation;
import link.locutus.discord.db.entities.metric.AllianceMetric;
import link.locutus.discord.db.entities.metric.AllianceMetricMode;
import link.locutus.discord.db.entities.metric.CountNationMetric;
import link.locutus.discord.db.entities.metric.IAllianceMetric;
import link.locutus.discord.pnw.NationList;
import link.locutus.discord.pnw.NationOrAlliance;
import link.locutus.discord.user.Roles;
import link.locutus.discord.util.PnwUtil;
import link.locutus.discord.util.TimeUtil;
import org.jooq.meta.derby.sys.Sys;

Expand Down Expand Up @@ -60,14 +63,19 @@ private Predicate<Long> dayFilter(Long start, Long end) {
}

@Command()
public void metricByGroup(@Me IMessageIO io, Set<NationAttributeDouble> metrics, Set<NationOrAlliance> coalition, @Default("getCities") NationAttributeDouble groupBy,
public void metricByGroup(@Me IMessageIO io, @Me GuildDB db,
Set<NationAttributeDouble> metrics,
NationList nations,
@Default("getCities") NationAttributeDouble groupBy,
@Switch("i") boolean includeInactives,
@Switch("a") boolean includeApplicants,
@Switch("t") boolean total,
@Switch("s") @Timestamp Long snapshotDate,
@Switch("j") boolean attachJson,
@Switch("c") boolean attachCsv) throws IOException {
TimeNumericTable table = TimeNumericTable.metricByGroup(metrics, coalition, groupBy, includeInactives, includeApplicants, total);
table.write(io, TimeFormat.SI_UNIT, TableNumberFormat.SI_UNIT, false, false);
Set<DBNation> nationsSet = PnwUtil.getNationsSnapshot(nations.getNations(), nations.getFilter(), snapshotDate, db.getGuild(), false);
TimeNumericTable table = TimeNumericTable.metricByGroup(metrics, nationsSet, groupBy, includeInactives, includeApplicants, total);
table.write(io, TimeFormat.SI_UNIT, TableNumberFormat.SI_UNIT, attachJson, attachCsv);
}

@Command
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -74,11 +74,7 @@ public TimeNumericTable<T> setBar(boolean bar) {
return this;
}

public static TimeNumericTable metricByGroup(Set<NationAttributeDouble> metrics, Set<NationOrAlliance> coalition, @Default("getCities") NationAttributeDouble groupBy, @Switch("i") boolean includeInactives, @Switch("a") boolean includeApplicants, @Switch("t") boolean total) {
Set<DBNation> coalitionNations = new HashSet<>();
for (NationOrAlliance natOrAA : coalition) {
coalitionNations.addAll(natOrAA.getDBNations());
}
public static TimeNumericTable metricByGroup(Set<NationAttributeDouble> metrics, Set<DBNation> coalitionNations, @Default("getCities") NationAttributeDouble groupBy, @Switch("i") boolean includeInactives, @Switch("a") boolean includeApplicants, @Switch("t") boolean total) {
coalitionNations.removeIf(f -> f.getVm_turns() != 0 || (!includeApplicants && f.getPosition() <= 1) || (!includeInactives && f.getActive_m() > 4880));
NationAttributeDouble[] metricsArr = metrics.toArray(new NationAttributeDouble[0]);
String[] labels = metrics.stream().map(NationAttribute::getName).toArray(String[]::new);
Expand Down

0 comments on commit 3528644

Please sign in to comment.