lscontests 1.9.1 → 1.10.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -10,6 +10,8 @@
10
10
 
11
11
  A tool to get information about the contests on each OJ.
12
12
 
13
+ [中文文档](./README-zh-CN.md)
14
+
13
15
  ## Installation
14
16
 
15
17
  ### Only use CLI
@@ -18,7 +20,7 @@ For npm: `npm install -g lscontests`
18
20
 
19
21
  For yarn: `yarn global add lscontests`
20
22
 
21
- ### Add to your package
23
+ ### Add *lscontests* to your project
22
24
 
23
25
  For npm: `npm install lscontests --save`
24
26
 
@@ -28,7 +30,7 @@ For yarn: `yarn add lscontests`
28
30
 
29
31
  ### CLI
30
32
 
31
- You can use cli to get a list of information about upcoming contests easily.
33
+ You can use cli to get a list of information about contests easily.
32
34
 
33
35
  <!-- block_help begin -->
34
36
  ```text
@@ -38,7 +40,7 @@ Options:
38
40
  -V, --version output the version number
39
41
  -d, --days, <day> number of days to display (default: "3")
40
42
  -l, --list list all supported OJ and it's abbreviation
41
- -o, --oj <ojs...> OJs to display (choices: "at", "cf", "lg", "nc")
43
+ -o, --oj <ojs...> OJs to display (choices: "at", "cf", "lc", "lg", "nc")
42
44
  -r, --raw print raw contest list
43
45
  -L, --language <lang> set output language (choices: "en", "zh-CN", "zh-NE",
44
46
  "zh-TW", default: "zh-CN")
@@ -50,71 +52,13 @@ Options:
50
52
  It performs as follows:
51
53
 
52
54
  <!-- block_cli begin -->
53
- (*The following content was automatically generated in Fri, 13 May 2022 15:42:43 GMT*)
55
+ (*The following content was automatically generated by [semantic-release](https://github.com/semantic-release/semantic-release) in Sat, 14 May 2022 13:07:09 GMT*)
54
56
 
55
57
  <details>
56
58
  <summary> <code>> lsct </code> </summary>
57
59
 
58
60
  ```text
59
- 在 AtCoder,Codeforces,Luogu,NowCoder 上有 3 场正在进行的比赛
60
-
61
- 比赛平台: NowCoder
62
- 比赛名称:牛客竞赛博弈专题班 Sprague-Grundy 函数(SG 函数、图游戏、Nim 和)
63
- 赛制: ICPC
64
- 开始时间: 5/13/2022, 04:00:00
65
- 结束时间: 5/21/2022, 13:00:00
66
- https://ac.nowcoder.com/acm/contest/34655
67
-
68
- 比赛平台: NowCoder
69
- 比赛名称: 2022 图论班第一章图匹配例题与习题
70
- 赛制: ICPC
71
- 开始时间: 5/13/2022, 06:00:00
72
- 结束时间: 5/30/2022, 08:00:00
73
- https://ac.nowcoder.com/acm/contest/34649
74
-
75
- 比赛平台: Codeforces
76
- 比赛名称: Educational Codeforces Round 128 (Rated for Div. 2)
77
- 赛制: ICPC
78
- 开始时间: 5/13/2022, 14:35:00
79
- 结束时间: 5/13/2022, 16:35:00
80
- https://codeforces.com/contests/1680
81
-
82
- 接下来的 3 天内在 AtCoder,Codeforces,Luogu,NowCoder 上有 8 场比赛
83
-
84
- 比赛平台: NowCoder
85
- 比赛名称:第二届天元编程邀请赛(提高组)
86
- 赛制: IOI
87
- 开始时间: 5/14/2022, 04:30:00
88
- 结束时间: 5/14/2022, 09:00:00
89
- https://ac.nowcoder.com/acm/contest/33335
90
-
91
- 比赛平台: NowCoder
92
- 比赛名称:第二届天元编程邀请赛(普及组)
93
- 赛制: IOI
94
- 开始时间: 5/14/2022, 04:30:00
95
- 结束时间: 5/14/2022, 08:00:00
96
- https://ac.nowcoder.com/acm/contest/33341
97
-
98
- 比赛平台: NowCoder
99
- 比赛名称:第十八届西南科技大学 ACM 程序设计竞赛(同步赛)
100
- 赛制: ICPC
101
- 开始时间: 5/14/2022, 05:00:00
102
- 结束时间: 5/14/2022, 10:00:00
103
- https://ac.nowcoder.com/acm/contest/33540
104
-
105
- 比赛平台: Luogu
106
- 比赛名称: 【LGR-109】洛谷 5 月月赛 II & Windy Round 6
107
- 赛制: IOI
108
- 开始时间: 5/14/2022, 06:00:00
109
- 结束时间: 5/14/2022, 10:00:00
110
- https://www.luogu.com.cn/contest/68326
111
-
112
- 比赛平台: Codeforces
113
- 比赛名称: Codeforces Round #791 (Div. 2)
114
- 赛制: Codeforces
115
- 开始时间: 5/14/2022, 09:35:00
116
- 结束时间: 5/14/2022, 11:35:00
117
- https://codeforces.com/contests/1679
61
+ 在 AtCoder,Codeforces,LeetCode,Luogu,NowCoder 上有 1 场正在进行的比赛
118
62
 
