lscontests 1.8.11 → 1.9.0

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 CHANGED
@@ -20,7 +20,7 @@ For yarn: `yarn global add lscontests`
20
20
 
21
21
  ### Add to your package
22
22
 
23
- For npm: `npm install lscontests`
23
+ For npm: `npm install lscontests --save`
24
24
 
25
25
  For yarn: `yarn add lscontests`
26
26
 
@@ -50,35 +50,28 @@ Options:
50
50
  It performs as follows:
51
51
 
52
52
  <!-- block_cli begin -->
53
- (*The following content was automatically generated in 5/13/2022, 11:23:42*)
53
+ (*The following content was automatically generated in Fri, 13 May 2022 15:28:45 GMT*)
54
54
 
55
55
  <details>
56
56
  <summary> <code>> lsct </code> </summary>
57
57
 
58
58
  ```text
59
- 最近的 3 天内在 AtCoder,Codeforces,Luogu,NowCoder 上有 12 场比赛
59
+ AtCoder,Codeforces,Luogu,NowCoder 上有 3 场正在进行的比赛
60
60
 
61
61
  比赛平台: NowCoder
62
- 比赛名称: 牛客竞赛博弈专题班Sprague-Grundy函数(SG函数、图游戏、Nim和)
62
+ 比赛名称:牛客竞赛博弈专题班 Sprague-Grundy 函数(SG 函数、图游戏、Nim 和)
63
63
  赛制: ICPC
64
64
  开始时间: 5/13/2022, 04:00:00
65
65
  结束时间: 5/21/2022, 13:00:00
66
66
  https://ac.nowcoder.com/acm/contest/34655
67
67
 
68
68
  比赛平台: NowCoder
69
- 比赛名称: 2022图论班第一章图匹配例题与习题
69
+ 比赛名称: 2022 图论班第一章图匹配例题与习题
70
70
  赛制: ICPC
71
71
  开始时间: 5/13/2022, 06:00:00
72
72
  结束时间: 5/30/2022, 08:00:00
73
73
  https://ac.nowcoder.com/acm/contest/34649
74
74
 
75
- 比赛平台: NowCoder
76
- 比赛名称: 牛客挑战赛60
77
- 赛制: ICPC
78
- 开始时间: 5/13/2022, 11:00:00
79
- 结束时间: 5/13/2022, 14:00:00
80
- https://ac.nowcoder.com/acm/contest/11200
81
-
82
75
  比赛平台: Codeforces
83
76
  比赛名称: Educational Codeforces Round 128 (Rated for Div. 2)
84
77
  赛制: ICPC
@@ -86,22 +79,24 @@ https://ac.nowcoder.com/acm/contest/11200
86
79
  结束时间: 5/13/2022, 16:35:00
87
80
  https://codeforces.com/contests/1680
88
81
 
82
+ 接下来的 3 天内在 AtCoder,Codeforces,Luogu,NowCoder 上有 8 场比赛
83
+
89
84
  比赛平台: NowCoder
90
- 比赛名称: 第二届天元编程邀请赛(提高组)
91
- 赛制: undefined
85
+ 比赛名称:第二届天元编程邀请赛(提高组)
86
+ 赛制: IOI
92
87
  开始时间: 5/14/2022, 04:30:00
93
88
  结束时间: 5/14/2022, 09:00:00
94
89
  https://ac.nowcoder.com/acm/contest/33335
95
90
 
96
91
  比赛平台: NowCoder
97
- 比赛名称: 第二届天元编程邀请赛(普及组)
98
- 赛制: undefined
92
+ 比赛名称:第二届天元编程邀请赛(普及组)
93
+ 赛制: IOI
99
94
  开始时间: 5/14/2022, 04:30:00
100
95
  结束时间: 5/14/2022, 08:00:00
101
96
  https://ac.nowcoder.com/acm/contest/33341
102
97
 
103
98
  比赛平台: NowCoder
104
- 比赛名称: 第十八届西南科技大学ACM程序设计竞赛(同步赛)
99
+ 比赛名称:第十八届西南科技大学 ACM 程序设计竞赛(同步赛)
105
100
  赛制: ICPC
106
101
  开始时间: 5/14/2022, 05:00:00
107
102
  结束时间: 5/14/2022, 10:00:00
@@ -122,10 +117,10 @@ https://www.luogu.com.cn/contest/68326
122
117
  https://codeforces.com/contests/1679
123
118
 
124
119
  比赛平台: AtCoder
125
- 比赛名称: Ⓐ Panasonic Programming Contest 2022(AtCoder Beginner Contest 251)
120
+ 比赛名称: Ⓐ Panasonic Programming Contest 2022 (AtCoder Beginner Contest 251)
126
121
  赛制: AtCoder
127
122
  开始时间: 5/14/2022, 12:00:00
128
- 结束时间: 5/14/2022, 12:01:40
123
+ 结束时间: 5/14/2022, 13:40:00
129
124
  https://atcoder.jp/contests/abc251
130
125
 
131
126
  比赛平台: Luogu
@@ -139,7 +134,7 @@ https://www.luogu.com.cn/contest/67377
139
134
  比赛名称: Ⓐ AtCoder Regular Contest 140
140
135
  赛制: AtCoder
141
136
  开始时间: 5/15/2022, 12:00:00
142
- 结束时间: 5/15/2022, 12:02:00
137
+ 结束时间: 5/15/2022, 14:00:00
143
138
  https://atcoder.jp/contests/arc140
144
139
  ```
