lscontests 1.8.13 → 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
@@ -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 13:22:53 GMT*)
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
62
  比赛名称:牛客竞赛博弈专题班 Sprague-Grundy 函数(SG 函数、图游戏、Nim 和)
@@ -72,13 +72,6 @@ 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
- 比赛平台: 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,6 +79,8 @@ 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
85
  比赛名称:第二届天元编程邀请赛(提高组)
91
86
  赛制: IOI
@@ -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
@@ -186,7 +183,7 @@ 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
189
  Contest name: 牛客竞赛博弈专题班 Sprague-Grundy 函数(SG 函数、图游戏、Nim 和)
@@ -202,12 +199,7 @@ 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: 第二届天元编程邀请赛(提高组)
@@ -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-14T13:40:00.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-15T14:00: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,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.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"));
@@ -28,51 +28,75 @@ function resolveConfig(config) {
28
28
  cfg.abbrList = defaultConfig.abbrList;
29
29
  return cfg;
30
30
  }
31
- function getContestList(config) {
31
+ function getContests(config) {
32
32
  return __awaiter(this, void 0, void 0, function* () {
33
33
  const cfg = resolveConfig(config);
34
- const contests = (yield Promise.all(cfg.abbrList.map((abbr) => __awaiter(this, void 0, void 0, function* () {
35
- try {
36
- const cts = yield oj_1.alloj[abbr].get();
37
- return cts.filter((c) => c.startTime <= new Date(Date.now() + cfg.days * 86400000));
38
- }
39
- catch (e) {
40
- console.error(`Failed to get match information for ${oj_1.alloj[abbr].name}, details:`);
41
- console.error(e);
42
- return [];
43
- }
44
- })))).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
+ };
45
52
  if (cfg.sort)
46
- contests.sort((a, b) => a.startTime.getTime() - b.startTime.getTime());
47
- return contests;
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.getContestList = getContestList;
51
- function getContestInfo(config, language = "zh-CN") {
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 contests = yield getContestList(cfg);
62
+ const { running, upcoming } = yield getContests(cfg);
56
63
  const info = [];
57
- info.push(lodash_1.default.template(lang.welcome)({
58
- contestCount: contests.length,
59
- days: cfg.days,
60
- oj: cfg.abbrList.map(abbr => oj_1.alloj[abbr].name).join(",")
61
- }));
62
- for (const contest of contests) {
63
- const msg = [];
64
- msg.push(`${lang.ojName}: ${contest.ojName}`);
65
- msg.push(`${lang.name}: ${contest.name}`);
66
- msg.push(`${lang.rule}: ${contest.rule}`);
67
- msg.push(`${lang.startTime}: ${contest.startTime.toLocaleString(undefined, { hourCycle: "h23" })}`);
68
- msg.push(`${lang.endTime}: ${contest.endTime.toLocaleString(undefined, { hourCycle: "h23" })}`);
69
- msg.push(contest.url);
70
- 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));
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.getContestInfo = getContestInfo;
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":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -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"}
@@ -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.13",
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",