119
63
  比赛平台: AtCoder
120
64
  比赛名称: Ⓐ Panasonic Programming Contest 2022 (AtCoder Beginner Contest 251)
@@ -123,6 +67,22 @@ https://codeforces.com/contests/1679
123
67
  结束时间: 5/14/2022, 13:40:00
124
68
  https://atcoder.jp/contests/abc251
125
69
 
70
+ 接下来的 3 天内在 AtCoder,Codeforces,LeetCode,Luogu,NowCoder 上有 4 场比赛
71
+
72
+ 比赛平台: LeetCode
73
+ 比赛名称: Biweekly Contest 78
74
+ 赛制: AtCoder
75
+ 开始时间: 5/14/2022, 14:30:00
76
+ 结束时间: 5/14/2022, 16:00:00
77
+ https://leetcode.com/contest/biweekly-contest-78
78
+
79
+ 比赛平台: LeetCode
80
+ 比赛名称: Weekly Contest 293
81
+ 赛制: AtCoder
82
+ 开始时间: 5/15/2022, 02:30:00
83
+ 结束时间: 5/15/2022, 04:00:00
84
+ https://leetcode.com/contest/weekly-contest-293
85
+
126
86
  比赛平台: Luogu
127
87
  比赛名称: 「WHOI」Round 1
128
88
  赛制: IOI
@@ -141,100 +101,26 @@ https://atcoder.jp/contests/arc140
141
101
  </details>
142
102
 
143
103
  <details>
144
- <summary> <code>> lsct -o at cf -d 7</code> </summary>
104
+ <summary> <code>> lsct -o at cf -d 7 -L en</code> </summary>
145
105
 
146
106
  ```text
147
- AtCoder,Codeforces 上有 1 场正在进行的比赛
148
-
149
- 比赛平台: Codeforces
150
- 比赛名称: Educational Codeforces Round 128 (Rated for Div. 2)
151
- 赛制: ICPC
152
- 开始时间: 5/13/2022, 14:35:00
153
- 结束时间: 5/13/2022, 16:35:00
154
- https://codeforces.com/contests/1680
155
-
156
- 接下来的 7 天内在 AtCoder,Codeforces 上有 3 场比赛
157
-
158
- 比赛平台: Codeforces
159
- 比赛名称: Codeforces Round #791 (Div. 2)
160
- 赛制: Codeforces
161
- 开始时间: 5/14/2022, 09:35:00
162
- 结束时间: 5/14/2022, 11:35:00
163
- https://codeforces.com/contests/1679
107
+ There are 1 contests is running on AtCoder,Codeforces
164
108
 
165
- 比赛平台: AtCoder
166
- 比赛名称: Ⓐ Panasonic Programming Contest 2022 (AtCoder Beginner Contest 251)
167
- 赛制: AtCoder
168
- 开始时间: 5/14/2022, 12:00:00
169
- 结束时间: 5/14/2022, 13:40:00
109
+ OJ: AtCoder
110
+ Contest name: Ⓐ Panasonic Programming Contest 2022(AtCoder Beginner Contest 251)
111
+ Rule: AtCoder
112
+ Start time: 5/14/2022, 12:00:00
113
+ End time: 5/14/2022, 13:40:00
170
114
  https://atcoder.jp/contests/abc251
171
115
 
172
- 比赛平台: AtCoder
173
- 比赛名称: Ⓐ AtCoder Regular Contest 140
174
- 赛制: AtCoder
175
- 开始时间: 5/15/2022, 12:00:00
176
- 结束时间: 5/15/2022, 14:00:00
177
- https://atcoder.jp/contests/arc140
178
- ```
179
-
180
- </details>
116
+ There are 1 contests on AtCoder,Codeforces in the next 7 days
181
117
 