145
140
 
@@ -149,7 +144,7 @@ https://atcoder.jp/contests/arc140
149
144
  <summary> <code>> lsct -o at cf -d 7</code> </summary>
150
145
 
151
146
  ```text
152
- 最近的 7 天内在 AtCoder,Codeforces 上有 4 场比赛
147
+ AtCoder,Codeforces 上有 1 场正在进行的比赛
153
148
 
154
149
  比赛平台: Codeforces
155
150
  比赛名称: Educational Codeforces Round 128 (Rated for Div. 2)
@@ -158,6 +153,8 @@ https://atcoder.jp/contests/arc140
158
153
  结束时间: 5/13/2022, 16:35:00
159
154
  https://codeforces.com/contests/1680
160
155
 
156
+ 接下来的 7 天内在 AtCoder,Codeforces 上有 3 场比赛
157
+
161
158
  比赛平台: Codeforces
162
159
  比赛名称: Codeforces Round #791 (Div. 2)
163
160
  赛制: Codeforces
@@ -166,17 +163,17 @@ https://codeforces.com/contests/1680
166
163
  https://codeforces.com/contests/1679
167
164
 
168
165
  比赛平台: AtCoder
169
- 比赛名称: Ⓐ Panasonic Programming Contest 2022(AtCoder Beginner Contest 251)
166
+ 比赛名称: Ⓐ Panasonic Programming Contest 2022 (AtCoder Beginner Contest 251)
170
167
  赛制: AtCoder
171
168
  开始时间: 5/14/2022, 12:00:00
172
- 结束时间: 5/14/2022, 12:01:40
169
+ 结束时间: 5/14/2022, 13:40:00
173
170
  https://atcoder.jp/contests/abc251
174
171
 
175
172
  比赛平台: AtCoder
176
173
  比赛名称: Ⓐ AtCoder Regular Contest 140
177
174
  赛制: AtCoder
178
175
  开始时间: 5/15/2022, 12:00:00
179
- 结束时间: 5/15/2022, 12:02:00
176
+ 结束时间: 5/15/2022, 14:00:00
180
177
  https://atcoder.jp/contests/arc140
181
178
  ```
182
179
 
@@ -186,45 +183,40 @@ https://atcoder.jp/contests/arc140
186
183
  <summary> <code>> lsct -o lg nc -d 7 -L en</code> </summary>
187
184
 
