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 +183 -29
- package/dist/index.js +4 -3
- package/dist/index.js.map +1 -1
- package/dist/lib/oj/atcoder.js +2 -2
- package/dist/lib/oj/atcoder.js.map +1 -1
- package/dist/lib/oj/nowcoder.js +2 -2
- package/dist/lib/oj/nowcoder.js.map +1 -1
- package/package.json +20 -13
package/README.md
CHANGED
@@ -1,21 +1,36 @@
|
|
1
1
|
# lscontests
|
2
2
|
|
3
3
|
[](https://github.com/StableAgOH/lscontests)
|
4
|
-
[](https://github.com/StableAgOH/lscontests)
|
4
|
+
[](https://github.com/StableAgOH/lscontests)
|
5
5
|
[](https://github.com/StableAgOH/lscontests)
|
6
6
|
[](https://github.com/semantic-release/semantic-release)
|
7
7
|
|
8
|
-
[](https://www.npmjs.com/package/lscontests)
|
9
|
-
[](https://www.npmjs.com/package/lscontests)
|
8
|
+
[](https://www.npmjs.com/package/lscontests)
|
9
|
+
[](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",
|
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 上有
|
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
|
-
|
76
|
+
比赛名称:牛客挑战赛 60
|
43
77
|
赛制: ICPC
|
44
|
-
开始时间:
|
45
|
-
结束时间:
|
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
|
-
开始时间:
|
52
|
-
结束时间:
|
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
|
-
最近的
|
152
|
+
最近的 7 天内在 AtCoder,Codeforces 上有 4 场比赛
|
65
153
|
|
66
154
|
比赛平台: Codeforces
|
67
155
|
比赛名称: Educational Codeforces Round 128 (Rated for Div. 2)
|
68
156
|
赛制: ICPC
|
69
|
-
开始时间:
|
70
|
-
结束时间:
|
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
|
-
开始时间:
|
77
|
-
结束时间:
|
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
|
-
开始时间:
|
84
|
-
结束时间:
|
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
|
-
|
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:
|
100
|
-
End time:
|
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:
|
107
|
-
End time:
|
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 -
|
251
|
+
<summary> <code>> lsct -o at cf -d 7 -r --no-sort</code> </summary>
|
115
252
|
|
116
|
-
```
|
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":";;;;;;;;;;;;;;;AAAA,iCAAiC;AACjC,qCAAuC;AACvC,oDAAuB;
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/oj/atcoder.js
CHANGED
@@ -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,
|
66
|
-
ct.endTime = new Date(ct.startTime.getTime() + (parseInt(h) * 60 + parseInt(
|
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;
|
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"}
|
package/dist/lib/oj/nowcoder.js
CHANGED
@@ -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,
|
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.
|
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
|
-
"
|
8
|
-
"
|
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
|
-
"
|
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.
|
39
|
-
"@
|
40
|
-
"@typescript-eslint/
|
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.
|
48
|
+
"eslint": "^8.15.0",
|
49
|
+
"markdownlint-cli": "^0.31.1",
|
43
50
|
"rimraf": "^3.0.2",
|
44
|
-
"
|
51
|
+
"typedoc": "^0.22.15",
|
45
52
|
"typescript": "^4.6.4"
|
46
53
|
},
|
47
54
|
"config": {
|