lscontests 1.8.13 → 1.9.2

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
@@ -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-TW",
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 13:22:53 GMT*)
53
+ (*The following content was automatically generated in Sat, 14 May 2022 01:14:20 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 上有 2 场正在进行的比赛
60
60
 
61
61
  比赛平台: NowCoder
62
62
  比赛名称:牛客竞赛博弈专题班 Sprague-Grundy 函数(SG 函数、图游戏、Nim 和)
@@ -72,19 +72,7 @@ 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
- 比赛平台: Codeforces
83
- 比赛名称: Educational Codeforces Round 128 (Rated for Div. 2)
84
- 赛制: ICPC
85
- 开始时间: 5/13/2022, 14:35:00
86
- 结束时间: 5/13/2022, 16:35:00
87
- https://codeforces.com/contests/1680
75
+ 接下来的 3 天内在 AtCoder,Codeforces,Luogu,NowCoder 上有 8 场比赛
88
76
 
89
77
  比赛平台: NowCoder
90
78
  比赛名称:第二届天元编程邀请赛(提高组)
@@ -149,14 +137,9 @@ https://atcoder.jp/contests/arc140
149
137
  <summary> <code>> lsct -o at cf -d 7</code> </summary>
150
138
 
151
139
  ```text
152
- 最近的 7 天内在 AtCoder,Codeforces 上有 4 场比赛
140
+ AtCoder,Codeforces 上没有正在进行的比赛捏
153
141
 
154
- 比赛平台: Codeforces
155
- 比赛名称: Educational Codeforces Round 128 (Rated for Div. 2)
156
- 赛制: ICPC
157
- 开始时间: 5/13/2022, 14:35:00
158
- 结束时间: 5/13/2022, 16:35:00
159
- https://codeforces.com/contests/1680
142
+ 接下来的 7 天内在 AtCoder,Codeforces 上有 3 场比赛
160
143
 
161
144
  比赛平台: Codeforces
162
145
  比赛名称: Codeforces Round #791 (Div. 2)
@@ -186,7 +169,7 @@ https://atcoder.jp/contests/arc140
186
169
  <summary> <code>> lsct -o lg nc -d 7 -L en</code> </summary>
187
170
 
188
171
  ```text
189
- 8 contests on Luogu,NowCoder in the last 7 days
172
+ There are 2 contests is running on Luogu,NowCoder
190
173
 
191
174
  OJ: NowCoder
192
175
  Contest name: 牛客竞赛博弈专题班 Sprague-Grundy 函数(SG 函数、图游戏、Nim 和)
@@ -202,12 +185,7 @@ Start time: 5/13/2022, 06:00:00
202
185
  End time: 5/30/2022, 08:00:00
203
186
  https://ac.nowcoder.com/acm/contest/34649
204
187
 
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
188
+ There are 5 contests on Luogu,NowCoder in the next 7 days
211
189
 
212
190
  OJ: NowCoder
213
191
  Contest name: 第二届天元编程邀请赛(提高组)
@@ -251,40 +229,35 @@ https://www.luogu.com.cn/contest/67377
251
229
  <summary> <code>> lsct -o at cf -d 7 -r --no-sort</code> </summary>
252
230
 
253
231
  ```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
- ]
232
+ {
233
+ "running": [],
234
+ "upcoming": [
235
+ {
236
+ "ojName": "AtCoder",
237
+ "name": "Ⓐ Panasonic Programming Contest 2022(AtCoder Beginner Contest 251)",
238
+ "rule": "AtCoder",
239
+ "startTime": "2022-05-14T12:00:00.000Z",
240
+ "endTime": "2022-05-14T13:40:00.000Z",
241
+ "url": "https://atcoder.jp/contests/abc251"
242
+ },
243
+ {
244
+ "ojName": "AtCoder",
245
+ "name": "Ⓐ AtCoder Regular Contest 140",
246
+ "rule": "AtCoder",
247
+ "startTime": "2022-05-15T12:00:00.000Z",
248
+ "endTime": "2022-05-15T14:00:00.000Z",
249
+ "url": "https://atcoder.jp/contests/arc140"
250
+ },
251
+ {
252
+ "ojName": "Codeforces",
253
+ "name": "Codeforces Round #791 (Div. 2)",
254
+ "rule": "Codeforces",
255
+ "startTime": "2022-05-14T09:35:00.000Z",
256
+ "endTime": "2022-05-14T11:35:00.000Z",
257
+ "url": "https://codeforces.com/contests/1679"
258
+ }
259
+ ]
260
+ }
288
261
  ```
289
262
 
290
263
  </details>
@@ -299,7 +272,7 @@ If you want to get a list of contest information in your project by calling *lsc
299
272
  ```typescript
300
273
  import { getContestInfo } from "lscontests";
301
274
 
302
- getContestInfo({ abbrList: ["cf", "lg"] }).then(console.log);
275
+ getContestsInfoText({ abbrList: ["cf", "lg"] }).then(console.log);
303
276
  ```
304
277
 
305
278
  This code gives the same result as `lsct -o cf lg`.
@@ -309,7 +282,7 @@ This code gives the same result as `lsct -o cf lg`.
309
282
  ```typescript
310
283
  import { getContestList } from "lscontests";
311
284
 
312
- getContestList({ sort: false }).then(console.log);
285
+ getContests({ sort: false }).then(console.log);
313
286
  ```
314
287
 
315
288
  This code gives the same result as `lsct -r --no-sort`.
@@ -317,23 +290,23 @@ This code gives the same result as `lsct -r --no-sort`.
317
290
  #### Add OJ support
318
291
 
319
292
  ```typescript
320
- import { addOJ, getContestInfo, getContestList } from "lscontests";
293
+ import { addOJ, getContestsInfoText, getContests } from "lscontests";
321
294
 
322
295
  addOJ("ts", {
323
296
  name: "testOJ", get: async () => [{
324
297
  ojName: "testOJ",
325
298
  name: "testContest",
326
299
  rule: "ICPC",
327
- startTime: new Date(Date.now() + 1 * 86400000),
328
- endTime: new Date(Date.now() + 2 * 86400000),
300
+ startTime: new Date(Date.now() - 1),
301
+ endTime: new Date(Date.now() + 3600000),
329
302
  url: "https://www.test.com"
330
303
  }]
331
304
  });
332
305
 
333
306
  async function main() {
334
- console.log(await getContestInfo({ abbrList: ["cf", "ts"], days: 1 }, "en"));
307
+ console.log(await getContestsInfoText({ abbrList: ["cf", "ts"], days: 1 }, "en"));
335
308
  console.log();
336
- console.log(await getContestList({ abbrList: ["cf", "ts"], days: 7 }));
309
+ console.log(await getContests({ abbrList: ["at", "ts"], days: 7 }));
337
310
  }
338
311
 
339
312
  main();
@@ -342,41 +315,61 @@ main();
342
315
  This code gives the following results:
343
316
 
344
317
  ```text
345
- 1 contests on Codeforces,testOJ in the last 1 days
318
+ There are 2 contests is running on Codeforces,testOJ
319
+
320
+ OJ: Codeforces
321
+ Contest name: Educational Codeforces Round 128 (Rated for Div. 2)
322
+ Rule: ICPC
323
+ Start time: 2022/5/13 22:35:00
324
+ End time: 2022/5/14 00:35:00
325
+ https://codeforces.com/contests/1680
346
326
 
347
327
  OJ: testOJ
348
328
  Contest name: testContest
349
329
  Rule: ICPC
350
- Start time: 2022/5/13 19:34:10
351
- End time: 2022/5/14 19:34:10
330
+ Start time: 2022/5/13 23:23:31
331
+ End time: 2022/5/14 00:23:31
352
332
  https://www.test.com
353
333
 
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
- ]
334
+ There are 1 contests on Codeforces,testOJ in the next 1 days
335
+
336
+ OJ: Codeforces
337
+ Contest name: Codeforces Round #791 (Div. 2)
338
+ Rule: Codeforces
339
+ Start time: 2022/5/14 17:35:00
340
+ End time: 2022/5/14 19:35:00
341
+ https://codeforces.com/contests/1679
342
+
343
+ {
344
+ running: [
345
+ {
346
+ ojName: 'testOJ',
347
+ name: 'testContest',
348
+ rule: 'ICPC',
349
+ startTime: 2022-05-13T15:23:37.245Z,
350
+ endTime: 2022-05-13T16:23:37.246Z,
351
+ url: 'https://www.test.com'
352
+ }
353
+ ],
354
+ upcoming: [
355
+ {
356
+ ojName: 'AtCoder',
357
+ name: 'Ⓐ Panasonic Programming Contest 2022(AtCoder Beginner Contest 251)',
358
+ rule: 'AtCoder',
359
+ startTime: 2022-05-14T12:00:00.000Z,
360
+ endTime: 2022-05-14T13:40:00.000Z,
361
+ url: 'https://atcoder.jp/contests/abc251'
362
+ },
363
+ {
364
+ ojName: 'AtCoder',
365
+ name: 'Ⓐ AtCoder Regular Contest 140',
366
+ rule: 'AtCoder',
367
+ startTime: 2022-05-15T12:00:00.000Z,
368
+ endTime: 2022-05-15T14:00:00.000Z,
369
+ url: 'https://atcoder.jp/contests/arc140'
370
+ }
371
+ ]
372
+ }
380
373
  ```
381
374
 
382
375
  #### 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":";;;;;;;;;;;;;;;AAAA,iCAAiC;AACjC,qCAAuC;AACvC,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,cAAc,CAAC,MAAe;;QAEhD,MAAM,GAAG,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;QAClC,MAAM,QAAQ,GAAG,CAAC,MAAM,OAAO,CAAC,GAAG,CAC/B,GAAG,CAAC,QAAQ,CAAC,GAAG,CACZ,CAAM,IAAI,EAAC,EAAE;YAET,IACA;gBACI,MAAM,GAAG,GAAG,MAAM,UAAK,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC;gBACpC,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC;aACvF;YACD,OAAM,CAAC,EACP;gBACI,OAAO,CAAC,KAAK,CAAC,uCAAuC,UAAK,CAAC,IAAI,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC;gBACnF,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBACjB,OAAO,EAAE,CAAC;aACb;QACL,CAAC,CAAA,CACJ,CACJ,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QACzC,IAAG,GAAG,CAAC,IAAI;YAAE,QAAQ,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;QACpF,OAAO,QAAQ,CAAC;IACpB,CAAC;CAAA;AAvBD,wCAuBC;AAED,SAAsB,cAAc,CAAC,MAAe,EAAE,QAAQ,GAAG,OAAO;;QAEpE,MAAM,GAAG,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;QAClC,MAAM,IAAI,GAAG,MAAM,IAAA,oBAAW,EAAC,QAAQ,CAAC,CAAC;QACzC,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,GAAG,CAAC,CAAC;QAC3C,MAAM,IAAI,GAAa,EAAE,CAAC;QAC1B,IAAI,CAAC,IAAI,CAAC,gBAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC/B,YAAY,EAAE,QAAQ,CAAC,MAAM;YAC7B,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,EAAE,EAAE,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,UAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;SAC3D,CAAC,CAAC,CAAC;QACJ,KAAI,MAAM,OAAO,IAAI,QAAQ,EAC7B;YACI,MAAM,GAAG,GAAa,EAAE,CAAC;YACzB,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;YAC9C,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;YAC1C,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;YAC1C,GAAG,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;YACpG,GAAG,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;YAChG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACtB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;SAC7B;QACD,OAAO,eAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5C,CAAC;CAAA;AAvBD,wCAuBC;AAED,6BAA4B;AAAnB,0FAAA,GAAG,OAAA;AACZ,+BAAiC;AAAxB,2FAAA,KAAK,OAAA"}
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": "赛制",
@@ -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
+ }
@@ -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.2",
4
4
  "description": "A tool to get information about the contests on each OJ",
5
5
  "keywords": [
6
6
  "cli",