182
- <details>
183
- <summary> <code>> lsct -o lg nc -d 7 -L en</code> </summary>
184
-
185
- ```text
186
- There are 2 contests is running on Luogu,NowCoder
187
-
188
- OJ: NowCoder
189
- Contest name: 牛客竞赛博弈专题班 Sprague-Grundy 函数(SG 函数、图游戏、Nim 和)
190
- Rule: ICPC
191
- Start time: 5/13/2022, 04:00:00
192
- End time: 5/21/2022, 13:00:00
193
- https://ac.nowcoder.com/acm/contest/34655
194
-
195
- OJ: NowCoder
196
- Contest name: 2022 图论班第一章图匹配例题与习题
197
- Rule: ICPC
198
- Start time: 5/13/2022, 06:00:00
199
- End time: 5/30/2022, 08:00:00
200
- https://ac.nowcoder.com/acm/contest/34649
201
-
202
- There are 5 contests on Luogu,NowCoder in the next 7 days
203
-
204
- OJ: NowCoder
205
- Contest name: 第二届天元编程邀请赛(提高组)
206
- Rule: IOI
207
- Start time: 5/14/2022, 04:30:00
208
- End time: 5/14/2022, 09:00:00
209
- https://ac.nowcoder.com/acm/contest/33335
210
-
211
- OJ: NowCoder
212
- Contest name: 第二届天元编程邀请赛(普及组)
213
- Rule: IOI
214
- Start time: 5/14/2022, 04:30:00
215
- End time: 5/14/2022, 08:00:00
216
- https://ac.nowcoder.com/acm/contest/33341
217
-
218
- OJ: NowCoder
219
- Contest name: 第十八届西南科技大学 ACM 程序设计竞赛(同步赛)
220
- Rule: ICPC
221
- Start time: 5/14/2022, 05:00:00
222
- End time: 5/14/2022, 10:00:00
223
- https://ac.nowcoder.com/acm/contest/33540
224
-
225
- OJ: Luogu
226
- Contest name: 【LGR-109】洛谷 5 月月赛 II & Windy Round 6
227
- Rule: IOI
228
- Start time: 5/14/2022, 06:00:00
229
- End time: 5/14/2022, 10:00:00
230
- https://www.luogu.com.cn/contest/68326
231
-
232
- OJ: Luogu
233
- Contest name: 「WHOI」Round 1
234
- Rule: IOI
235
- Start time: 5/15/2022, 06:00:00
236
- End time: 5/15/2022, 10:00:00
237
- https://www.luogu.com.cn/contest/67377
118
+ OJ: AtCoder
119
+ Contest name: AtCoder Regular Contest 140
120
+ Rule: AtCoder
121
+ Start time: 5/15/2022, 12:00:00
122
+ End time: 5/15/2022, 14:00:00
123
+ https://atcoder.jp/contests/arc140
238
124
  ```
239
125
 
240
126
  </details>
@@ -245,16 +131,6 @@ https://www.luogu.com.cn/contest/67377
245
131
  ```json
246
132
  {
247
133
  "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
134
  {
259
135
  "ojName": "AtCoder",
260
136
  "name": "Ⓐ Panasonic Programming Contest 2022(AtCoder Beginner Contest 251)",
@@ -262,7 +138,9 @@ https://www.luogu.com.cn/contest/67377
262
138
  "startTime": "2022-05-14T12:00:00.000Z",
263
139
  "endTime": "2022-05-14T13:40:00.000Z",
264
140
  "url": "https://atcoder.jp/contests/abc251"
265
- },
141
+ }
142
+ ],
143
+ "upcoming": [
266
144
  {
267
145
  "ojName": "AtCoder",
268
146
  "name": "Ⓐ AtCoder Regular Contest 140",
@@ -270,14 +148,6 @@ https://www.luogu.com.cn/contest/67377
270
148
  "startTime": "2022-05-15T12:00:00.000Z",
271
149
  "endTime": "2022-05-15T14:00:00.000Z",
272
150
  "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
151
  }
282
152
  ]
283
153
  }
@@ -288,9 +158,11 @@ https://www.luogu.com.cn/contest/67377
288
158
 
289
159
  ### API
290
160
 
161
+ For more detailed API documentation, please visit <https://lsct.agoh.xyz>.
162
+
291
163
  If you want to get a list of contest information in your project by calling *lscontests*, or if you need to add support for other OJs, then you can call the *lscontests* API as follows:
292
164
 
293
- #### Get contests information string
165
+ #### Get text for contests information
294
166
 
295
167
  ```typescript