188
185
  ```text
189
- 8 contests on Luogu,NowCoder in the last 7 days
186
+ There are 2 contests is running on Luogu,NowCoder
190
187
 
191
188
  OJ: NowCoder
192
- Contest name: 牛客竞赛博弈专题班Sprague-Grundy函数(SG函数、图游戏、Nim和)
189
+ Contest name: 牛客竞赛博弈专题班 Sprague-Grundy 函数(SG 函数、图游戏、Nim 和)
193
190
  Rule: ICPC
194
191
  Start time: 5/13/2022, 04:00:00
195
192
  End time: 5/21/2022, 13:00:00
196
193
  https://ac.nowcoder.com/acm/contest/34655
197
194
 
198
195
  OJ: NowCoder
199
- Contest name: 2022图论班第一章图匹配例题与习题
196
+ Contest name: 2022 图论班第一章图匹配例题与习题
200
197
  Rule: ICPC
201
198
  Start time: 5/13/2022, 06:00:00
202
199
  End time: 5/30/2022, 08:00:00
203
200
  https://ac.nowcoder.com/acm/contest/34649
204
201
 
205
- OJ: NowCoder
206
- Contest name: 牛客挑战赛60
207
- Rule: ICPC
208
- Start time: 5/13/2022, 11:00:00
209
- End time: 5/13/2022, 14:00:00
210
- https://ac.nowcoder.com/acm/contest/11200
202
+ There are 5 contests on Luogu,NowCoder in the next 7 days
211
203
 
212
204
  OJ: NowCoder
213
205
  Contest name: 第二届天元编程邀请赛(提高组)
214
- Rule: undefined
206
+ Rule: IOI
215
207
  Start time: 5/14/2022, 04:30:00
216
208
  End time: 5/14/2022, 09:00:00
217
209
  https://ac.nowcoder.com/acm/contest/33335
218
210
 
219
211
  OJ: NowCoder
220
212
  Contest name: 第二届天元编程邀请赛(普及组)
221
- Rule: undefined
213
+ Rule: IOI
222
214
  Start time: 5/14/2022, 04:30:00
223
215
  End time: 5/14/2022, 08:00:00
224
216
  https://ac.nowcoder.com/acm/contest/33341
225
217
 
226
218
  OJ: NowCoder
227
- Contest name: 第十八届西南科技大学ACM程序设计竞赛(同步赛)
219
+ Contest name: 第十八届西南科技大学 ACM 程序设计竞赛(同步赛)
228
220
  Rule: ICPC
229
221
  Start time: 5/14/2022, 05:00:00
230
222
  End time: 5/14/2022, 10:00:00
@@ -251,40 +243,44 @@ https://www.luogu.com.cn/contest/67377
251
243
  <summary> <code>> lsct -o at cf -d 7 -r --no-sort</code> </summary>
252
244
 
253
245
  ```json
254
- [
255
- {
256
- "ojName": "AtCoder",
257
- "name": "Ⓐ Panasonic Programming Contest 2022(AtCoder Beginner Contest 251)",
258
- "rule": "AtCoder",
259
- "startTime": "2022-05-14T12:00:00.000Z",
260
- "endTime": "2022-05-14T12:01:40.000Z",
261
- "url": "https://atcoder.jp/contests/abc251"
262
- },
263
- {
264
- "ojName": "AtCoder",
265
- "name": "Ⓐ AtCoder Regular Contest 140",
266
- "rule": "AtCoder",
267
- "startTime": "2022-05-15T12:00:00.000Z",
268
- "endTime": "2022-05-15T12:02:00.000Z",
269
- "url": "https://atcoder.jp/contests/arc140"
270
- },
271
- {
272
- "ojName": "Codeforces",
273
- "name": "Codeforces Round #791 (Div. 2)",
274
- "rule": "Codeforces",
275
- "startTime": "2022-05-14T09:35:00.000Z",
276
- "endTime": "2022-05-14T11:35:00.000Z",
277
- "url": "https://codeforces.com/contests/1679"
278
- },
279
- {
280
- "ojName": "Codeforces",
281
- "name": "Educational Codeforces Round 128 (Rated for Div. 2)",
282
- "rule": "ICPC",
283
- "startTime": "2022-05-13T14:35:00.000Z",
284
- "endTime": "2022-05-13T16:35:00.000Z",
285
- "url": "https://codeforces.com/contests/1680"
286
- }
287
- ]
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
+ }
288
284
  ```
289
285
 
290
286
  </details>
@@ -299,7 +295,7 @@ If you want to get a list of contest information in your project by calling *lsc
299
295
  ```typescript
