lscontests 1.8.10 → 1.8.13

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
@@ -1,21 +1,36 @@
1
1
  # lscontests
2
2
 
3
3
  [![GitHub Repo stars](https://img.shields.io/github/stars/StableAgOH/lscontests?style=social)](https://github.com/StableAgOH/lscontests)
4
- [![GitHub commit activity](https://img.shields.io/github/commit-activity/m/StableAgOH/lscontests)](https://github.com/StableAgOH/lscontests)
4
+ [![GitHub commit activity](https://img.shields.io/github/commit-activity/m/StableAgOH/lscontests?logo=github)](https://github.com/StableAgOH/lscontests)
5
5
  [![License](https://img.shields.io/github/license/StableAgOH/lscontests)](https://github.com/StableAgOH/lscontests)
6
6
  [![semantic-release: angular](https://img.shields.io/badge/semantic--release-angular-e10079?logo=semantic-release)](https://github.com/semantic-release/semantic-release)
7
7
 
8
- [![npm](https://img.shields.io/npm/v/lscontests)](https://www.npmjs.com/package/lscontests)
9
- [![npm](https://img.shields.io/npm/dw/lscontests)](https://www.npmjs.com/package/lscontests)
8
+ [![npm](https://img.shields.io/npm/v/lscontests?logo=npm)](https://www.npmjs.com/package/lscontests)
9
+ [![npm](https://img.shields.io/npm/dw/lscontests?logo=npm)](https://www.npmjs.com/package/lscontests)
10
10
 
11
11
  A tool to get information about the contests on each OJ.
12
12
 
13
+ ## Installation
14
+
15
+ ### Only use CLI
16
+
17
+ For npm: `npm install -g lscontests`
18
+
19
+ For yarn: `yarn global add lscontests`
20
+
21
+ ### Add to your package
22
+
23
+ For npm: `npm install lscontests --save`
24
+
25
+ For yarn: `yarn add lscontests`
26
+
13
27
  ## Usage
14
28
 
15
29
  ### CLI
16
30
 
17
31
  You can use cli to get a list of information about upcoming contests easily.
18
32
 
33
+ <!-- block_help begin -->
19
34
  ```text
20
35
  Usage: lsct [options]
21
36
 
@@ -25,96 +40,234 @@ Options:
25
40
  -l, --list list all supported OJ and it's abbreviation
26
41
  -o, --oj <ojs...> OJs to display (choices: "at", "cf", "lg", "nc")
27
42
  -r, --raw print raw contest list
28
- -L, --language <lang> set output language (choices: "en", "zh-CN", "zh-TW", default: "zh-CN")
43
+ -L, --language <lang> set output language (choices: "en", "zh-CN", "zh-TW",
44
+ default: "zh-CN")
29
45
  --no-sort do not sort by contests start time, but by OJ order
30
46
  -h, --help display help for command
31
47
  ```
48
+ <!-- block_help end -->
32
49
 
33
50
  It performs as follows:
34
51
 
52
+ <!-- block_cli begin -->
53
+ (*The following content was automatically generated in Fri, 13 May 2022 13:22:53 GMT*)
54
+
35
55
  <details>
36
- <summary> <code>> lsct</code> </summary>
56
+ <summary> <code>> lsct </code> </summary>
37
57
 
38
58
  ```text
39
- 最近的 3 天内在 AtCoder,Codeforces,Luogu,NowCoder 上有 7 场比赛
59
+ 最近的 3 天内在 AtCoder,Codeforces,Luogu,NowCoder 上有 12 场比赛
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
40
74
 
41
75
  比赛平台: NowCoder
42
- 比赛名称: 牛客挑战赛60
76
+ 比赛名称:牛客挑战赛 60
43
77
  赛制: ICPC
44
- 开始时间: 2022/5/13 19:00:00
45
- 结束时间: 2022/5/13 22:00:00
78
+ 开始时间: 5/13/2022, 11:00:00
79
+ 结束时间: 5/13/2022, 14:00:00
46
80
  https://ac.nowcoder.com/acm/contest/11200
47
81
 
48
82
  比赛平台: Codeforces
49
83
  比赛名称: Educational Codeforces Round 128 (Rated for Div. 2)
50
84
  赛制: ICPC
51
- 开始时间: 2022/5/13 22:35:00
52
- 结束时间: 2022/5/14 00:35:00
85
+ 开始时间: 5/13/2022, 14:35:00
86
+ 结束时间: 5/13/2022, 16:35:00
53
87
  https://codeforces.com/contests/1680
54
88
 
55
- ......
89
+ 比赛平台: NowCoder
90
+ 比赛名称:第二届天元编程邀请赛(提高组)
91
+ 赛制: IOI
92
+ 开始时间: 5/14/2022, 04:30:00
93
+ 结束时间: 5/14/2022, 09:00:00
94
+ https://ac.nowcoder.com/acm/contest/33335
95
+
96
+ 比赛平台: NowCoder
97
+ 比赛名称:第二届天元编程邀请赛(普及组)
98
+ 赛制: IOI
99
+ 开始时间: 5/14/2022, 04:30:00
100
+ 结束时间: 5/14/2022, 08:00:00
101
+ https://ac.nowcoder.com/acm/contest/33341
102
+
103
+ 比赛平台: NowCoder
104
+ 比赛名称:第十八届西南科技大学 ACM 程序设计竞赛(同步赛)
105
+ 赛制: ICPC
106
+ 开始时间: 5/14/2022, 05:00:00
107
+ 结束时间: 5/14/2022, 10:00:00
108
+ https://ac.nowcoder.com/acm/contest/33540
109
+
110
+ 比赛平台: Luogu
111
+ 比赛名称: 【LGR-109】洛谷 5 月月赛 II & Windy Round 6
112
+ 赛制: IOI
113
+ 开始时间: 5/14/2022, 06:00:00
114
+ 结束时间: 5/14/2022, 10:00:00
115
+ https://www.luogu.com.cn/contest/68326
116
+
117
+ 比赛平台: Codeforces
118
+ 比赛名称: Codeforces Round #791 (Div. 2)
119
+ 赛制: Codeforces
120
+ 开始时间: 5/14/2022, 09:35:00
121
+ 结束时间: 5/14/2022, 11:35:00
122
+ https://codeforces.com/contests/1679
123
+
124
+ 比赛平台: AtCoder
125
+ 比赛名称: Ⓐ Panasonic Programming Contest 2022 (AtCoder Beginner Contest 251)
126
+ 赛制: AtCoder
127
+ 开始时间: 5/14/2022, 12:00:00
128
+ 结束时间: 5/14/2022, 13:40:00
129
+ https://atcoder.jp/contests/abc251
130
+
131
+ 比赛平台: Luogu
132
+ 比赛名称: 「WHOI」Round 1
133
+ 赛制: IOI
134
+ 开始时间: 5/15/2022, 06:00:00
135
+ 结束时间: 5/15/2022, 10:00:00
136
+ https://www.luogu.com.cn/contest/67377
137
+
138
+ 比赛平台: AtCoder
139
+ 比赛名称: Ⓐ AtCoder Regular Contest 140
140
+ 赛制: AtCoder
141
+ 开始时间: 5/15/2022, 12:00:00
142
+ 结束时间: 5/15/2022, 14:00:00
143
+ https://atcoder.jp/contests/arc140
56
144
  ```
57
145
 
58
146
  </details>
59
147
 
60
148
  <details>
61
- <summary> <code>> lsct -o at cf</code> </summary>
149
+ <summary> <code>> lsct -o at cf -d 7</code> </summary>
62
150
 
63
151
  ```text
64
- 最近的 3 天内在 AtCoder,Codeforces 上有 3 场比赛
152
+ 最近的 7 天内在 AtCoder,Codeforces 上有 4 场比赛
65
153
 
66
154
  比赛平台: Codeforces
67
155
  比赛名称: Educational Codeforces Round 128 (Rated for Div. 2)
68
156
  赛制: ICPC
69
- 开始时间: 2022/5/13 22:35:00
70
- 结束时间: 2022/5/14 00:35:00
157
+ 开始时间: 5/13/2022, 14:35:00
158
+ 结束时间: 5/13/2022, 16:35:00
71
159
  https://codeforces.com/contests/1680
72
160
 
73
161
  比赛平台: Codeforces
74
162
  比赛名称: Codeforces Round #791 (Div. 2)
75
163
  赛制: Codeforces
76
- 开始时间: 2022/5/14 17:35:00
77
- 结束时间: 2022/5/14 19:35:00
164
+ 开始时间: 5/14/2022, 09:35:00
165
+ 结束时间: 5/14/2022, 11:35:00
78
166
  https://codeforces.com/contests/1679
79
167
 
80
168
  比赛平台: AtCoder
81
- 比赛名称: Ⓐ Panasonic Programming Contest 2022(AtCoder Beginner Contest 251)
169
+ 比赛名称: Ⓐ Panasonic Programming Contest 2022 (AtCoder Beginner Contest 251)
82
170
  赛制: AtCoder
83
- 开始时间: 2022/5/14 20:00:00
84
- 结束时间: 2022/5/14 20:01:40
171
+ 开始时间: 5/14/2022, 12:00:00
172
+ 结束时间: 5/14/2022, 13:40:00
85
173
  https://atcoder.jp/contests/abc251
174
+
175
+ 比赛平台: AtCoder
176
+ 比赛名称: Ⓐ AtCoder Regular Contest 140
177
+ 赛制: AtCoder
178
+ 开始时间: 5/15/2022, 12:00:00
179
+ 结束时间: 5/15/2022, 14:00:00
180
+ https://atcoder.jp/contests/arc140
86
181
  ```
87
182
 
88
183
  </details>
89
184
 
90
185
  <details>
91
- <summary> <code>> lsct -o lg -d 7 -L en</code> </summary>
186
+ <summary> <code>> lsct -o lg nc -d 7 -L en</code> </summary>
92
187
 
93
188
  ```text
94
- 2 contests on Luogu in the last 7 days
189
+ 8 contests on Luogu,NowCoder in the last 7 days
190
+
191
+ OJ: NowCoder
192
+ Contest name: 牛客竞赛博弈专题班 Sprague-Grundy 函数(SG 函数、图游戏、Nim 和)
193
+ Rule: ICPC
194
+ Start time: 5/13/2022, 04:00:00
195
+ End time: 5/21/2022, 13:00:00
196
+ https://ac.nowcoder.com/acm/contest/34655
197
+
198
+ OJ: NowCoder
199
+ Contest name: 2022 图论班第一章图匹配例题与习题
200
+ Rule: ICPC
201
+ Start time: 5/13/2022, 06:00:00
202
+ End time: 5/30/2022, 08:00:00
203
+ https://ac.nowcoder.com/acm/contest/34649
204
+
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
211
+
212
+ OJ: NowCoder
213
+ Contest name: 第二届天元编程邀请赛(提高组)
214
+ Rule: IOI
215
+ Start time: 5/14/2022, 04:30:00
216
+ End time: 5/14/2022, 09:00:00
217
+ https://ac.nowcoder.com/acm/contest/33335
218
+
219
+ OJ: NowCoder
220
+ Contest name: 第二届天元编程邀请赛(普及组)
221
+ Rule: IOI
222
+ Start time: 5/14/2022, 04:30:00
223
+ End time: 5/14/2022, 08:00:00
224
+ https://ac.nowcoder.com/acm/contest/33341
225
+
226
+ OJ: NowCoder
227
+ Contest name: 第十八届西南科技大学 ACM 程序设计竞赛(同步赛)
228
+ Rule: ICPC
229
+ Start time: 5/14/2022, 05:00:00
230
+ End time: 5/14/2022, 10:00:00
231
+ https://ac.nowcoder.com/acm/contest/33540
95
232
 
96
233
  OJ: Luogu
97
234
  Contest name: 【LGR-109】洛谷 5 月月赛 II & Windy Round 6
98
235
  Rule: IOI
99
- Start time: 2022/5/14 14:00:00
100
- End time: 2022/5/14 18:00:00
236
+ Start time: 5/14/2022, 06:00:00
237
+ End time: 5/14/2022, 10:00:00
101
238
  https://www.luogu.com.cn/contest/68326
102
239
 
103
240
  OJ: Luogu
104
241
  Contest name: 「WHOI」Round 1
105
242
  Rule: IOI
106
- Start time: 2022/5/15 14:00:00
107
- End time: 2022/5/15 18:00:00
243
+ Start time: 5/15/2022, 06:00:00
244
+ End time: 5/15/2022, 10:00:00
108
245
  https://www.luogu.com.cn/contest/67377
109
246
  ```
110
247
 
111
248
  </details>
112
249
 
113
250
  <details>
114
- <summary> <code>> lsct -r -o cf --no-sort</code> </summary>
251
+ <summary> <code>> lsct -o at cf -d 7 -r --no-sort</code> </summary>
115
252
 
116
- ```bash
253
+ ```json
117
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
+ },
118
271
  {
119
272
  "ojName": "Codeforces",
120
273
  "name": "Codeforces Round #791 (Div. 2)",
@@ -135,6 +288,7 @@ https://www.luogu.com.cn/contest/67377
135
288
  ```
136
289
 
137
290
  </details>
291
+ <!-- block_cli end -->
138
292
 
139
293
  ### API
140
294
 
package/dist/index.js CHANGED
@@ -16,6 +16,7 @@ exports.addOJ = exports.cli = exports.getContestInfo = exports.getContestList =
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,
@@ -63,12 +64,12 @@ function getContestInfo(config, language = "zh-CN") {
63
64
  msg.push(`${lang.ojName}: ${contest.ojName}`);
64
65
  msg.push(`${lang.name}: ${contest.name}`);
65
66
  msg.push(`${lang.rule}: ${contest.rule}`);
66
- msg.push(`${lang.startTime}: ${contest.startTime.toLocaleString()}`);
67
- msg.push(`${lang.endTime}: ${contest.endTime.toLocaleString()}`);
67
+ msg.push(`${lang.startTime}: ${contest.startTime.toLocaleString(undefined, { hourCycle: "h23" })}`);
68
+ msg.push(`${lang.endTime}: ${contest.endTime.toLocaleString(undefined, { hourCycle: "h23" })}`);
68
69
  msg.push(contest.url);
69
70
  info.push(msg.join("\n"));
70
71
  }
71
- return info.join("\n\n");
72
+ return pangu_1.default.spacing(info.join("\n\n"));
72
73
  });
73
74
  }
74
75
  exports.getContestInfo = getContestInfo;
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"}
@@ -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"}
package/package.json CHANGED
@@ -1,18 +1,21 @@
1
1
  {
2
2
  "name": "lscontests",
3
- "version": "1.8.10",
3
+ "version": "1.8.13",
4
4
  "description": "A tool to get information about the contests on each OJ",
5
5
  "keywords": [
6
6
  "cli",
7
- "OJ",
8
- "Codeforces",
7
+ "crawler",
8
+ "oj",
9
+ "atcoder",
10
+ "codeforces",
11
+ "luogu",
12
+ "nowcoder",
9
13
  "competitive-programming"
10
14
  ],
11
15
  "repository": "https://github.com/StableAgOH/lscontests",
12
16
  "bugs": "https://github.com/StableAgOH/lscontests/issues",
13
17
  "author": "StableAgOH <stagoh17@gmail.com>",
14
18
  "license": "GPL-3.0",
15
- "private": false,
16
19
  "main": "./dist/index.js",
17
20
  "bin": {
18
21
  "lsct": "./dist/cli.js"
@@ -23,25 +26,29 @@
23
26
  "scripts": {
24
27
  "build": "rimraf ./dist/* && tsc -p src",
25
28
  "clean": "rimraf ./dist",
26
- "prepack": "yarn build"
29
+ "docs": "typedoc --out docs ./src/index.ts",
30
+ "lint": "eslint && markdownlint README.md",
31
+ "prestart": "yarn build",
32
+ "start": "node ./dist/cli.js"
27
33
  },
28
34
  "dependencies": {
29
35
  "axios": "^0.27.2",
30
36
  "cheerio": "^1.0.0-rc.10",
31
37
  "commander": "^9.2.0",
32
- "lodash": "^4.17.21"
38
+ "lodash": "^4.17.21",
39
+ "pangu": "^4.0.7"
33
40
  },
34
41
  "devDependencies": {
35
- "@semantic-release/changelog": "^6.0.1",
36
- "@semantic-release/git": "^10.0.1",
37
42
  "@types/lodash": "^4.14.182",
38
- "@types/node": "^17.0.31",
39
- "@typescript-eslint/eslint-plugin": "^5.22.0",
40
- "@typescript-eslint/parser": "^5.22.0",
43
+ "@types/node": "^17.0.33",
44
+ "@types/pangu": "^3.3.0",
45
+ "@typescript-eslint/eslint-plugin": "^5.23.0",
46
+ "@typescript-eslint/parser": "^5.23.0",
41
47
  "cz-conventional-changelog": "3.3.0",
42
- "eslint": "^8.14.0",
48
+ "eslint": "^8.15.0",
49
+ "markdownlint-cli": "^0.31.1",
43
50
  "rimraf": "^3.0.2",
44
- "semantic-release": "^19.0.2",
51
+ "typedoc": "^0.22.15",
45
52
  "typescript": "^4.6.4"
46
53
  },
47
54
  "config": {