lscontests 1.8.12 → 1.9.1
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.
- package/README.md +135 -75
- package/dist/cli.js +2 -2
- package/dist/cli.js.map +1 -1
- package/dist/index.d.ts +6 -2
- package/dist/index.js +57 -33
- package/dist/index.js.map +1 -1
- package/dist/lib/oj/atcoder.js +2 -2
- package/dist/lib/oj/atcoder.js.map +1 -1
- package/dist/lib/oj/codeforces.js +1 -1
- package/dist/lib/oj/codeforces.js.map +1 -1
- package/dist/lib/oj/luogu.js +1 -1
- package/dist/lib/oj/luogu.js.map +1 -1
- package/dist/locale/en.json +4 -1
- package/dist/locale/index.d.ts +4 -1
- package/dist/locale/index.js.map +1 -1
- package/dist/locale/zh-CN.json +4 -1
- package/dist/locale/zh-NE.json +11 -0
- package/dist/locale/zh-TW.json +4 -1
- package/package.json +1 -1
package/README.md
CHANGED
@@ -40,8 +40,8 @@ Options:
|
|
40
40
|
-l, --list list all supported OJ and it's abbreviation
|
41
41
|
-o, --oj <ojs...> OJs to display (choices: "at", "cf", "lg", "nc")
|
42
42
|
-r, --raw print raw contest list
|
43
|
-
-L, --language <lang> set output language (choices: "en", "zh-CN", "zh-
|
44
|
-
default: "zh-CN")
|
43
|
+
-L, --language <lang> set output language (choices: "en", "zh-CN", "zh-NE",
|
44
|
+
"zh-TW", default: "zh-CN")
|
45
45
|
--no-sort do not sort by contests start time, but by OJ order
|
46
46
|
-h, --help display help for command
|
47
47
|
```
|
@@ -50,13 +50,13 @@ Options:
|
|
50
50
|
It performs as follows:
|
51
51
|
|
52
52
|
<!-- block_cli begin -->
|
53
|
-
(*The following content was automatically generated in Fri, 13 May 2022
|
53
|
+
(*The following content was automatically generated in Fri, 13 May 2022 15:42:43 GMT*)
|
54
54
|
|
55
55
|
<details>
|
56
56
|
<summary> <code>> lsct </code> </summary>
|
57
57
|
|
58
58
|
```text
|
59
|
-
|
59
|
+
在 AtCoder,Codeforces,Luogu,NowCoder 上有 3 场正在进行的比赛
|
60
60
|
|
61
61
|
比赛平台: NowCoder
|
62
62
|
比赛名称:牛客竞赛博弈专题班 Sprague-Grundy 函数(SG 函数、图游戏、Nim 和)
|
@@ -72,12 +72,14 @@ https://ac.nowcoder.com/acm/contest/34655
|
|
72
72
|
结束时间: 5/30/2022, 08:00:00
|
73
73
|
https://ac.nowcoder.com/acm/contest/34649
|
74
74
|
|
75
|
-
比赛平台:
|
76
|
-
|
75
|
+
比赛平台: Codeforces
|
76
|
+
比赛名称: Educational Codeforces Round 128 (Rated for Div. 2)
|
77
77
|
赛制: ICPC
|
78
|
-
开始时间: 5/13/2022,
|
79
|
-
结束时间: 5/13/2022,
|
80
|
-
https://
|
78
|
+
开始时间: 5/13/2022, 14:35:00
|
79
|
+
结束时间: 5/13/2022, 16:35:00
|
80
|
+
https://codeforces.com/contests/1680
|
81
|
+
|
82
|
+
接下来的 3 天内在 AtCoder,Codeforces,Luogu,NowCoder 上有 8 场比赛
|
81
83
|
|
82
84
|
比赛平台: NowCoder
|
83
85
|
比赛名称:第二届天元编程邀请赛(提高组)
|
@@ -107,11 +109,18 @@ https://ac.nowcoder.com/acm/contest/33540
|
|
107
109
|
结束时间: 5/14/2022, 10:00:00
|
108
110
|
https://www.luogu.com.cn/contest/68326
|
109
111
|
|
112
|
+
比赛平台: Codeforces
|
113
|
+
比赛名称: Codeforces Round #791 (Div. 2)
|
114
|
+
赛制: Codeforces
|
115
|
+
开始时间: 5/14/2022, 09:35:00
|
116
|
+
结束时间: 5/14/2022, 11:35:00
|
117
|
+
https://codeforces.com/contests/1679
|
118
|
+
|
110
119
|
比赛平台: AtCoder
|
111
120
|
比赛名称: Ⓐ Panasonic Programming Contest 2022 (AtCoder Beginner Contest 251)
|
112
121
|
赛制: AtCoder
|
113
122
|
开始时间: 5/14/2022, 12:00:00
|
114
|
-
结束时间: 5/14/2022,
|
123
|
+
结束时间: 5/14/2022, 13:40:00
|
115
124
|
https://atcoder.jp/contests/abc251
|
116
125
|
|
117
126
|
比赛平台: Luogu
|
@@ -125,7 +134,7 @@ https://www.luogu.com.cn/contest/67377
|
|
125
134
|
比赛名称: Ⓐ AtCoder Regular Contest 140
|
126
135
|
赛制: AtCoder
|
127
136
|
开始时间: 5/15/2022, 12:00:00
|
128
|
-
结束时间: 5/15/2022,
|
137
|
+
结束时间: 5/15/2022, 14:00:00
|
129
138
|
https://atcoder.jp/contests/arc140
|
130
139
|
```
|
131
140
|
|
@@ -135,20 +144,36 @@ https://atcoder.jp/contests/arc140
|
|
135
144
|
<summary> <code>> lsct -o at cf -d 7</code> </summary>
|
136
145
|
|
137
146
|
```text
|
138
|
-
|
147
|
+
在 AtCoder,Codeforces 上有 1 场正在进行的比赛
|
148
|
+
|
149
|
+
比赛平台: Codeforces
|
150
|
+
比赛名称: Educational Codeforces Round 128 (Rated for Div. 2)
|
151
|
+
赛制: ICPC
|
152
|
+
开始时间: 5/13/2022, 14:35:00
|
153
|
+
结束时间: 5/13/2022, 16:35:00
|
154
|
+
https://codeforces.com/contests/1680
|
155
|
+
|
156
|
+
接下来的 7 天内在 AtCoder,Codeforces 上有 3 场比赛
|
157
|
+
|
158
|
+
比赛平台: Codeforces
|
159
|
+
比赛名称: Codeforces Round #791 (Div. 2)
|
160
|
+
赛制: Codeforces
|
161
|
+
开始时间: 5/14/2022, 09:35:00
|
162
|
+
结束时间: 5/14/2022, 11:35:00
|
163
|
+
https://codeforces.com/contests/1679
|
139
164
|
|
140
165
|
比赛平台: AtCoder
|
141
166
|
比赛名称: Ⓐ Panasonic Programming Contest 2022 (AtCoder Beginner Contest 251)
|
142
167
|
赛制: AtCoder
|
143
168
|
开始时间: 5/14/2022, 12:00:00
|
144
|
-
结束时间: 5/14/2022,
|
169
|
+
结束时间: 5/14/2022, 13:40:00
|
145
170
|
https://atcoder.jp/contests/abc251
|
146
171
|
|
147
172
|
比赛平台: AtCoder
|
148
173
|
比赛名称: Ⓐ AtCoder Regular Contest 140
|
149
174
|
赛制: AtCoder
|
150
175
|
开始时间: 5/15/2022, 12:00:00
|
151
|
-
结束时间: 5/15/2022,
|
176
|
+
结束时间: 5/15/2022, 14:00:00
|
152
177
|
https://atcoder.jp/contests/arc140
|
153
178
|
```
|
154
179
|
|
@@ -158,7 +183,7 @@ https://atcoder.jp/contests/arc140
|
|
158
183
|
<summary> <code>> lsct -o lg nc -d 7 -L en</code> </summary>
|
159
184
|
|
160
185
|
```text
|
161
|
-
|
186
|
+
There are 2 contests is running on Luogu,NowCoder
|
162
187
|
|
163
188
|
OJ: NowCoder
|
164
189
|
Contest name: 牛客竞赛博弈专题班 Sprague-Grundy 函数(SG 函数、图游戏、Nim 和)
|
@@ -174,12 +199,7 @@ Start time: 5/13/2022, 06:00:00
|
|
174
199
|
End time: 5/30/2022, 08:00:00
|
175
200
|
https://ac.nowcoder.com/acm/contest/34649
|
176
201
|
|
177
|
-
|
178
|
-
Contest name: 牛客挑战赛 60
|
179
|
-
Rule: ICPC
|
180
|
-
Start time: 5/13/2022, 11:00:00
|
181
|
-
End time: 5/13/2022, 14:00:00
|
182
|
-
https://ac.nowcoder.com/acm/contest/11200
|
202
|
+
There are 5 contests on Luogu,NowCoder in the next 7 days
|
183
203
|
|
184
204
|
OJ: NowCoder
|
185
205
|
Contest name: 第二届天元编程邀请赛(提高组)
|
@@ -223,24 +243,44 @@ https://www.luogu.com.cn/contest/67377
|
|
223
243
|
<summary> <code>> lsct -o at cf -d 7 -r --no-sort</code> </summary>
|
224
244
|
|
225
245
|
```json
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
|
241
|
-
|
242
|
-
|
243
|
-
|
246
|
+
{
|
247
|
+
"running": [
|
248
|
+
{
|
249
|
+
"ojName": "Codeforces",
|
250
|
+
"name": "Educational Codeforces Round 128 (Rated for Div. 2)",
|
251
|
+
"rule": "ICPC",
|
252
|
+
"startTime": "2022-05-13T14:35:00.000Z",
|
253
|
+
"endTime": "2022-05-13T16:35:00.000Z",
|
254
|
+
"url": "https://codeforces.com/contests/1680"
|
255
|
+
}
|
256
|
+
],
|
257
|
+
"upcoming": [
|
258
|
+
{
|
259
|
+
"ojName": "AtCoder",
|
260
|
+
"name": "Ⓐ Panasonic Programming Contest 2022(AtCoder Beginner Contest 251)",
|
261
|
+
"rule": "AtCoder",
|
262
|
+
"startTime": "2022-05-14T12:00:00.000Z",
|
263
|
+
"endTime": "2022-05-14T13:40:00.000Z",
|
264
|
+
"url": "https://atcoder.jp/contests/abc251"
|
265
|
+
},
|
266
|
+
{
|
267
|
+
"ojName": "AtCoder",
|
268
|
+
"name": "Ⓐ AtCoder Regular Contest 140",
|
269
|
+
"rule": "AtCoder",
|
270
|
+
"startTime": "2022-05-15T12:00:00.000Z",
|
271
|
+
"endTime": "2022-05-15T14:00:00.000Z",
|
272
|
+
"url": "https://atcoder.jp/contests/arc140"
|
273
|
+
},
|
274
|
+
{
|
275
|
+
"ojName": "Codeforces",
|
276
|
+
"name": "Codeforces Round #791 (Div. 2)",
|
277
|
+
"rule": "Codeforces",
|
278
|
+
"startTime": "2022-05-14T09:35:00.000Z",
|
279
|
+
"endTime": "2022-05-14T11:35:00.000Z",
|
280
|
+
"url": "https://codeforces.com/contests/1679"
|
281
|
+
}
|
282
|
+
]
|
283
|
+
}
|
244
284
|
```
|
245
285
|
|
246
286
|
</details>
|
@@ -255,7 +295,7 @@ If you want to get a list of contest information in your project by calling *lsc
|
|
255
295
|
```typescript
|
256
296
|
import { getContestInfo } from "lscontests";
|
257
297
|
|
258
|
-
|
298
|
+
getContestsInfoText({ abbrList: ["cf", "lg"] }).then(console.log);
|
259
299
|
```
|
260
300
|
|
261
301
|
This code gives the same result as `lsct -o cf lg`.
|
@@ -265,7 +305,7 @@ This code gives the same result as `lsct -o cf lg`.
|
|
265
305
|
```typescript
|
266
306
|
import { getContestList } from "lscontests";
|
267
307
|
|
268
|
-
|
308
|
+
getContests({ sort: false }).then(console.log);
|
269
309
|
```
|
270
310
|
|
271
311
|
This code gives the same result as `lsct -r --no-sort`.
|
@@ -273,23 +313,23 @@ This code gives the same result as `lsct -r --no-sort`.
|
|
273
313
|
#### Add OJ support
|
274
314
|
|
275
315
|
```typescript
|
276
|
-
import { addOJ,
|
316
|
+
import { addOJ, getContestsInfoText, getContests } from "lscontests";
|
277
317
|
|
278
318
|
addOJ("ts", {
|
279
319
|
name: "testOJ", get: async () => [{
|
280
320
|
ojName: "testOJ",
|
281
321
|
name: "testContest",
|
282
322
|
rule: "ICPC",
|
283
|
-
startTime: new Date(Date.now()
|
284
|
-
endTime: new Date(Date.now() +
|
323
|
+
startTime: new Date(Date.now() - 1),
|
324
|
+
endTime: new Date(Date.now() + 3600000),
|
285
325
|
url: "https://www.test.com"
|
286
326
|
}]
|
287
327
|
});
|
288
328
|
|
289
329
|
async function main() {
|
290
|
-
console.log(await
|
330
|
+
console.log(await getContestsInfoText({ abbrList: ["cf", "ts"], days: 1 }, "en"));
|
291
331
|
console.log();
|
292
|
-
console.log(await
|
332
|
+
console.log(await getContests({ abbrList: ["at", "ts"], days: 7 }));
|
293
333
|
}
|
294
334
|
|
295
335
|
main();
|
@@ -298,41 +338,61 @@ main();
|
|
298
338
|
This code gives the following results:
|
299
339
|
|
300
340
|
```text
|
301
|
-
|
341
|
+
There are 2 contests is running on Codeforces,testOJ
|
342
|
+
|
343
|
+
OJ: Codeforces
|
344
|
+
Contest name: Educational Codeforces Round 128 (Rated for Div. 2)
|
345
|
+
Rule: ICPC
|
346
|
+
Start time: 2022/5/13 22:35:00
|
347
|
+
End time: 2022/5/14 00:35:00
|
348
|
+
https://codeforces.com/contests/1680
|
302
349
|
|
303
350
|
OJ: testOJ
|
304
351
|
Contest name: testContest
|
305
352
|
Rule: ICPC
|
306
|
-
Start time: 2022/5/13
|
307
|
-
End time: 2022/5/14
|
353
|
+
Start time: 2022/5/13 23:23:31
|
354
|
+
End time: 2022/5/14 00:23:31
|
308
355
|
https://www.test.com
|
309
356
|
|
310
|
-
|
311
|
-
|
312
|
-
|
313
|
-
|
314
|
-
|
315
|
-
|
316
|
-
|
317
|
-
|
318
|
-
|
319
|
-
|
320
|
-
|
321
|
-
|
322
|
-
|
323
|
-
|
324
|
-
|
325
|
-
|
326
|
-
|
327
|
-
|
328
|
-
|
329
|
-
|
330
|
-
|
331
|
-
|
332
|
-
|
333
|
-
|
334
|
-
|
335
|
-
|
357
|
+
There are 1 contests on Codeforces,testOJ in the next 1 days
|
358
|
+
|
359
|
+
OJ: Codeforces
|
360
|
+
Contest name: Codeforces Round #791 (Div. 2)
|
361
|
+
Rule: Codeforces
|
362
|
+
Start time: 2022/5/14 17:35:00
|
363
|
+
End time: 2022/5/14 19:35:00
|
364
|
+
https://codeforces.com/contests/1679
|
365
|
+
|
366
|
+
{
|
367
|
+
running: [
|
368
|
+
{
|
369
|
+
ojName: 'testOJ',
|
370
|
+
name: 'testContest',
|
371
|
+
rule: 'ICPC',
|
372
|
+
startTime: 2022-05-13T15:23:37.245Z,
|
373
|
+
endTime: 2022-05-13T16:23:37.246Z,
|
374
|
+
url: 'https://www.test.com'
|
375
|
+
}
|
376
|
+
],
|
377
|
+
upcoming: [
|
378
|
+
{
|
379
|
+
ojName: 'AtCoder',
|
380
|
+
name: 'Ⓐ Panasonic Programming Contest 2022(AtCoder Beginner Contest 251)',
|
381
|
+
rule: 'AtCoder',
|
382
|
+
startTime: 2022-05-14T12:00:00.000Z,
|
383
|
+
endTime: 2022-05-14T13:40:00.000Z,
|
384
|
+
url: 'https://atcoder.jp/contests/abc251'
|
385
|
+
},
|
386
|
+
{
|
387
|
+
ojName: 'AtCoder',
|
388
|
+
name: 'Ⓐ AtCoder Regular Contest 140',
|
389
|
+
rule: 'AtCoder',
|
390
|
+
startTime: 2022-05-15T12:00:00.000Z,
|
391
|
+
endTime: 2022-05-15T14:00:00.000Z,
|
392
|
+
url: 'https://atcoder.jp/contests/arc140'
|
393
|
+
}
|
394
|
+
]
|
395
|
+
}
|
336
396
|
```
|
337
397
|
|
338
398
|
#### Use link CLI
|
package/dist/cli.js
CHANGED
@@ -64,9 +64,9 @@ function cli(arg, name) {
|
|
64
64
|
sort: opts.sort
|
65
65
|
};
|
66
66
|
if (opts.raw)
|
67
|
-
return JSON.stringify(yield (0, _1.
|
67
|
+
return JSON.stringify(yield (0, _1.getContests)(config), null, 2);
|
68
68
|
else
|
69
|
-
return yield (0, _1.
|
69
|
+
return yield (0, _1.getContestsInfoText)(config, opts.language);
|
70
70
|
}
|
71
71
|
});
|
72
72
|
}
|
package/dist/cli.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AACA,kDAA+C;AAC/C,yCAA4C;AAC5C,iCAAiC;AACjC,
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AACA,kDAA+C;AAC/C,yCAA4C;AAC5C,iCAAiC;AACjC,wBAA6D;AAC7D,qCAAoC;AACpC,oDAAuB;AAEvB,SAAS,OAAO;IAEZ,OAAO,IAAI,mBAAO,EAAE;SACf,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAG,CAAC,CAAC,CAAC,CAAC,CAAC;SACzB,OAAO,CAAC,sBAAO,CAAC;SAChB,MAAM,CAAC,mBAAmB,EAAE,2BAA2B,EAAE,GAAG,CAAC;SAC7D,MAAM,CAAC,YAAY,EAAE,6CAA6C,CAAC;SACnE,SAAS,CAAC,IAAI,kBAAM,CAAC,mBAAmB,EAAE,gBAAgB,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,UAAK,CAAC,CAAC,CAAC;SACxF,SAAS,CAAC,IAAI,kBAAM,CAAC,WAAW,EAAE,wBAAwB,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;SAClF,SAAS,CAAC,IAAI,kBAAM,CAAC,uBAAuB,EAAE,qBAAqB,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,iBAAQ,CAAC,CAAC;SACxG,MAAM,CAAC,WAAW,EAAE,qDAAqD,CAAC,CAAC;AACpF,CAAC;AAED,SAAsB,GAAG,CAAC,GAAY,EAAE,IAAa;;QAEjD,MAAM,GAAG,GAAG,OAAO,EAAE,CAAC;QACtB,IAAG,GAAG,KAAK,SAAS;YAAE,GAAG,CAAC,KAAK,EAAE,CAAC;aAElC;YACI,IAAI,GAAG,GAAG,EAAE,CAAC;YACb,IACA;gBACI,IAAG,IAAI;oBAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACxB,GAAG;qBACE,eAAe,CAAC;oBACb,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,GAAG;oBAC1B,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,GAAG;oBAC1B,WAAW,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,GAAG;iBAChC,CAAC;qBACD,YAAY,EAAE;qBACd,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;aAChD;YACD,OAAM,CAAC,EAAE;gBAAE,OAAO,GAAG,CAAC;aAAE;SAC3B;QAED,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;QACxB,IAAG,IAAI,CAAC,IAAI;YAAE,OAAO,iBAAiB,GAAG,IAAI,CAAC,SAAS,CAAC,gBAAC,CAAC,SAAS,CAAC,UAAK,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;aAEtG;YACI,MAAM,MAAM,GAAW;gBACnB,QAAQ,EAAE,gBAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBACzB,IAAI,EAAE,IAAI,CAAC,IAAc;gBACzB,IAAI,EAAE,IAAI,CAAC,IAAI;aAClB,CAAC;YACF,IAAG,IAAI,CAAC,GAAG;gBAAE,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,IAAA,cAAW,EAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;;gBAClE,OAAO,MAAM,IAAA,sBAAmB,EAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;SAChE;IACL,CAAC;CAAA;AAlCD,kBAkCC;AAED,IAAG,OAAO,CAAC,IAAI,KAAK,MAAM;IAAE,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC"}
|
package/dist/index.d.ts
CHANGED
@@ -1,9 +1,13 @@
|
|
1
|
+
import { contest } from "./lib/contest";
|
1
2
|
export declare type config = {
|
2
3
|
abbrList?: string[];
|
3
4
|
days?: number;
|
4
5
|
sort?: boolean;
|
5
6
|
};
|
6
|
-
export declare function
|
7
|
-
|
7
|
+
export declare function getContests(config?: config): Promise<{
|
8
|
+
running: contest[];
|
9
|
+
upcoming: contest[];
|
10
|
+
}>;
|
11
|
+
export declare function getContestsInfoText(config?: config, language?: string): Promise<string>;
|
8
12
|
export { cli } from "./cli";
|
9
13
|
export { addOJ } from "./lib/oj";
|
package/dist/index.js
CHANGED
@@ -12,7 +12,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
12
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
13
13
|
};
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
15
|
-
exports.addOJ = exports.cli = exports.
|
15
|
+
exports.addOJ = exports.cli = exports.getContestsInfoText = exports.getContests = void 0;
|
16
16
|
const oj_1 = require("./lib/oj");
|
17
17
|
const locale_1 = require("./locale");
|
18
18
|
const lodash_1 = __importDefault(require("lodash"));
|
@@ -28,51 +28,75 @@ function resolveConfig(config) {
|
|
28
28
|
cfg.abbrList = defaultConfig.abbrList;
|
29
29
|
return cfg;
|
30
30
|
}
|
31
|
-
function
|
31
|
+
function getContests(config) {
|
32
32
|
return __awaiter(this, void 0, void 0, function* () {
|
33
33
|
const cfg = resolveConfig(config);
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
34
|
+
function ls(fn) {
|
35
|
+
return __awaiter(this, void 0, void 0, function* () {
|
36
|
+
return (yield Promise.all(cfg.abbrList.map((abbr) => __awaiter(this, void 0, void 0, function* () {
|
37
|
+
try {
|
38
|
+
return (yield oj_1.alloj[abbr].get()).filter(fn);
|
39
|
+
}
|
40
|
+
catch (e) {
|
41
|
+
console.error(`Failed to get match information for ${oj_1.alloj[abbr].name}, details:`);
|
42
|
+
console.error(e);
|
43
|
+
return [];
|
44
|
+
}
|
45
|
+
})))).reduce((ls1, ls2) => ls1.concat(ls2));
|
46
|
+
});
|
47
|
+
}
|
48
|
+
const ret = {
|
49
|
+
running: yield ls(ct => ct.startTime <= new Date() && ct.endTime > new Date()),
|
50
|
+
upcoming: yield ls(ct => ct.startTime > new Date() && ct.startTime <= new Date(Date.now() + cfg.days * 86400000))
|
51
|
+
};
|
45
52
|
if (cfg.sort)
|
46
|
-
|
47
|
-
return
|
53
|
+
Object.values(ret).forEach(ct => ct.sort((a, b) => a.startTime.getTime() - b.startTime.getTime()));
|
54
|
+
return ret;
|
48
55
|
});
|
49
56
|
}
|
50
|
-
exports.
|
51
|
-
function
|
57
|
+
exports.getContests = getContests;
|
58
|
+
function getContestsInfoText(config, language = "zh-CN") {
|
52
59
|
return __awaiter(this, void 0, void 0, function* () {
|
53
60
|
const cfg = resolveConfig(config);
|
54
61
|
const lang = yield (0, locale_1.getLangDict)(language);
|
55
|
-
const
|
62
|
+
const { running, upcoming } = yield getContests(cfg);
|
56
63
|
const info = [];
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
64
|
+
const oj = cfg.abbrList.map(abbr => oj_1.alloj[abbr].name).join(",");
|
65
|
+
function msg(contests) {
|
66
|
+
return contests.map(contest => {
|
67
|
+
const ls = [];
|
68
|
+
ls.push(`${lang.ojName}: ${contest.ojName}`);
|
69
|
+
ls.push(`${lang.name}: ${contest.name}`);
|
70
|
+
ls.push(`${lang.rule}: ${contest.rule}`);
|
71
|
+
ls.push(`${lang.startTime}: ${contest.startTime.toLocaleString(undefined, { hourCycle: "h23" })}`);
|
72
|
+
ls.push(`${lang.endTime}: ${contest.endTime.toLocaleString(undefined, { hourCycle: "h23" })}`);
|
73
|
+
ls.push(contest.url);
|
74
|
+
return ls.join("\n");
|
75
|
+
});
|
76
|
+
}
|
77
|
+
if (running.length) {
|
78
|
+
info.push(lodash_1.default.template(lang.runnning)({
|
79
|
+
contestCount: running.length,
|
80
|
+
oj
|
81
|
+
}));
|
82
|
+
info.push(...msg(running));
|
83
|
+
}
|
84
|
+
else
|
85
|
+
info.push(lodash_1.default.template(lang.norunning)({ oj }));
|
86
|
+
if (upcoming.length) {
|
87
|
+
info.push(lodash_1.default.template(lang.upcoming)({
|
88
|
+
contestCount: upcoming.length,
|
89
|
+
days: cfg.days,
|
90
|
+
oj
|
91
|
+
}));
|
92
|
+
info.push(...msg(upcoming));
|
71
93
|
}
|
94
|
+
else
|
95
|
+
info.push(lodash_1.default.template(lang.noupcoming)({ days: cfg.days, oj }));
|
72
96
|
return pangu_1.default.spacing(info.join("\n\n"));
|
73
97
|
});
|
74
98
|
}
|
75
|
-
exports.
|
99
|
+
exports.getContestsInfoText = getContestsInfoText;
|
76
100
|
var cli_1 = require("./cli");
|
77
101
|
Object.defineProperty(exports, "cli", { enumerable: true, get: function () { return cli_1.cli; } });
|
78
102
|
var oj_2 = require("./lib/oj");
|
package/dist/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,iCAAiC;AACjC,qCAAuC;
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,iCAAiC;AACjC,qCAAuC;AAEvC,oDAAuB;AACvB,kDAA0B;AAQ1B,MAAM,aAAa,GAAG;IAClB,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,UAAK,CAAC;IAC5B,IAAI,EAAE,CAAC;IACP,IAAI,EAAE,IAAI;CACb,CAAC;AAEF,SAAS,aAAa,CAAC,MAAe;IAElC,MAAM,GAAG,mCAAQ,aAAa,GAAK,MAAM,CAAE,CAAC;IAC5C,IAAG,GAAG,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC;QAAE,GAAG,CAAC,QAAQ,GAAG,aAAa,CAAC,QAAQ,CAAC;IACnE,OAAO,GAAG,CAAC;AACf,CAAC;AAED,SAAsB,WAAW,CAAC,MAAe;;QAE7C,MAAM,GAAG,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;QAClC,SAAe,EAAE,CAAC,EAA2B;;gBAEzC,OAAO,CAAC,MAAM,OAAO,CAAC,GAAG,CACrB,GAAG,CAAC,QAAQ,CAAC,GAAG,CACZ,CAAM,IAAI,EAAC,EAAE;oBAET,IAAI;wBAAE,OAAO,CAAC,MAAM,UAAK,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;qBAAE;oBACpD,OAAM,CAAC,EACP;wBACI,OAAO,CAAC,KAAK,CAAC,uCAAuC,UAAK,CAAC,IAAI,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC;wBACnF,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;wBACjB,OAAO,EAAE,CAAC;qBACb;gBACL,CAAC,CAAA,CACJ,CACJ,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YAC7C,CAAC;SAAA;QACD,MAAM,GAAG,GAAG;YACR,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,CAAC,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC;YAC9E,QAAQ,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,CAAC,SAAS,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,IAAI,GAAG,QAAQ,CAAC,CAAC;SACpH,CAAC;QACF,IAAG,GAAG,CAAC,IAAI;YAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAChH,OAAO,GAAG,CAAC;IACf,CAAC;CAAA;AA1BD,kCA0BC;AAED,SAAsB,mBAAmB,CAAC,MAAe,EAAE,QAAQ,GAAG,OAAO;;QAEzE,MAAM,GAAG,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;QAClC,MAAM,IAAI,GAAG,MAAM,IAAA,oBAAW,EAAC,QAAQ,CAAC,CAAC;QACzC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,MAAM,WAAW,CAAC,GAAG,CAAC,CAAC;QACrD,MAAM,IAAI,GAAa,EAAE,CAAC;QAC1B,MAAM,EAAE,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,UAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAEhE,SAAS,GAAG,CAAC,QAAmB;YAE5B,OAAO,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;gBAE1B,MAAM,EAAE,GAAa,EAAE,CAAC;gBACxB,EAAE,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;gBAC7C,EAAE,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;gBACzC,EAAE,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;gBACzC,EAAE,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,KAAK,OAAO,CAAC,SAAS,CAAC,cAAc,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;gBACnG,EAAE,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;gBAC/F,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBACrB,OAAO,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACzB,CAAC,CAAC,CAAC;QACP,CAAC;QAED,IAAG,OAAO,CAAC,MAAM,EACjB;YACI,IAAI,CAAC,IAAI,CAAC,gBAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAChC,YAAY,EAAE,OAAO,CAAC,MAAM;gBAC5B,EAAE;aACL,CAAC,CAAC,CAAC;YACJ,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;SAC9B;;YACI,IAAI,CAAC,IAAI,CAAC,gBAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QACnD,IAAG,QAAQ,CAAC,MAAM,EAClB;YACI,IAAI,CAAC,IAAI,CAAC,gBAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAChC,YAAY,EAAE,QAAQ,CAAC,MAAM;gBAC7B,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,EAAE;aACL,CAAC,CAAC,CAAC;YACJ,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;SAC/B;;YACI,IAAI,CAAC,IAAI,CAAC,gBAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QAEpE,OAAO,eAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5C,CAAC;CAAA;AA5CD,kDA4CC;AAED,6BAA4B;AAAnB,0FAAA,GAAG,OAAA;AACZ,+BAAiC;AAAxB,2FAAA,KAAK,OAAA"}
|
package/dist/lib/oj/atcoder.js
CHANGED
@@ -62,8 +62,8 @@ exports.at = {
|
|
62
62
|
ct.url = `https://atcoder.jp${ele.attr().href}`;
|
63
63
|
}
|
64
64
|
else if (idx == 2) {
|
65
|
-
const [h,
|
66
|
-
ct.endTime = new Date(ct.startTime.getTime() + (parseInt(h) * 60 + parseInt(
|
65
|
+
const [h, m] = $(this).text().split(":");
|
66
|
+
ct.endTime = new Date(ct.startTime.getTime() + (parseInt(h) * 60 + parseInt(m)) * 60 * 1000);
|
67
67
|
}
|
68
68
|
});
|
69
69
|
contests.push(ct);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"atcoder.js","sourceRoot":"","sources":["../../../src/lib/oj/atcoder.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAA0B;AAC1B,iDAAmC;AAItB,QAAA,EAAE,GAAO;IAClB,IAAI,EAAE,SAAS;IACf,GAAG,EAAE,GAAS,EAAE;QAEZ,MAAM,QAAQ,GAAG,MAAM,eAAK,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;QAChE,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACtC,MAAM,QAAQ,GAAc,EAAE,CAAC;QAC/B,CAAC,CAAC,4CAA4C,CAAC,CAAC,IAAI,CAAC;YAEjD,MAAM,EAAE,GAAY;gBAChB,MAAM,EAAE,UAAE,CAAC,IAAI;gBACf,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,SAAS;gBACf,SAAS,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC;gBACtB,OAAO,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC;gBACpB,GAAG,EAAE,EAAE;aACV,CAAC;YACF,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,GAAG;gBAE5B,IAAG,GAAG,IAAI,CAAC;oBAAE,EAAE,CAAC,SAAS,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;qBAChD,IAAG,GAAG,IAAI,CAAC,EAChB;oBACI,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;oBACzB,EAAE,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC;oBAC1D,EAAE,CAAC,GAAG,GAAG,qBAAqB,GAAG,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;iBACnD;qBACI,IAAG,GAAG,IAAI,CAAC,EAChB;oBACI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBACzC,EAAE,CAAC,OAAO,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;
|
1
|
+
{"version":3,"file":"atcoder.js","sourceRoot":"","sources":["../../../src/lib/oj/atcoder.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAA0B;AAC1B,iDAAmC;AAItB,QAAA,EAAE,GAAO;IAClB,IAAI,EAAE,SAAS;IACf,GAAG,EAAE,GAAS,EAAE;QAEZ,MAAM,QAAQ,GAAG,MAAM,eAAK,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;QAChE,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACtC,MAAM,QAAQ,GAAc,EAAE,CAAC;QAC/B,CAAC,CAAC,4CAA4C,CAAC,CAAC,IAAI,CAAC;YAEjD,MAAM,EAAE,GAAY;gBAChB,MAAM,EAAE,UAAE,CAAC,IAAI;gBACf,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,SAAS;gBACf,SAAS,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC;gBACtB,OAAO,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC;gBACpB,GAAG,EAAE,EAAE;aACV,CAAC;YACF,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,GAAG;gBAE5B,IAAG,GAAG,IAAI,CAAC;oBAAE,EAAE,CAAC,SAAS,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;qBAChD,IAAG,GAAG,IAAI,CAAC,EAChB;oBACI,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;oBACzB,EAAE,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC;oBAC1D,EAAE,CAAC,GAAG,GAAG,qBAAqB,GAAG,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;iBACnD;qBACI,IAAG,GAAG,IAAI,CAAC,EAChB;oBACI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBACzC,EAAE,CAAC,OAAO,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;iBAChG;YACL,CAAC,CAAC,CAAC;YACH,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACtB,CAAC,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC;IACpB,CAAC,CAAA;CACJ,CAAC"}
|
@@ -60,7 +60,7 @@ exports.cf = {
|
|
60
60
|
endTime: new Date((res.startTimeSeconds + res.durationSeconds) * 1000),
|
61
61
|
url: `https://codeforces.com/contests/${res.id}`
|
62
62
|
};
|
63
|
-
}).filter(contest => contest.
|
63
|
+
}).filter(contest => contest.endTime >= new Date());
|
64
64
|
})
|
65
65
|
};
|
66
66
|
//# sourceMappingURL=codeforces.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"codeforces.js","sourceRoot":"","sources":["../../../src/lib/oj/codeforces.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAA0B;AAC1B,iDAAmC;AAenC,MAAM,UAAU,GAAyB;IACrC,EAAE,EAAE,YAAY;IAChB,IAAI,EAAE,MAAM;CACf,CAAC;AAEW,QAAA,EAAE,GAAO;IAClB,IAAI,EAAE,YAAY;IAClB,GAAG,EAAE,GAAS,EAAE;QAEZ,MAAM,QAAQ,GAAG,MAAM,eAAK,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;QAC5E,IAAG,CAAC,CAAC,QAAQ,CAAC,IAAI,YAAY,MAAM,CAAC,EACrC;YACI,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACtC,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;SAC7B;QACD,MAAM,OAAO,GAAa,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;QAC/C,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAW,EAAE;YAEhC,OAAO;gBACH,MAAM,EAAE,UAAE,CAAC,IAAI;gBACf,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,IAAI,EAAE,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;gBAC1B,SAAS,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,gBAAgB,GAAG,IAAI,CAAC;gBAChD,OAAO,EAAE,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,gBAAgB,GAAG,GAAG,CAAC,eAAe,CAAC,GAAG,IAAI,CAAC;gBACtE,GAAG,EAAE,mCAAmC,GAAG,CAAC,EAAE,EAAE;aACnD,CAAC;QACN,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,
|
1
|
+
{"version":3,"file":"codeforces.js","sourceRoot":"","sources":["../../../src/lib/oj/codeforces.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAA0B;AAC1B,iDAAmC;AAenC,MAAM,UAAU,GAAyB;IACrC,EAAE,EAAE,YAAY;IAChB,IAAI,EAAE,MAAM;CACf,CAAC;AAEW,QAAA,EAAE,GAAO;IAClB,IAAI,EAAE,YAAY;IAClB,GAAG,EAAE,GAAS,EAAE;QAEZ,MAAM,QAAQ,GAAG,MAAM,eAAK,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;QAC5E,IAAG,CAAC,CAAC,QAAQ,CAAC,IAAI,YAAY,MAAM,CAAC,EACrC;YACI,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACtC,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;SAC7B;QACD,MAAM,OAAO,GAAa,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;QAC/C,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAW,EAAE;YAEhC,OAAO;gBACH,MAAM,EAAE,UAAE,CAAC,IAAI;gBACf,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,IAAI,EAAE,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;gBAC1B,SAAS,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,gBAAgB,GAAG,IAAI,CAAC;gBAChD,OAAO,EAAE,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,gBAAgB,GAAG,GAAG,CAAC,eAAe,CAAC,GAAG,IAAI,CAAC;gBACtE,GAAG,EAAE,mCAAmC,GAAG,CAAC,EAAE,EAAE;aACnD,CAAC;QACN,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC;IACxD,CAAC,CAAA;CACJ,CAAC"}
|
package/dist/lib/oj/luogu.js
CHANGED
@@ -38,7 +38,7 @@ exports.lg = {
|
|
38
38
|
endTime: new Date(res.endTime * 1000),
|
39
39
|
url: `https://www.luogu.com.cn/contest/${res.id}`
|
40
40
|
};
|
41
|
-
}).filter(contest => contest.
|
41
|
+
}).filter(contest => contest.endTime >= new Date());
|
42
42
|
})
|
43
43
|
};
|
44
44
|
//# sourceMappingURL=luogu.js.map
|
package/dist/lib/oj/luogu.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"luogu.js","sourceRoot":"","sources":["../../../src/lib/oj/luogu.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,kDAA0B;AAiB1B,MAAM,UAAU,GAAyB;IACrC,CAAC,EAAE,IAAI;IACP,CAAC,EAAE,MAAM;IACT,CAAC,EAAE,OAAO;IACV,CAAC,EAAE,KAAK;IACR,CAAC,EAAE,YAAY;CAClB,CAAC;AAEF,MAAM,OAAO,GAAG;IACZ,YAAY,EAAE,qHAAqH;IACnI,cAAc,EAAE,cAAc;CACjC,CAAC;AAEW,QAAA,EAAE,GAAO;IAClB,IAAI,EAAE,OAAO;IACb,GAAG,EAAE,GAAS,EAAE;QAEZ,MAAM,OAAO,GAAa,CAAC,MAAM,eAAK,CAAC,GAAG,CAAC,uCAAuC,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC;QACnI,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAW,EAAE;YAEhC,OAAO;gBACH,MAAM,EAAE,UAAE,CAAC,IAAI;gBACf,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,IAAI,EAAE,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC;gBAC9B,SAAS,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC;gBACzC,OAAO,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC;gBACrC,GAAG,EAAE,oCAAoC,GAAG,CAAC,EAAE,EAAE;aACpD,CAAC;QACN,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,
|
1
|
+
{"version":3,"file":"luogu.js","sourceRoot":"","sources":["../../../src/lib/oj/luogu.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,kDAA0B;AAiB1B,MAAM,UAAU,GAAyB;IACrC,CAAC,EAAE,IAAI;IACP,CAAC,EAAE,MAAM;IACT,CAAC,EAAE,OAAO;IACV,CAAC,EAAE,KAAK;IACR,CAAC,EAAE,YAAY;CAClB,CAAC;AAEF,MAAM,OAAO,GAAG;IACZ,YAAY,EAAE,qHAAqH;IACnI,cAAc,EAAE,cAAc;CACjC,CAAC;AAEW,QAAA,EAAE,GAAO;IAClB,IAAI,EAAE,OAAO;IACb,GAAG,EAAE,GAAS,EAAE;QAEZ,MAAM,OAAO,GAAa,CAAC,MAAM,eAAK,CAAC,GAAG,CAAC,uCAAuC,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC;QACnI,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAW,EAAE;YAEhC,OAAO;gBACH,MAAM,EAAE,UAAE,CAAC,IAAI;gBACf,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,IAAI,EAAE,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC;gBAC9B,SAAS,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC;gBACzC,OAAO,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC;gBACrC,GAAG,EAAE,oCAAoC,GAAG,CAAC,EAAE,EAAE;aACpD,CAAC;QACN,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC;IACxD,CAAC,CAAA;CACJ,CAAC"}
|
package/dist/locale/en.json
CHANGED
@@ -1,5 +1,8 @@
|
|
1
1
|
{
|
2
|
-
"
|
2
|
+
"runnning": "There are ${contestCount} contests is running on ${oj}",
|
3
|
+
"norunning": "No upcomming contests on ${oj}",
|
4
|
+
"upcoming": "There are ${contestCount} contests on ${oj} in the next ${days} days",
|
5
|
+
"noupcoming": "No contests for the next ${days} days on ${oj}",
|
3
6
|
"ojName": "OJ",
|
4
7
|
"name": "Contest name",
|
5
8
|
"rule": "Rule",
|
package/dist/locale/index.d.ts
CHANGED
package/dist/locale/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/locale/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2BAAiC;AAEpB,QAAA,QAAQ,GAAG,IAAA,gBAAW,EAAC,GAAG,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/locale/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2BAAiC;AAEpB,QAAA,QAAQ,GAAG,IAAA,gBAAW,EAAC,GAAG,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAclJ,SAAsB,WAAW,CAAC,QAAgB;;QAE9C,IAAG,CAAC,gBAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,QAAQ,+BAA+B,gBAAQ,EAAE,CAAC,CAAC;QACxH,yDAAc,KAAK,QAAQ,OAAO,IAAE;IACxC,CAAC;CAAA;AAJD,kCAIC"}
|
package/dist/locale/zh-CN.json
CHANGED
@@ -1,5 +1,8 @@
|
|
1
1
|
{
|
2
|
-
"
|
2
|
+
"runnning": "在 ${oj} 上有 ${contestCount} 场正在进行的比赛",
|
3
|
+
"norunning": "在 ${oj} 上没有正在进行的比赛捏",
|
4
|
+
"upcoming": "接下来的 ${days} 天内在 ${oj} 上有 ${contestCount} 场比赛",
|
5
|
+
"noupcoming": "接下来的 ${days} 天内在 ${oj} 上没有比赛捏",
|
3
6
|
"ojName": "比赛平台",
|
4
7
|
"name": "比赛名称",
|
5
8
|
"rule": "赛制",
|
@@ -0,0 +1,11 @@
|
|
1
|
+
{
|
2
|
+
"runnning": "搁 ${oj} 上有 ${contestCount} 场比赛正干着呢",
|
3
|
+
"norunning": "搁 ${oj} 上没有正打着的比赛",
|
4
|
+
"upcoming": "之后 ${days} 天搁在 ${oj} 上统共是有 ${contestCount} 场比赛",
|
5
|
+
"noupcoming": "往后 ${days} 天搁 ${oj} 没比赛啊",
|
6
|
+
"ojName": "搁哪",
|
7
|
+
"name": "叫啥",
|
8
|
+
"rule": "啥形式",
|
9
|
+
"startTime": "啥时候开整",
|
10
|
+
"endTime": "啥时候完事"
|
11
|
+
}
|
package/dist/locale/zh-TW.json
CHANGED
@@ -1,5 +1,8 @@
|
|
1
1
|
{
|
2
|
-
"
|
2
|
+
"runnning": "在 ${oj} 上有 ${contestCount} 場正在進行的比賽",
|
3
|
+
"norunning": "在 ${oj} 上沒有正在進行的比賽",
|
4
|
+
"upcoming": "接下来的 ${days} 天內在 ${oj} 上有 ${contestCount} 場比賽",
|
5
|
+
"noupcoming": "接下來的 ${days} 天內在 ${oj} 上沒有比賽",
|
3
6
|
"ojName": "比賽平台",
|
4
7
|
"name": "比賽名稱",
|
5
8
|
"rule": "賽制",
|