300
296
  import { getContestInfo } from "lscontests";
301
297
 
302
- getContestInfo({ abbrList: ["cf", "lg"] }).then(console.log);
298
+ getContestsInfoText({ abbrList: ["cf", "lg"] }).then(console.log);
303
299
  ```
304
300
 
305
301
  This code gives the same result as `lsct -o cf lg`.
@@ -309,7 +305,7 @@ This code gives the same result as `lsct -o cf lg`.
309
305
  ```typescript
310
306
  import { getContestList } from "lscontests";
311
307
 
312
- getContestList({ sort: false }).then(console.log);
308
+ getContests({ sort: false }).then(console.log);
313
309
  ```
314
310
 
315
311
  This code gives the same result as `lsct -r --no-sort`.
@@ -317,23 +313,23 @@ This code gives the same result as `lsct -r --no-sort`.
317
313
  #### Add OJ support
318
314
 
319
315
  ```typescript
320
- import { addOJ, getContestInfo, getContestList } from "lscontests";
316
+ import { addOJ, getContestsInfoText, getContests } from "lscontests";
321
317
 
322
318
  addOJ("ts", {
323
319
  name: "testOJ", get: async () => [{
324
320
  ojName: "testOJ",
325
321
  name: "testContest",
326
322
  rule: "ICPC",
327
- startTime: new Date(Date.now() + 1 * 86400000),
328
- endTime: new Date(Date.now() + 2 * 86400000),
323
+ startTime: new Date(Date.now() - 1),
324
+ endTime: new Date(Date.now() + 3600000),
329
325
  url: "https://www.test.com"
330
326
  }]
331
327
  });
332
328
 
333
329
  async function main() {
334
- console.log(await getContestInfo({ abbrList: ["cf", "ts"], days: 1 }, "en"));
330
+ console.log(await getContestsInfoText({ abbrList: ["cf", "ts"], days: 1 }, "en"));
335
331
  console.log();
336
- console.log(await getContestList({ abbrList: ["cf", "ts"], days: 7 }));
332
+ console.log(await getContests({ abbrList: ["at", "ts"], days: 7 }));
337
333
  }
338
334
 
339
335
  main();
@@ -342,41 +338,61 @@ main();
342
338
  This code gives the following results:
343
339
 
344
340
  ```text
345
- 1 contests on Codeforces,testOJ in the last 1 days
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
346
349
 
347
350
  OJ: testOJ
348
351
  Contest name: testContest
349
352
  Rule: ICPC
350
- Start time: 2022/5/13 19:34:10
351
- End time: 2022/5/14 19:34:10
353
+ Start time: 2022/5/13 23:23:31
354
+ End time: 2022/5/14 00:23:31
352
355
  https://www.test.com
353
356
 
354
- [
355
- {
356
- ojName: 'testOJ',
357
- name: 'testContest',
358
- rule: 'ICPC',
359
- startTime: 2022-05-13T11:34:13.464Z,
360
- endTime: 2022-05-14T11:34:13.464Z,
361
- url: 'https://www.test.com'
362
- },
363
- {
364
- ojName: 'Codeforces',
365
- name: 'Educational Codeforces Round 128 (Rated for Div. 2)',
366
- rule: 'ICPC',
367
- startTime: 2022-05-13T14:35:00.000Z,
368
- endTime: 2022-05-13T16:35:00.000Z,
369
- url: 'https://codeforces.com/contests/1680'
370
- },
371
- {
372
- ojName: 'Codeforces',
373
- name: 'Codeforces Round #791 (Div. 2)',
374
- rule: 'Codeforces',
375
- startTime: 2022-05-14T09:35:00.000Z,
376
- endTime: 2022-05-14T11:35:00.000Z,
377
- url: 'https://codeforces.com/contests/1679'
378
- }
379
- ]
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
+ }
380
396
  ```