296
168
  import { getContestInfo } from "lscontests";
@@ -300,7 +172,7 @@ getContestsInfoText({ abbrList: ["cf", "lg"] }).then(console.log);
300
172
 
301
173
  This code gives the same result as `lsct -o cf lg`.
302
174
 
303
- #### Get contests information list
175
+ #### Get list for contests information
304
176
 
305
177
  ```typescript
306
178
  import { getContestList } from "lscontests";
@@ -310,7 +182,7 @@ getContests({ sort: false }).then(console.log);
310
182
 
311
183
  This code gives the same result as `lsct -r --no-sort`.
312
184
 
313
- #### Add OJ support
185
+ #### Add support for other OJ
314
186
 
315
187
  ```typescript
316
188
  import { addOJ, getContestsInfoText, getContests } from "lscontests";
package/dist/cli.d.ts CHANGED
@@ -1,2 +1,8 @@
1
1
  #!/usr/bin/env node
2
+ /**
3
+ * CLI entrypoint
4
+ * @param arg Arguments
5
+ * @param name Program name
6
+ * @returns CLI output content
7
+ */
2
8
  export declare function cli(arg?: string, name?: string): Promise<string>;
package/dist/cli.js CHANGED
@@ -31,6 +31,12 @@ function initCmd() {
31
31
  .addOption(new commander_1.Option("-L, --language <lang>", "set output language").default("zh-CN").choices(locale_1.langList))
32
32
  .option("--no-sort", "do not sort by contests start time, but by OJ order");
33
33
  }
