lscontests 1.8.9 → 1.8.12
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 -64
- package/dist/index.js +18 -8
- package/dist/index.js.map +1 -1
- package/dist/lib/oj/nowcoder.js +2 -2
- package/dist/lib/oj/nowcoder.js.map +1 -1
- package/dist/locale/en.json +1 -1
- package/dist/locale/zh-CN.json +1 -1
- package/dist/locale/zh-TW.json +1 -1
- package/package.json +20 -13
package/README.md
CHANGED
@@ -1,23 +1,38 @@
|
|
1
1
|
# lscontests
|
2
2
|
|
3
|
-

|
4
|
-

|
5
|
-
](https://github.com/StableAgOH/lscontests)
|
4
|
+
[](https://github.com/StableAgOH/lscontests)
|
5
|
+
[](https://github.com/StableAgOH/lscontests)
|
6
6
|
[](https://github.com/semantic-release/semantic-release)
|
7
7
|
|
8
|
-

|
9
|
-

|
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
|
-
lsct [options]
|
35
|
+
Usage: lsct [options]
|
21
36
|
|
22
37
|
Options:
|
23
38
|
-V, --version output the version number
|
@@ -25,107 +40,211 @@ 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 12:49:18 GMT*)
|
54
|
+
|
35
55
|
<details>
|
36
|
-
<summary> <code>> lsct
|
56
|
+
<summary> <code>> lsct </code> </summary>
|
37
57
|
|
38
58
|
```text
|
39
|
-
|
59
|
+
最近的 3 天内在 AtCoder,Codeforces,Luogu,NowCoder 上有 10 场比赛
|
40
60
|
|
41
|
-
比赛平台:
|
42
|
-
|
61
|
+
比赛平台: NowCoder
|
62
|
+
比赛名称:牛客竞赛博弈专题班 Sprague-Grundy 函数(SG 函数、图游戏、Nim 和)
|
43
63
|
赛制: ICPC
|
44
|
-
开始时间:
|
45
|
-
结束时间:
|
46
|
-
https://
|
64
|
+
开始时间: 5/13/2022, 04:00:00
|
65
|
+
结束时间: 5/21/2022, 13:00:00
|
66
|
+
https://ac.nowcoder.com/acm/contest/34655
|
47
67
|
|
48
|
-
比赛平台:
|
49
|
-
比赛名称:
|
50
|
-
赛制:
|
51
|
-
开始时间:
|
52
|
-
结束时间:
|
53
|
-
https://
|
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
|
+
比赛平台: 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
|
+
比赛平台: NowCoder
|
83
|
+
比赛名称:第二届天元编程邀请赛(提高组)
|
84
|
+
赛制: IOI
|
85
|
+
开始时间: 5/14/2022, 04:30:00
|
86
|
+
结束时间: 5/14/2022, 09:00:00
|
87
|
+
https://ac.nowcoder.com/acm/contest/33335
|
88
|
+
|
89
|
+
比赛平台: NowCoder
|
90
|
+
比赛名称:第二届天元编程邀请赛(普及组)
|
91
|
+
赛制: IOI
|
92
|
+
开始时间: 5/14/2022, 04:30:00
|
93
|
+
结束时间: 5/14/2022, 08:00:00
|
94
|
+
https://ac.nowcoder.com/acm/contest/33341
|
95
|
+
|
96
|
+
比赛平台: NowCoder
|
97
|
+
比赛名称:第十八届西南科技大学 ACM 程序设计竞赛(同步赛)
|
98
|
+
赛制: ICPC
|
99
|
+
开始时间: 5/14/2022, 05:00:00
|
100
|
+
结束时间: 5/14/2022, 10:00:00
|
101
|
+
https://ac.nowcoder.com/acm/contest/33540
|
102
|
+
|
103
|
+
比赛平台: Luogu
|
104
|
+
比赛名称: 【LGR-109】洛谷 5 月月赛 II & Windy Round 6
|
105
|
+
赛制: IOI
|
106
|
+
开始时间: 5/14/2022, 06:00:00
|
107
|
+
结束时间: 5/14/2022, 10:00:00
|
108
|
+
https://www.luogu.com.cn/contest/68326
|
54
109
|
|
55
110
|
比赛平台: AtCoder
|
56
|
-
比赛名称: Ⓐ Panasonic Programming Contest 2022(AtCoder Beginner Contest 251)
|
111
|
+
比赛名称: Ⓐ Panasonic Programming Contest 2022 (AtCoder Beginner Contest 251)
|
57
112
|
赛制: AtCoder
|
58
|
-
开始时间:
|
59
|
-
结束时间:
|
113
|
+
开始时间: 5/14/2022, 12:00:00
|
114
|
+
结束时间: 5/14/2022, 12:01:40
|
60
115
|
https://atcoder.jp/contests/abc251
|
116
|
+
|
117
|
+
比赛平台: Luogu
|
118
|
+
比赛名称: 「WHOI」Round 1
|
119
|
+
赛制: IOI
|
120
|
+
开始时间: 5/15/2022, 06:00:00
|
121
|
+
结束时间: 5/15/2022, 10:00:00
|
122
|
+
https://www.luogu.com.cn/contest/67377
|
123
|
+
|
124
|
+
比赛平台: AtCoder
|
125
|
+
比赛名称: Ⓐ AtCoder Regular Contest 140
|
126
|
+
赛制: AtCoder
|
127
|
+
开始时间: 5/15/2022, 12:00:00
|
128
|
+
结束时间: 5/15/2022, 12:02:00
|
129
|
+
https://atcoder.jp/contests/arc140
|
130
|
+
```
|
131
|
+
|
132
|
+
</details>
|
133
|
+
|
134
|
+
<details>
|
135
|
+
<summary> <code>> lsct -o at cf -d 7</code> </summary>
|
136
|
+
|
137
|
+
```text
|
138
|
+
最近的 7 天内在 AtCoder,Codeforces 上有 2 场比赛
|
139
|
+
|
140
|
+
比赛平台: AtCoder
|
141
|
+
比赛名称: Ⓐ Panasonic Programming Contest 2022 (AtCoder Beginner Contest 251)
|
142
|
+
赛制: AtCoder
|
143
|
+
开始时间: 5/14/2022, 12:00:00
|
144
|
+
结束时间: 5/14/2022, 12:01:40
|
145
|
+
https://atcoder.jp/contests/abc251
|
146
|
+
|
147
|
+
比赛平台: AtCoder
|
148
|
+
比赛名称: Ⓐ AtCoder Regular Contest 140
|
149
|
+
赛制: AtCoder
|
150
|
+
开始时间: 5/15/2022, 12:00:00
|
151
|
+
结束时间: 5/15/2022, 12:02:00
|
152
|
+
https://atcoder.jp/contests/arc140
|
61
153
|
```
|
62
154
|
|
63
155
|
</details>
|
64
156
|
|
65
157
|
<details>
|
66
|
-
<summary> <code>> lsct -o lg -d 7 -L en</code> </summary>
|
158
|
+
<summary> <code>> lsct -o lg nc -d 7 -L en</code> </summary>
|
67
159
|
|
68
160
|
```text
|
69
|
-
|
161
|
+
8 contests on Luogu,NowCoder in the last 7 days
|
162
|
+
|
163
|
+
OJ: NowCoder
|
164
|
+
Contest name: 牛客竞赛博弈专题班 Sprague-Grundy 函数(SG 函数、图游戏、Nim 和)
|
165
|
+
Rule: ICPC
|
166
|
+
Start time: 5/13/2022, 04:00:00
|
167
|
+
End time: 5/21/2022, 13:00:00
|
168
|
+
https://ac.nowcoder.com/acm/contest/34655
|
169
|
+
|
170
|
+
OJ: NowCoder
|
171
|
+
Contest name: 2022 图论班第一章图匹配例题与习题
|
172
|
+
Rule: ICPC
|
173
|
+
Start time: 5/13/2022, 06:00:00
|
174
|
+
End time: 5/30/2022, 08:00:00
|
175
|
+
https://ac.nowcoder.com/acm/contest/34649
|
176
|
+
|
177
|
+
OJ: NowCoder
|
178
|
+
Contest name: 牛客挑战赛 60
|
179
|
+
Rule: ICPC
|
180
|
+
Start time: 5/13/2022, 11:00:00
|
181
|
+
End time: 5/13/2022, 14:00:00
|
182
|
+
https://ac.nowcoder.com/acm/contest/11200
|
183
|
+
|
184
|
+
OJ: NowCoder
|
185
|
+
Contest name: 第二届天元编程邀请赛(提高组)
|
186
|
+
Rule: IOI
|
187
|
+
Start time: 5/14/2022, 04:30:00
|
188
|
+
End time: 5/14/2022, 09:00:00
|
189
|
+
https://ac.nowcoder.com/acm/contest/33335
|
190
|
+
|
191
|
+
OJ: NowCoder
|
192
|
+
Contest name: 第二届天元编程邀请赛(普及组)
|
193
|
+
Rule: IOI
|
194
|
+
Start time: 5/14/2022, 04:30:00
|
195
|
+
End time: 5/14/2022, 08:00:00
|
196
|
+
https://ac.nowcoder.com/acm/contest/33341
|
197
|
+
|
198
|
+
OJ: NowCoder
|
199
|
+
Contest name: 第十八届西南科技大学 ACM 程序设计竞赛(同步赛)
|
200
|
+
Rule: ICPC
|
201
|
+
Start time: 5/14/2022, 05:00:00
|
202
|
+
End time: 5/14/2022, 10:00:00
|
203
|
+
https://ac.nowcoder.com/acm/contest/33540
|
70
204
|
|
71
205
|
OJ: Luogu
|
72
206
|
Contest name: 【LGR-109】洛谷 5 月月赛 II & Windy Round 6
|
73
207
|
Rule: IOI
|
74
|
-
Start time:
|
75
|
-
End time:
|
208
|
+
Start time: 5/14/2022, 06:00:00
|
209
|
+
End time: 5/14/2022, 10:00:00
|
76
210
|
https://www.luogu.com.cn/contest/68326
|
77
211
|
|
78
212
|
OJ: Luogu
|
79
213
|
Contest name: 「WHOI」Round 1
|
80
214
|
Rule: IOI
|
81
|
-
Start time:
|
82
|
-
End time:
|
215
|
+
Start time: 5/15/2022, 06:00:00
|
216
|
+
End time: 5/15/2022, 10:00:00
|
83
217
|
https://www.luogu.com.cn/contest/67377
|
84
218
|
```
|
85
219
|
|
86
220
|
</details>
|
87
221
|
|
88
222
|
<details>
|
89
|
-
<summary> <code>> lsct -
|
223
|
+
<summary> <code>> lsct -o at cf -d 7 -r --no-sort</code> </summary>
|
90
224
|
|
91
|
-
```
|
225
|
+
```json
|
92
226
|
[
|
93
227
|
{
|
94
|
-
ojName:
|
95
|
-
name:
|
96
|
-
rule:
|
97
|
-
startTime: 2022-05-
|
98
|
-
endTime: 2022-05-
|
99
|
-
url:
|
228
|
+
"ojName": "AtCoder",
|
229
|
+
"name": "Ⓐ Panasonic Programming Contest 2022(AtCoder Beginner Contest 251)",
|
230
|
+
"rule": "AtCoder",
|
231
|
+
"startTime": "2022-05-14T12:00:00.000Z",
|
232
|
+
"endTime": "2022-05-14T12:01:40.000Z",
|
233
|
+
"url": "https://atcoder.jp/contests/abc251"
|
100
234
|
},
|
101
235
|
{
|
102
|
-
ojName:
|
103
|
-
name:
|
104
|
-
rule:
|
105
|
-
startTime: 2022-05-
|
106
|
-
endTime: 2022-05-
|
107
|
-
url:
|
108
|
-
},
|
109
|
-
{
|
110
|
-
ojName: 'NowCoder',
|
111
|
-
name: '牛客挑战赛60',
|
112
|
-
rule: 'ICPC',
|
113
|
-
startTime: 2022-05-13T11:00:00.000Z,
|
114
|
-
endTime: 2022-05-13T14:00:00.000Z,
|
115
|
-
url: 'https://ac.nowcoder.com/acm/contest/11200'
|
116
|
-
},
|
117
|
-
{
|
118
|
-
ojName: 'NowCoder',
|
119
|
-
name: '第十八届西南科技大学ACM程序设计竞赛(同步赛)',
|
120
|
-
rule: 'ICPC',
|
121
|
-
startTime: 2022-05-14T05:00:00.000Z,
|
122
|
-
endTime: 2022-05-14T10:00:00.000Z,
|
123
|
-
url: 'https://ac.nowcoder.com/acm/contest/33540'
|
236
|
+
"ojName": "AtCoder",
|
237
|
+
"name": "Ⓐ AtCoder Regular Contest 140",
|
238
|
+
"rule": "AtCoder",
|
239
|
+
"startTime": "2022-05-15T12:00:00.000Z",
|
240
|
+
"endTime": "2022-05-15T12:02:00.000Z",
|
241
|
+
"url": "https://atcoder.jp/contests/arc140"
|
124
242
|
}
|
125
243
|
]
|
126
244
|
```
|
127
245
|
|
128
246
|
</details>
|
247
|
+
<!-- block_cli end -->
|
129
248
|
|
130
249
|
### API
|
131
250
|
|
@@ -179,13 +298,13 @@ main();
|
|
179
298
|
This code gives the following results:
|
180
299
|
|
181
300
|
```text
|
182
|
-
1 contests in the last 1 days
|
301
|
+
1 contests on Codeforces,testOJ in the last 1 days
|
183
302
|
|
184
303
|
OJ: testOJ
|
185
304
|
Contest name: testContest
|
186
305
|
Rule: ICPC
|
187
|
-
Start time: 2022/5/
|
188
|
-
End time: 2022/5/
|
306
|
+
Start time: 2022/5/13 19:34:10
|
307
|
+
End time: 2022/5/14 19:34:10
|
189
308
|
https://www.test.com
|
190
309
|
|
191
310
|
[
|
@@ -193,8 +312,8 @@ https://www.test.com
|
|
193
312
|
ojName: 'testOJ',
|
194
313
|
name: 'testContest',
|
195
314
|
rule: 'ICPC',
|
196
|
-
startTime: 2022-05-
|
197
|
-
endTime: 2022-05-
|
315
|
+
startTime: 2022-05-13T11:34:13.464Z,
|
316
|
+
endTime: 2022-05-14T11:34:13.464Z,
|
198
317
|
url: 'https://www.test.com'
|
199
318
|
},
|
200
319
|
{
|
package/dist/index.js
CHANGED
@@ -16,16 +16,21 @@ 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,
|
22
23
|
sort: true
|
23
24
|
};
|
25
|
+
function resolveConfig(config) {
|
26
|
+
const cfg = Object.assign(Object.assign({}, defaultConfig), config);
|
27
|
+
if (cfg.abbrList.length == 0)
|
28
|
+
cfg.abbrList = defaultConfig.abbrList;
|
29
|
+
return cfg;
|
30
|
+
}
|
24
31
|
function getContestList(config) {
|
25
32
|
return __awaiter(this, void 0, void 0, function* () {
|
26
|
-
const cfg =
|
27
|
-
if (cfg.abbrList.length == 0)
|
28
|
-
cfg.abbrList = defaultConfig.abbrList;
|
33
|
+
const cfg = resolveConfig(config);
|
29
34
|
const contests = (yield Promise.all(cfg.abbrList.map((abbr) => __awaiter(this, void 0, void 0, function* () {
|
30
35
|
try {
|
31
36
|
const cts = yield oj_1.alloj[abbr].get();
|
@@ -45,21 +50,26 @@ function getContestList(config) {
|
|
45
50
|
exports.getContestList = getContestList;
|
46
51
|
function getContestInfo(config, language = "zh-CN") {
|
47
52
|
return __awaiter(this, void 0, void 0, function* () {
|
53
|
+
const cfg = resolveConfig(config);
|
48
54
|
const lang = yield (0, locale_1.getLangDict)(language);
|
49
|
-
const contests = yield getContestList(
|
55
|
+
const contests = yield getContestList(cfg);
|
50
56
|
const info = [];
|
51
|
-
info.push(lodash_1.default.template(lang.welcome)({
|
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
|
+
}));
|
52
62
|
for (const contest of contests) {
|
53
63
|
const msg = [];
|
54
64
|
msg.push(`${lang.ojName}: ${contest.ojName}`);
|
55
65
|
msg.push(`${lang.name}: ${contest.name}`);
|
56
66
|
msg.push(`${lang.rule}: ${contest.rule}`);
|
57
|
-
msg.push(`${lang.startTime}: ${contest.startTime.toLocaleString()}`);
|
58
|
-
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" })}`);
|
59
69
|
msg.push(contest.url);
|
60
70
|
info.push(msg.join("\n"));
|
61
71
|
}
|
62
|
-
return info.join("\n\n");
|
72
|
+
return pangu_1.default.spacing(info.join("\n\n"));
|
63
73
|
});
|
64
74
|
}
|
65
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/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/dist/locale/en.json
CHANGED
package/dist/locale/zh-CN.json
CHANGED
package/dist/locale/zh-TW.json
CHANGED
package/package.json
CHANGED
@@ -1,18 +1,21 @@
|
|
1
1
|
{
|
2
2
|
"name": "lscontests",
|
3
|
-
"version": "1.8.
|
3
|
+
"version": "1.8.12",
|
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": {
|