381
397
 
382
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.getContestList)(config), null, 2);
67
+ return JSON.stringify(yield (0, _1.getContests)(config), null, 2);
68
68
  else
69
- return yield (0, _1.getContestInfo)(config, opts.language);
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,wBAA2D;AAC3D,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,iBAAc,EAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;;gBACrE,OAAO,MAAM,IAAA,iBAAc,EAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;SAC3D;IACL,CAAC;CAAA;AAlCD,kBAkCC;AAED,IAAG,OAAO,CAAC,IAAI,KAAK,MAAM;IAAE,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC"}
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 getContestList(config?: config): Promise<import("./lib/contest").contest[]>;
7
- export declare function getContestInfo(config?: config, language?: string): Promise<string>;
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,10 +12,11 @@ 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.getContestInfo = exports.getContestList = void 0;
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"));
19
+ const pangu_1 = __importDefault(require("pangu"));
19
20
  const defaultConfig = {
20
21
  abbrList: Object.keys(oj_1.alloj),
21
22
  days: 3,
@@ -27,51 +28,75 @@ function resolveConfig(config) {
27
28
  cfg.abbrList = defaultConfig.abbrList;
28
29
  return cfg;
29
30
  }
30
- function getContestList(config) {
31
+ function getContests(config) {
31
32
  return __awaiter(this, void 0, void 0, function* () {
32
33
  const cfg = resolveConfig(config);
33
- const contests = (yield Promise.all(cfg.abbrList.map((abbr) => __awaiter(this, void 0, void 0, function* () {
34
- try {
35
- const cts = yield oj_1.alloj[abbr].get();
36
- return cts.filter((c) => c.startTime <= new Date(Date.now() + cfg.days * 86400000));
37
- }
38
- catch (e) {
39
- console.error(`Failed to get match information for ${oj_1.alloj[abbr].name}, details:`);
40
- console.error(e);
41
- return [];
42
- }
43
- })))).reduce((ls1, ls2) => ls1.concat(ls2));
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
+ };
44
52
  if (cfg.sort)
45
- contests.sort((a, b) => a.startTime.getTime() - b.startTime.getTime());
46
- return contests;
53
+ Object.values(ret).forEach(ct => ct.sort((a, b) => a.startTime.getTime() - b.startTime.getTime()));
54
+ return ret;
47
55
  });
48
56
  }
49
- exports.getContestList = getContestList;
50
- function getContestInfo(config, language = "zh-CN") {
57
+ exports.getContests = getContests;
58
+ function getContestsInfoText(config, language = "zh-CN") {
51
59
  return __awaiter(this, void 0, void 0, function* () {
52
60
  const cfg = resolveConfig(config);
53
61
  const lang = yield (0, locale_1.getLangDict)(language);
54
- const contests = yield getContestList(cfg);
62
+ const { running, upcoming } = yield getContests(cfg);
55
63
  const info = [];
56
- info.push(lodash_1.default.template(lang.welcome)({
57
- contestCount: contests.length,
58
- days: cfg.days,
59
- oj: cfg.abbrList.map(abbr => oj_1.alloj[abbr].name).join(",")
60
- }));
61
- for (const contest of contests) {
62
- const msg = [];
63
- msg.push(`${lang.ojName}: ${contest.ojName}`);
64
- msg.push(`${lang.name}: ${contest.name}`);
65
- msg.push(`${lang.rule}: ${contest.rule}`);
66
- msg.push(`${lang.startTime}: ${contest.startTime.toLocaleString(undefined, { hourCycle: "h23" })}`);
67
- msg.push(`${lang.endTime}: ${contest.endTime.toLocaleString(undefined, { hourCycle: "h23" })}`);
68
- msg.push(contest.url);
69
- info.push(msg.join("\n"));
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));
70
93
  }
71
- return info.join("\n\n");
94
+ else
95
+ info.push(lodash_1.default.template(lang.noupcoming)({ days: cfg.days, oj }));
96
+ return pangu_1.default.spacing(info.join("\n\n"));
72
97
  });
73
98
  }
