@aoi-js/aka 0.0.2 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,11 @@
1
+ import { Logger } from 'pino';
2
+ import { AkaClient } from '../client.js';
3
+ import { AkaDb } from '../db.js';
4
+ import { RanklistCalculator } from './base.js';
5
+ import { BasicCalculator } from './basic.js';
6
+ import { PlusCalculator } from './plus.js';
7
+ export declare const calculators: {
8
+ basic: typeof BasicCalculator;
9
+ plus: typeof PlusCalculator;
10
+ };
11
+ export declare function getCalculator(db: AkaDb, client: AkaClient, logger: Logger, dict: Record<string, string>): RanklistCalculator | null;
package/lib/calc/index.js CHANGED
@@ -1,6 +1,8 @@
1
1
  import { BasicCalculator } from './basic.js';
2
+ import { PlusCalculator } from './plus.js';
2
3
  export const calculators = {
3
- basic: BasicCalculator
4
+ basic: BasicCalculator,
5
+ plus: PlusCalculator
4
6
  };
5
7
  export function getCalculator(db, client, logger, dict) {
6
8
  const type = dict.type ?? 'basic';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/calc/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAE5C,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,KAAK,EAAE,eAAe;CACvB,CAAA;AAED,MAAM,UAAU,aAAa,CAC3B,EAAS,EACT,MAAiB,EACjB,MAAc,EACd,IAA4B;IAE5B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,OAAO,CAAA;IACjC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC;QAAE,OAAO,IAAI,CAAA;IAClD,OAAO,IAAI,WAAW,CAAC,IAAgC,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;AAC9E,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/calc/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAE1C,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,KAAK,EAAE,eAAe;IACtB,IAAI,EAAE,cAAc;CACrB,CAAA;AAED,MAAM,UAAU,aAAa,CAC3B,EAAS,EACT,MAAiB,EACjB,MAAc,EACd,IAA4B;IAE5B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,OAAO,CAAA;IACjC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC;QAAE,OAAO,IAAI,CAAA;IAClD,OAAO,IAAI,WAAW,CAAC,IAAgC,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;AAC9E,CAAC"}
@@ -0,0 +1,28 @@
1
+ import { IRanklist } from '../client.js';
2
+ import { IRanklistSyncOptions, RanklistCalculator } from './base.js';
3
+ declare const reduceMethods: readonly ["override", "max", "min"];
4
+ type ReduceMethod = (typeof reduceMethods)[number];
5
+ declare const totalReduceMethods: readonly ["sum", "max", "min"];
6
+ type TotalReduceMethod = (typeof totalReduceMethods)[number];
7
+ export declare class PlusCalculator extends RanklistCalculator {
8
+ topstars: number;
9
+ warnings: string;
10
+ participantTagWhitelist?: string[];
11
+ participantTagBlacklist?: string[];
12
+ problemTagWhitelist?: string[];
13
+ problemTagBlacklist?: string[];
14
+ problemSlugFilter?: RegExp;
15
+ problemTitleFilter?: RegExp;
16
+ scoreReduceMethod: ReduceMethod;
17
+ totalReduceMethod: TotalReduceMethod;
18
+ private _reduceScore;
19
+ private _reduceTotal;
20
+ loadConfig(dict: Record<string, string>): Promise<IRanklistSyncOptions>;
21
+ private _loadTotalReduceConfig;
22
+ private _loadScoreReduceConfig;
23
+ private _loadFilterConfig;
24
+ private _getProblems;
25
+ private _getParticipants;
26
+ calculate(contestId: string, taskId: string): Promise<IRanklist>;
27
+ }
28
+ export {};
@@ -0,0 +1,228 @@
1
+ import { RanklistCalculator } from './base.js';
2
+ const reduceMethods = ['override', 'max', 'min'];
3
+ const totalReduceMethods = ['sum', 'max', 'min'];
4
+ export class PlusCalculator extends RanklistCalculator {
5
+ topstars = 0;
6
+ warnings = '';
7
+ participantTagWhitelist;
8
+ participantTagBlacklist;
9
+ problemTagWhitelist;
10
+ problemTagBlacklist;
11
+ problemSlugFilter;
12
+ problemTitleFilter;
13
+ scoreReduceMethod = 'override';
14
+ totalReduceMethod = 'sum';
15
+ _reduceScore = (a, b) => b;
16
+ _reduceTotal = (a, b) => a + b;
17
+ async loadConfig(dict) {
18
+ const topstars = +dict.topstars;
19
+ if (!Number.isInteger(topstars) || topstars < 0 || topstars > 20) {
20
+ this.warnings += 'topstars must be an integer between 0 and 20\n';
21
+ }
22
+ else {
23
+ this.topstars = topstars;
24
+ }
25
+ this._loadFilterConfig(dict);
26
+ this._loadScoreReduceConfig(dict);
27
+ this._loadTotalReduceConfig(dict);
28
+ return {
29
+ shouldSyncParticipants: true,
30
+ shouldSyncSolutions: !!this.topstars || this.scoreReduceMethod !== 'override'
31
+ };
32
+ }
33
+ _loadTotalReduceConfig(dict) {
34
+ if (dict.totalReduceMethod) {
35
+ if (totalReduceMethods.includes(dict.totalReduceMethod)) {
36
+ this.totalReduceMethod = dict.totalReduceMethod;
37
+ switch (this.totalReduceMethod) {
38
+ case 'sum':
39
+ this._reduceTotal = (a, b) => a + b;
40
+ break;
41
+ case 'max':
42
+ this._reduceTotal = Math.max;
43
+ break;
44
+ case 'min':
45
+ this._reduceTotal = Math.min;
46
+ break;
47
+ }
48
+ }
49
+ else {
50
+ this.warnings += `totalReduceMethod must be one of ${totalReduceMethods.join(', ')}\n`;
51
+ }
52
+ }
53
+ }
54
+ _loadScoreReduceConfig(dict) {
55
+ if (dict.scoreReduceMethod) {
56
+ if (reduceMethods.includes(dict.scoreReduceMethod)) {
57
+ this.scoreReduceMethod = dict.scoreReduceMethod;
58
+ switch (this.scoreReduceMethod) {
59
+ case 'override':
60
+ this._reduceScore = (a, b) => b;
61
+ break;
62
+ case 'max':
63
+ this._reduceScore = Math.max;
64
+ break;
65
+ case 'min':
66
+ this._reduceScore = Math.min;
67
+ break;
68
+ }
69
+ }
70
+ else {
71
+ this.warnings += `scoreReduceMethod must be one of ${reduceMethods.join(', ')}\n`;
72
+ }
73
+ }
74
+ }
75
+ _loadFilterConfig(dict) {
76
+ if (dict.participantTagWhitelist) {
77
+ this.participantTagWhitelist = dict.participantTagWhitelist.split(',');
78
+ }
79
+ if (dict.participantTagBlacklist) {
80
+ this.participantTagBlacklist = dict.participantTagBlacklist.split(',');
81
+ }
82
+ if (dict.problemTagWhitelist) {
83
+ this.problemTagWhitelist = dict.problemTagWhitelist.split(',');
84
+ }
85
+ if (dict.problemTagBlacklist) {
86
+ this.problemTagBlacklist = dict.problemTagBlacklist.split(',');
87
+ }
88
+ if (dict.problemSlugFilter) {
89
+ this.problemSlugFilter = new RegExp(dict.problemSlugFilter);
90
+ }
91
+ if (dict.problemTitleFilter) {
92
+ this.problemTitleFilter = new RegExp(dict.problemTitleFilter);
93
+ }
94
+ }
95
+ async _getProblems(contestId, taskId) {
96
+ let problems = await this.client.problems(contestId, taskId);
97
+ const { problemTagWhitelist, problemTagBlacklist, problemSlugFilter, problemTitleFilter } = this;
98
+ if (problemTagWhitelist) {
99
+ problems = problems.filter((p) => p.tags.some((t) => problemTagWhitelist.includes(t)));
100
+ }
101
+ if (problemTagBlacklist) {
102
+ problems = problems.filter((p) => !p.tags.some((t) => problemTagBlacklist.includes(t)));
103
+ }
104
+ if (problemSlugFilter) {
105
+ problems = problems.filter((p) => problemSlugFilter.test(p.settings.slug));
106
+ }
107
+ if (problemTitleFilter) {
108
+ problems = problems.filter((p) => problemTitleFilter.test(p.title));
109
+ }
110
+ return problems;
111
+ }
112
+ async _getParticipants(contestId) {
113
+ let participants = await this.db.participants.find({ contestId }).toArray();
114
+ const { participantTagWhitelist, participantTagBlacklist } = this;
115
+ if (participantTagWhitelist) {
116
+ participants = participants.filter((p) => p.tags && p.tags.some((t) => participantTagWhitelist.includes(t)));
117
+ }
118
+ if (participantTagBlacklist) {
119
+ participants = participants.filter((p) => !p.tags || !p.tags.some((t) => participantTagBlacklist.includes(t)));
120
+ }
121
+ return participants;
122
+ }
123
+ async calculate(contestId, taskId) {
124
+ const problems = await this._getProblems(contestId, taskId);
125
+ const problemIdList = problems
126
+ .sort((a, b) => a.settings.slug.localeCompare(b.settings.slug))
127
+ .map((p) => p._id);
128
+ const participants = await this._getParticipants(contestId);
129
+ const participantsWithScores = participants.map(({ userId, tags, results }) => ({
130
+ userId,
131
+ tags,
132
+ scores: problemIdList.map((pid) => results[pid]?.lastSolution.score ?? 0)
133
+ }));
134
+ if (this.scoreReduceMethod !== 'override') {
135
+ // We need to manually calculate the scores
136
+ const scores = new Map();
137
+ const cursor = this.db.solutions.find({ contestId, problemId: { $in: problemIdList } });
138
+ for await (const solution of cursor) {
139
+ const { userId, problemId, score } = solution;
140
+ if (!scores.has(userId)) {
141
+ scores.set(userId, Object.create(null));
142
+ }
143
+ const userScores = scores.get(userId);
144
+ if (Object.hasOwn(userScores, problemId)) {
145
+ userScores[problemId] = this._reduceScore(userScores[problemId], score);
146
+ }
147
+ else {
148
+ userScores[problemId] = score;
149
+ }
150
+ }
151
+ for (const participant of participantsWithScores) {
152
+ const userScores = scores.get(participant.userId) ?? Object.create(null);
153
+ participant.scores = problemIdList.map((pid) => userScores[pid] ?? 0);
154
+ }
155
+ }
156
+ const participantRecords = participantsWithScores
157
+ .map((record) => ({
158
+ ...record,
159
+ totalScore: record.scores.reduce((a, b) => this._reduceTotal(a, b), 0)
160
+ }))
161
+ .sort((a, b) => b.totalScore - a.totalScore)
162
+ .map((record, index) => ({
163
+ ...record,
164
+ rank: index + 1
165
+ }));
166
+ participantRecords.forEach((record, index, arr) => {
167
+ if (index > 0 && record.totalScore === arr[index - 1].totalScore) {
168
+ record.rank = arr[index - 1].rank;
169
+ }
170
+ });
171
+ let topstar;
172
+ if (this.topstars) {
173
+ const topstarUserIdList = participantRecords
174
+ .slice(0, this.topstars)
175
+ .filter((record) => record.totalScore > 0)
176
+ .map((p) => p.userId);
177
+ topstar = {
178
+ list: await Promise.all(topstarUserIdList.map(async (userId) => {
179
+ const solutions = await this.db.solutions
180
+ .find({ contestId, userId, problemId: { $in: problemIdList } })
181
+ .sort({ completedAt: 1 })
182
+ .toArray();
183
+ const currentScores = Object.create(null);
184
+ const mutations = [];
185
+ for (const { problemId, score, submittedAt } of solutions) {
186
+ if (Object.hasOwn(currentScores, problemId)) {
187
+ currentScores[problemId] = this._reduceScore(currentScores[problemId], score);
188
+ }
189
+ else {
190
+ currentScores[problemId] = score;
191
+ }
192
+ mutations.push({
193
+ score: Object.values(currentScores).reduce((a, b) => this._reduceTotal(a, b), 0),
194
+ ts: submittedAt
195
+ });
196
+ }
197
+ return { userId, mutations };
198
+ }))
199
+ };
200
+ }
201
+ return {
202
+ topstar,
203
+ participant: {
204
+ list: participantRecords.map(({ userId, rank, tags, scores, totalScore }) => ({
205
+ userId,
206
+ rank,
207
+ tags,
208
+ columns: [
209
+ ...scores.map((score) => ({ content: `${score}` })),
210
+ { content: `${totalScore}` }
211
+ ]
212
+ })),
213
+ columns: [
214
+ ...problems.map(({ title, settings: { slug } }) => ({
215
+ name: slug,
216
+ description: title
217
+ })),
218
+ { name: 'Total', description: 'Total Score' }
219
+ ]
220
+ },
221
+ metadata: {
222
+ generatedAt: Date.now(),
223
+ description: 'Basic ranklist generated'
224
+ }
225
+ };
226
+ }
227
+ }
228
+ //# sourceMappingURL=plus.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plus.js","sourceRoot":"","sources":["../../src/calc/plus.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aoi-js/aka",
3
- "version": "0.0.2",
3
+ "version": "0.0.3",
4
4
  "packageManager": "yarn@4.0.2",
5
5
  "publishConfig": {
6
6
  "access": "public"