34
+ /**
35
+ * CLI entrypoint
36
+ * @param arg Arguments
37
+ * @param name Program name
38
+ * @returns CLI output content
39
+ */
34
40
  function cli(arg, name) {
35
41
  return __awaiter(this, void 0, void 0, function* () {
36
42
  const cmd = initCmd();
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,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"}
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;AAGD;;;;;GAKG;AACH,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
@@ -4,10 +4,21 @@ export declare type config = {
4
4
  days?: number;
5
5
  sort?: boolean;
6
6
  };
7
+ /**
8
+ * Get the list of all contests matching the given config
9
+ * @param config The config of contests that want to get
10
+ * @returns A Promise that contains an array of all contests that match the given config
11
+ */
7
12
  export declare function getContests(config?: config): Promise<{
8
13
  running: contest[];
9
14
  upcoming: contest[];
10
15
  }>;
16
+ /**
17
+ * Get the detailed text of all contests matching the given config
18
+ * @param config The config of contests that want to get
19
+ * @param language Language of the output text
20
+ * @returns A string containing detail text of contests that match the given config
21
+ */
11
22
  export declare function getContestsInfoText(config?: config, language?: string): Promise<string>;
12
23
  export { cli } from "./cli";
13
24
  export { addOJ } from "./lib/oj";
package/dist/index.js CHANGED
@@ -28,6 +28,11 @@ function resolveConfig(config) {
28
28
  cfg.abbrList = defaultConfig.abbrList;
29
29
  return cfg;
30
30
  }
31
+ /**
32
+ * Get the list of all contests matching the given config
33
+ * @param config The config of contests that want to get
34
+ * @returns A Promise that contains an array of all contests that match the given config
35
+ */
31
36
  function getContests(config) {
32
37
  return __awaiter(this, void 0, void 0, function* () {
33
38
  const cfg = resolveConfig(config);
@@ -38,7 +43,7 @@ function getContests(config) {
38
43
  return (yield oj_1.alloj[abbr].get()).filter(fn);
39
44
  }
40
45
  catch (e) {
41
- console.error(`Failed to get match information for ${oj_1.alloj[abbr].name}, details:`);
46
+ console.error(`Failed to get contest information for ${oj_1.alloj[abbr].name}, details:`);
42
47
  console.error(e);
43
48
  return [];
44
49
  }
@@ -55,6 +60,12 @@ function getContests(config) {
55
60
  });
56
61
  }
57
62
  exports.getContests = getContests;
63
+ /**
64
+ * Get the detailed text of all contests matching the given config
65
+ * @param config The config of contests that want to get
66
+ * @param language Language of the output text
67
+ * @returns A string containing detail text of contests that match the given config
68
+ */
58
69
  function getContestsInfoText(config, language = "zh-CN") {
59
70
  return __awaiter(this, void 0, void 0, function* () {
60
71
  const cfg = resolveConfig(config);
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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"}
@@ -44,7 +44,7 @@ exports.at = {
44
44
  const response = yield axios_1.default.get("https://atcoder.jp/contests");
45
45
  const $ = cheerio.load(response.data);
46
46
  const contests = [];
47
- $("#contest-table-upcoming table > tbody > tr").each(function () {
47
+ $("#contest-table-upcoming,#contest-table-action table > tbody > tr").each(function () {
48
48
  const ct = {
49
49
  ojName: exports.at.name,
50
50
  name: "",
@@ -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,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"}
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,kEAAkE,CAAC,CAAC,IAAI,CAAC;YAEvE,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"}
@@ -6,4 +6,9 @@ export declare type oj = {
6
6
  export declare const alloj: {
7
7
  [abbr: string]: oj;
8
8
  };
9
+ /**
10
+ * Add an OJ to get information about the contests held on it
11
+ * @param abbr Abbreviation of the OJ to be added
12
+ * @param oj OJ to be added
13
+ */
9
14
  export declare function addOJ(abbr: string, oj: oj): void;
@@ -3,14 +3,21 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.addOJ = exports.alloj = void 0;
4
4
  const atcoder_1 = require("./atcoder");
5
5
  const codeforces_1 = require("./codeforces");
6
+ const leetcode_1 = require("./leetcode");
6
7
  const luogu_1 = require("./luogu");
7
8
  const nowcoder_1 = require("./nowcoder");
8
9
  exports.alloj = {
9
10
  at: atcoder_1.at,
10
11
  cf: codeforces_1.cf,
12
+ lc: leetcode_1.lc,
11
13
  lg: luogu_1.lg,
12
14
  nc: nowcoder_1.nc,
13
15
  };
16
+ /**
17
+ * Add an OJ to get information about the contests held on it
18
+ * @param abbr Abbreviation of the OJ to be added
19
+ * @param oj OJ to be added
20
+ */
14
21
  function addOJ(abbr, oj) {
15
22
  exports.alloj[abbr] = oj;
16
23
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/oj/index.ts"],"names":[],"mappings":";;;AACA,uCAA+B;AAC/B,6CAAkC;AAClC,mCAA6B;AAC7B,yCAAgC;AAOnB,QAAA,KAAK,GAA4B;IAC1C,EAAE,EAAF,YAAE;IACF,EAAE,EAAF,eAAE;IACF,EAAE,EAAF,UAAE;IACF,EAAE,EAAF,aAAE;CACL,CAAC;AAEF,SAAgB,KAAK,CAAC,IAAY,EAAE,EAAM;IAEtC,aAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;AACrB,CAAC;AAHD,sBAGC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/oj/index.ts"],"names":[],"mappings":";;;AACA,uCAA+B;AAC/B,6CAAkC;AAClC,yCAAgC;AAChC,mCAA6B;AAC7B,yCAAgC;AAOnB,QAAA,KAAK,GAA4B;IAC1C,EAAE,EAAF,YAAE;IACF,EAAE,EAAF,eAAE;IACF,EAAE,EAAF,aAAE;IACF,EAAE,EAAF,UAAE;IACF,EAAE,EAAF,aAAE;CACL,CAAC;AAEF;;;;GAIG;AACH,SAAgB,KAAK,CAAC,IAAY,EAAE,EAAM;IAEtC,aAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;AACrB,CAAC;AAHD,sBAGC"}
@@ -0,0 +1,2 @@
1
+ import { oj } from ".";
2
+ export declare const lc: oj;
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
+ return new (P || (P = Promise))(function (resolve, reject) {
28
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
31
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
32
+ });
33
+ };
34
+ var __importDefault = (this && this.__importDefault) || function (mod) {
35
+ return (mod && mod.__esModule) ? mod : { "default": mod };
36
+ };
37
+ Object.defineProperty(exports, "__esModule", { value: true });
38
+ exports.lc = void 0;
39
+ const axios_1 = __importDefault(require("axios"));
40
+ const cheerio = __importStar(require("cheerio"));
41
+ const headers = {
42
+ "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.54 Safari/537.36",
43
+ };
44
+ exports.lc = {
45
+ name: "LeetCode",
46
+ get: () => __awaiter(void 0, void 0, void 0, function* () {
47
+ var _a;
48
+ const response = yield axios_1.default.get("https://leetcode.com/contest", { headers });
49
+ const $ = cheerio.load(response.data);
50
+ const resList = JSON.parse((_a = $("#__NEXT_DATA__").html()) !== null && _a !== void 0 ? _a : "")
51
+ .props.pageProps.dehydratedState.queries
52
+ .find((v) => v.queryKey[0] == "topTwoContests")
53
+ .state.data.topTwoContests;
54
+ return resList.map((res) => {
55
+ return {
56
+ ojName: exports.lc.name,
57
+ name: res.title,
58
+ rule: "AtCoder",
59
+ startTime: new Date(res.startTime * 1000),
60
+ endTime: new Date((res.startTime + res.duration) * 1000),
61
+ url: `https://leetcode.com/contest/${res.titleSlug}`
62
+ };
63
+ });
64
+ })
65
+ };
66
+ //# sourceMappingURL=leetcode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"leetcode.js","sourceRoot":"","sources":["../../../src/lib/oj/leetcode.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAA0B;AAC1B,iDAAmC;AAYnC,MAAM,OAAO,GAAG;IACZ,YAAY,EAAE,qHAAqH;CACtI,CAAC;AAEW,QAAA,EAAE,GAAO;IAClB,IAAI,EAAE,UAAU;IAChB,GAAG,EAAE,GAAS,EAAE;;QAEZ,MAAM,QAAQ,GAAG,MAAM,eAAK,CAAC,GAAG,CAAC,8BAA8B,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;QAC9E,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACtC,MAAM,OAAO,GAAa,IAAI,CAAC,KAAK,CAAC,MAAA,CAAC,CAAC,gBAAgB,CAAC,CAAC,IAAI,EAAE,mCAAI,EAAE,CAAC;aACjE,KAAK,CAAC,SAAS,CAAC,eAAe,CAAC,OAAO;aACvC,IAAI,CAAC,CAAC,CAA2B,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,gBAAgB,CAAC;aACxE,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC;QAC/B,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAW,EAAE;YAEhC,OAAO;gBACH,MAAM,EAAE,UAAE,CAAC,IAAI;gBACf,IAAI,EAAE,GAAG,CAAC,KAAK;gBACf,IAAI,EAAE,SAAS;gBACf,SAAS,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC;gBACzC,OAAO,EAAE,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,SAAS,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;gBACxD,GAAG,EAAE,gCAAgC,GAAG,CAAC,SAAS,EAAE;aACvD,CAAC;QACN,CAAC,CAAC,CAAC;IACP,CAAC,CAAA;CACJ,CAAC"}
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "runnning": "搁 ${oj} 上有 ${contestCount} 场比赛正干着呢",
3
- "norunning": " ${oj} 上没有正打着的比赛",
4
- "upcoming": "之后 ${days} 天搁在 ${oj} 上统共是有 ${contestCount} 场比赛",
5
- "noupcoming": "往后 ${days} 天搁 ${oj} 没比赛啊",
3
+ "norunning": "这前搁 ${oj} 上没比赛打",
4
+ "upcoming": "之后 ${days} 天搁 ${oj} 上拢共 ${contestCount} 场比赛",
5
+ "noupcoming": "没成想往后 ${days} 天搁 ${oj} 没比赛打啊",
6
6
  "ojName": "搁哪",
7
7
  "name": "叫啥",
8
- "rule": "啥形式",
9
- "startTime": "啥时候开整",
10
- "endTime": "啥时候完事"
8
+ "rule": "咋个整法",
9
+ "startTime": "啥前开始",
10
+ "endTime": "多前完事"
11
11
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lscontests",
3
- "version": "1.9.1",
3
+ "version": "1.10.1",
4
4
  "description": "A tool to get information about the contests on each OJ",
5
5
  "keywords": [
6
6
  "cli",
@@ -26,7 +26,7 @@
26
26
  "scripts": {
27
27
  "build": "rimraf ./dist/* && tsc -p src",
28
28
  "clean": "rimraf ./dist",
29
- "docs": "typedoc --out docs ./src/index.ts",
29
+ "docs": "typedoc --footerTypedocVersion --footerDate --footerTime",
30
30
  "lint": "eslint && markdownlint README.md",
31
31
  "prestart": "yarn build",
32
32
  "start": "node ./dist/cli.js"
@@ -49,6 +49,7 @@
49
49
  "markdownlint-cli": "^0.31.1",
50
50
  "rimraf": "^3.0.2",
51
51
  "typedoc": "^0.22.15",
52
+ "typedoc-plugin-extras": "^2.2.3",
52
53
  "typescript": "^4.6.4"
53
54
  },
54
55
  "config": {