74
- exports.getContestInfo = getContestInfo;
99
+ exports.getContestsInfoText = getContestsInfoText;
75
100
  var cli_1 = require("./cli");
76
101
  Object.defineProperty(exports, "cli", { enumerable: true, get: function () { return cli_1.cli; } });
77
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":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -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, s] = $(this).text().split(":");
66
- ct.endTime = new Date(ct.startTime.getTime() + (parseInt(h) * 60 + parseInt(s)) * 1000);
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;iBAC3F;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"}
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.startTime >= new Date());
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,SAAS,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC;IAC1D,CAAC,CAAA;CACJ,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"}
@@ -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.startTime >= new Date());
41
+ }).filter(contest => contest.endTime >= new Date());
42
42
  })
43
43
  };
44
44
  //# sourceMappingURL=luogu.js.map
@@ -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,SAAS,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC;IAC1D,CAAC,CAAA;CACJ,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"}
@@ -57,8 +57,8 @@ function getResultList(tcf) {
57
57
  }
58
58
  const ruleRecord = {
59
59
  0: "ICPC",
60
- 1: "IOI",
61
- 2: "OI"
60
+ 2: "OI",
61
+ 3: "IOI"
62
62
  };
63
63
  exports.nc = {
64
64
  name: "NowCoder",
@@ -1 +1 @@
1
- {"version":3,"file":"nowcoder.js","sourceRoot":"","sources":["../../../src/lib/oj/nowcoder.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAA0B;AAC1B,iDAAmC;AAgDnC,IAAK,iBAIJ;AAJD,WAAK,iBAAiB;IAElB,8EAAmB,CAAA;IACnB,4EAAa,CAAA;AACjB,CAAC,EAJI,iBAAiB,KAAjB,iBAAiB,QAIrB;AAED,MAAM,GAAG,GAAG,+CAA+C,CAAC;AAE5D,SAAe,aAAa,CAAC,GAAsB;;QAE/C,MAAM,IAAI,GAAG,CAAC,MAAM,eAAK,CAAC,GAAG,CAAC,GAAG,GAAG,sBAAsB,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QACvE,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7B,MAAM,EAAE,GAAa,EAAE,CAAC;QACxB,CAAC,CAAC,qCAAqC,CAAC,CAAC,IAAI,CAAC;YAE1C,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACxE,CAAC,CAAC,CAAC;QACH,OAAO,EAAE,CAAC;IACd,CAAC;CAAA;AAED,MAAM,UAAU,GAAyB;IACrC,CAAC,EAAE,MAAM;IACT,CAAC,EAAE,KAAK;IACR,CAAC,EAAE,IAAI;CACV,CAAC;AAEW,QAAA,EAAE,GAAO;IAClB,IAAI,EAAE,UAAU;IAChB,GAAG,EAAE,GAAS,EAAE;QAEZ,MAAM,GAAG,GAAa;YAClB,GAAG,MAAM,aAAa,CAAC,iBAAiB,CAAC,cAAc,CAAC;YACxD,GAAG,MAAM,aAAa,CAAC,iBAAiB,CAAC,aAAa,CAAC;SAC1D,CAAC;QACF,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,sBAAsB,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAW,EAAE;YAE1E,OAAO;gBACH,MAAM,EAAE,UAAE,CAAC,IAAI;gBACf,IAAI,EAAE,GAAG,CAAC,WAAW;gBACrB,IAAI,EAAE,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;gBAC1B,SAAS,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC;gBACzC,OAAO,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC;gBACrC,GAAG,EAAE,uCAAuC,GAAG,CAAC,SAAS,EAAE;aAC9D,CAAC;QACN,CAAC,CAAC,CAAC;IACP,CAAC,CAAA;CACJ,CAAC"}
1
+ {"version":3,"file":"nowcoder.js","sourceRoot":"","sources":["../../../src/lib/oj/nowcoder.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAA0B;AAC1B,iDAAmC;AAgDnC,IAAK,iBAIJ;AAJD,WAAK,iBAAiB;IAElB,8EAAmB,CAAA;IACnB,4EAAa,CAAA;AACjB,CAAC,EAJI,iBAAiB,KAAjB,iBAAiB,QAIrB;AAED,MAAM,GAAG,GAAG,+CAA+C,CAAC;AAE5D,SAAe,aAAa,CAAC,GAAsB;;QAE/C,MAAM,IAAI,GAAG,CAAC,MAAM,eAAK,CAAC,GAAG,CAAC,GAAG,GAAG,sBAAsB,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QACvE,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7B,MAAM,EAAE,GAAa,EAAE,CAAC;QACxB,CAAC,CAAC,qCAAqC,CAAC,CAAC,IAAI,CAAC;YAE1C,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACxE,CAAC,CAAC,CAAC;QACH,OAAO,EAAE,CAAC;IACd,CAAC;CAAA;AAED,MAAM,UAAU,GAAyB;IACrC,CAAC,EAAE,MAAM;IACT,CAAC,EAAE,IAAI;IACP,CAAC,EAAE,KAAK;CACX,CAAC;AAEW,QAAA,EAAE,GAAO;IAClB,IAAI,EAAE,UAAU;IAChB,GAAG,EAAE,GAAS,EAAE;QAEZ,MAAM,GAAG,GAAa;YAClB,GAAG,MAAM,aAAa,CAAC,iBAAiB,CAAC,cAAc,CAAC;YACxD,GAAG,MAAM,aAAa,CAAC,iBAAiB,CAAC,aAAa,CAAC;SAC1D,CAAC;QACF,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,sBAAsB,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAW,EAAE;YAE1E,OAAO;gBACH,MAAM,EAAE,UAAE,CAAC,IAAI;gBACf,IAAI,EAAE,GAAG,CAAC,WAAW;gBACrB,IAAI,EAAE,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;gBAC1B,SAAS,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC;gBACzC,OAAO,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC;gBACrC,GAAG,EAAE,uCAAuC,GAAG,CAAC,SAAS,EAAE;aAC9D,CAAC;QACN,CAAC,CAAC,CAAC;IACP,CAAC,CAAA;CACJ,CAAC"}
@@ -1,5 +1,8 @@
1
1
  {
2
- "welcome": "${contestCount} contests on ${oj} in the last ${days} days",
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",
@@ -1,6 +1,9 @@
1
1
  export declare const langList: string[];
2
2
  export declare type langDict = {
3
- welcome: string;
3
+ runnning: string;
4
+ norunning: string;
5
+ upcoming: string;
6
+ noupcoming: string;
4
7
  ojName: string;
5
8
  name: string;
6
9
  rule: string;
@@ -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;AAWlJ,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"}
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"}
@@ -1,5 +1,8 @@
1
1
  {
2
- "welcome": "最近的 ${days} 天内在 ${oj} 上有 ${contestCount} 场比赛",
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": "赛制",
@@ -1,5 +1,8 @@
1
1
  {
2
- "welcome": "最近的 ${days} 天內在 ${oj} 上有 ${contestCount} 場比賽",
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": "賽制",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lscontests",
3
- "version": "1.8.11",
3
+ "version": "1.9.0",
4
4
  "description": "A tool to get information about the contests on each OJ",
5
5
  "keywords": [
6
6
  "cli",
@@ -35,11 +35,13 @@
35
35
  "axios": "^0.27.2",
36
36
  "cheerio": "^1.0.0-rc.10",
37
37
  "commander": "^9.2.0",
38
- "lodash": "^4.17.21"
38
+ "lodash": "^4.17.21",
39
+ "pangu": "^4.0.7"
39
40
  },
40
41
  "devDependencies": {
41
42
  "@types/lodash": "^4.14.182",
42
43
  "@types/node": "^17.0.33",
44
+ "@types/pangu": "^3.3.0",
43
45
  "@typescript-eslint/eslint-plugin": "^5.23.0",
44
46
  "@typescript-eslint/parser": "^5.23.0",
45
47
  "cz-conventional-changelog": "3.3.0",