lscontests 2.5.0 → 2.6.0
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 +133 -59
- package/dist/index.d.ts +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/server.js +20 -6
- package/dist/server.js.map +1 -1
- package/package.json +2 -1
package/README.md
CHANGED
|
@@ -56,22 +56,86 @@ Options:
|
|
|
56
56
|
It performs as follows:
|
|
57
57
|
|
|
58
58
|
<!-- block_cli begin -->
|
|
59
|
-
(*The following content was automatically generated using [semantic-release](https://github.com/semantic-release/semantic-release) on
|
|
59
|
+
(*The following content was automatically generated using [semantic-release](https://github.com/semantic-release/semantic-release) on Fri, 22 Jul 2022 05:49:34 GMT*)
|
|
60
60
|
|
|
61
61
|
<details>
|
|
62
62
|
<summary> <code>> lsct -L en</code> </summary>
|
|
63
63
|
|
|
64
64
|
```text
|
|
65
|
-
There are
|
|
65
|
+
There are no running contests on AtCoder,Codeforces,LeetCode,Luogu,NowCoder
|
|
66
|
+
|
|
67
|
+
There are 10 contests on Luogu,NowCoder,AtCoder,LeetCode,Codeforces in the next 3 days
|
|
68
|
+
|
|
69
|
+
OJ: Luogu
|
|
70
|
+
Contest name: FAOI-R1 & CSP 赛前信心赛
|
|
71
|
+
Rule: LeDuo
|
|
72
|
+
Start time: 7/22/2022, 09:00:00
|
|
73
|
+
End time: 7/22/2022, 13:00:00
|
|
74
|
+
https://www.luogu.com.cn/contest/73362
|
|
66
75
|
|
|
67
76
|
OJ: NowCoder
|
|
68
|
-
Contest name:
|
|
77
|
+
Contest name: "蔚来杯"2022 牛客暑期多校训练营 2
|
|
69
78
|
Rule: ICPC
|
|
70
|
-
Start time:
|
|
71
|
-
End time:
|
|
72
|
-
https://ac.nowcoder.com/acm/contest/
|
|
79
|
+
Start time: 7/23/2022, 04:00:00
|
|
80
|
+
End time: 7/23/2022, 09:00:00
|
|
81
|
+
https://ac.nowcoder.com/acm/contest/33187
|
|
82
|
+
|
|
83
|
+
OJ: Luogu
|
|
84
|
+
Contest name: 「KDOI」Round 1
|
|
85
|
+
Rule: IOI
|
|
86
|
+
Start time: 7/23/2022, 06:00:00
|
|
87
|
+
End time: 7/23/2022, 10:00:00
|
|
88
|
+
https://www.luogu.com.cn/contest/71146
|
|
89
|
+
|
|
90
|
+
OJ: AtCoder
|
|
91
|
+
Contest name: Ⓐ AtCoder Beginner Contest 261
|
|
92
|
+
Rule: AtCoder
|
|
93
|
+
Start time: 7/23/2022, 12:00:00
|
|
94
|
+
End time: 7/23/2022, 13:40:00
|
|
95
|
+
https://atcoder.jp/contests/abc261
|
|
96
|
+
|
|
97
|
+
OJ: LeetCode
|
|
98
|
+
Contest name: Biweekly Contest 83
|
|
99
|
+
Rule: AtCoder
|
|
100
|
+
Start time: 7/23/2022, 14:30:00
|
|
101
|
+
End time: 7/23/2022, 16:00:00
|
|
102
|
+
https://leetcode.com/contest/biweekly-contest-83
|
|
103
|
+
|
|
104
|
+
OJ: LeetCode
|
|
105
|
+
Contest name: Weekly Contest 303
|
|
106
|
+
Rule: AtCoder
|
|
107
|
+
Start time: 7/24/2022, 02:30:00
|
|
108
|
+
End time: 7/24/2022, 04:00:00
|
|
109
|
+
https://leetcode.com/contest/weekly-contest-303
|
|
110
|
+
|
|
111
|
+
OJ: NowCoder
|
|
112
|
+
Contest name: 2022 河南萌新联赛第(三)场:河南大学
|
|
113
|
+
Rule: ICPC
|
|
114
|
+
Start time: 7/24/2022, 05:00:00
|
|
115
|
+
End time: 7/24/2022, 09:00:00
|
|
116
|
+
https://ac.nowcoder.com/acm/contest/37782
|
|
117
|
+
|
|
118
|
+
OJ: Luogu
|
|
119
|
+
Contest name: 【LGR-113】洛谷 7 月普及组月赛 & JROI R6
|
|
120
|
+
Rule: OI
|
|
121
|
+
Start time: 7/24/2022, 06:00:00
|
|
122
|
+
End time: 7/24/2022, 09:30:00
|
|
123
|
+
https://www.luogu.com.cn/contest/65483
|
|
124
|
+
|
|
125
|
+
OJ: Codeforces
|
|
126
|
+
Contest name: Codeforces Round #810 (Div. 1/2)
|
|
127
|
+
Rule: Codeforces
|
|
128
|
+
Start time: 7/24/2022, 14:35:00
|
|
129
|
+
End time: 7/24/2022, 17:05:00
|
|
130
|
+
https://codeforces.com/contests/1710
|
|
131
|
+
https://codeforces.com/contests/1711
|
|
73
132
|
|
|
74
|
-
|
|
133
|
+
OJ: NowCoder
|
|
134
|
+
Contest name: "蔚来杯"2022 牛客暑期多校训练营 3
|
|
135
|
+
Rule: ICPC
|
|
136
|
+
Start time: 7/25/2022, 04:00:00
|
|
137
|
+
End time: 7/25/2022, 09:00:00
|
|
138
|
+
https://ac.nowcoder.com/acm/contest/33188
|
|
75
139
|
```
|
|
76
140
|
|
|
77
141
|
</details>
|
|
@@ -82,28 +146,22 @@ No contests on AtCoder,Codeforces,LeetCode,Luogu,NowCoder for the next 3 days
|
|
|
82
146
|
```text
|
|
83
147
|
There are no running contests on AtCoder,Codeforces
|
|
84
148
|
|
|
85
|
-
There are
|
|
149
|
+
There are 2 contests on AtCoder,Codeforces in the next 7 days
|
|
86
150
|
|
|
87
151
|
OJ: AtCoder
|
|
88
|
-
Contest name: Ⓐ
|
|
152
|
+
Contest name: Ⓐ AtCoder Beginner Contest 261
|
|
89
153
|
Rule: AtCoder
|
|
90
|
-
Start time:
|
|
91
|
-
End time:
|
|
92
|
-
https://atcoder.jp/contests/
|
|
154
|
+
Start time: 7/23/2022, 12:00:00
|
|
155
|
+
End time: 7/23/2022, 13:40:00
|
|
156
|
+
https://atcoder.jp/contests/abc261
|
|
93
157
|
|
|
94
158
|
OJ: Codeforces
|
|
95
|
-
Contest name: Codeforces
|
|
159
|
+
Contest name: Codeforces Round #810 (Div. 1/2)
|
|
96
160
|
Rule: Codeforces
|
|
97
|
-
Start time:
|
|
98
|
-
End time:
|
|
99
|
-
https://codeforces.com/contests/
|
|
100
|
-
|
|
101
|
-
OJ: AtCoder
|
|
102
|
-
Contest name: Ⓐ AtCoder Regular Contest 143
|
|
103
|
-
Rule: AtCoder
|
|
104
|
-
Start time: 6/26/2022, 12:00:00
|
|
105
|
-
End time: 6/26/2022, 14:00:00
|
|
106
|
-
https://atcoder.jp/contests/arc143
|
|
161
|
+
Start time: 7/24/2022, 14:35:00
|
|
162
|
+
End time: 7/24/2022, 17:05:00
|
|
163
|
+
https://codeforces.com/contests/1710
|
|
164
|
+
https://codeforces.com/contests/1711
|
|
107
165
|
```
|
|
108
166
|
|
|
109
167
|
</details>
|
|
@@ -117,75 +175,91 @@ https://atcoder.jp/contests/arc143
|
|
|
117
175
|
"upcoming": [
|
|
118
176
|
{
|
|
119
177
|
"ojName": "AtCoder",
|
|
120
|
-
"name": "Ⓐ
|
|
178
|
+
"name": "Ⓐ AtCoder Beginner Contest 261",
|
|
121
179
|
"rule": "AtCoder",
|
|
122
|
-
"startTime": "2022-
|
|
123
|
-
"endTime": "2022-
|
|
124
|
-
"url": "https://atcoder.jp/contests/
|
|
180
|
+
"startTime": "2022-07-23T12:00:00.000Z",
|
|
181
|
+
"endTime": "2022-07-23T13:40:00.000Z",
|
|
182
|
+
"url": "https://atcoder.jp/contests/abc261"
|
|
125
183
|
},
|
|
126
184
|
{
|
|
127
185
|
"ojName": "AtCoder",
|
|
128
|
-
"name": "Ⓐ AtCoder Regular Contest
|
|
186
|
+
"name": "Ⓐ AtCoder Regular Contest 145",
|
|
129
187
|
"rule": "AtCoder",
|
|
130
|
-
"startTime": "2022-
|
|
131
|
-
"endTime": "2022-
|
|
132
|
-
"url": "https://atcoder.jp/contests/
|
|
188
|
+
"startTime": "2022-07-30T12:00:00.000Z",
|
|
189
|
+
"endTime": "2022-07-30T14:00:00.000Z",
|
|
190
|
+
"url": "https://atcoder.jp/contests/arc145"
|
|
133
191
|
},
|
|
134
192
|
{
|
|
135
193
|
"ojName": "AtCoder",
|
|
136
|
-
"name": "Ⓐ AtCoder Beginner Contest
|
|
194
|
+
"name": "Ⓐ AtCoder Beginner Contest 262",
|
|
137
195
|
"rule": "AtCoder",
|
|
138
|
-
"startTime": "2022-07-
|
|
139
|
-
"endTime": "2022-07-
|
|
140
|
-
"url": "https://atcoder.jp/contests/
|
|
196
|
+
"startTime": "2022-07-31T12:00:00.000Z",
|
|
197
|
+
"endTime": "2022-07-31T13:40:00.000Z",
|
|
198
|
+
"url": "https://atcoder.jp/contests/abc262"
|
|
141
199
|
},
|
|
142
200
|
{
|
|
143
201
|
"ojName": "AtCoder",
|
|
144
|
-
"name": "
|
|
202
|
+
"name": "Ⓐ LINE Verda Programming Contest(AtCoder Beginner Contest 263)",
|
|
145
203
|
"rule": "AtCoder",
|
|
146
|
-
"startTime": "2022-
|
|
147
|
-
"endTime": "2022-
|
|
148
|
-
"url": "https://atcoder.jp/contests/
|
|
204
|
+
"startTime": "2022-08-06T12:00:00.000Z",
|
|
205
|
+
"endTime": "2022-08-06T13:40:00.000Z",
|
|
206
|
+
"url": "https://atcoder.jp/contests/abc263"
|
|
149
207
|
},
|
|
150
208
|
{
|
|
151
209
|
"ojName": "AtCoder",
|
|
152
|
-
"name": "
|
|
210
|
+
"name": "Ⓗ RECRUIT Nihonbashi Half Marathon 2022 Summer(AHC013)",
|
|
153
211
|
"rule": "AtCoder",
|
|
154
|
-
"startTime": "2022-
|
|
155
|
-
"endTime": "2022-
|
|
156
|
-
"url": "https://atcoder.jp/contests/
|
|
212
|
+
"startTime": "2022-08-09T12:00:00.000Z",
|
|
213
|
+
"endTime": "2022-08-16T12:00:00.000Z",
|
|
214
|
+
"url": "https://atcoder.jp/contests/ahc013"
|
|
157
215
|
},
|
|
158
216
|
{
|
|
159
217
|
"ojName": "AtCoder",
|
|
160
|
-
"name": "Ⓐ AtCoder Beginner Contest
|
|
218
|
+
"name": "Ⓐ freee Programming Contest 2022(AtCoder Beginner Contest 264)",
|
|
161
219
|
"rule": "AtCoder",
|
|
162
|
-
"startTime": "2022-
|
|
163
|
-
"endTime": "2022-
|
|
164
|
-
"url": "https://atcoder.jp/contests/
|
|
220
|
+
"startTime": "2022-08-13T12:00:00.000Z",
|
|
221
|
+
"endTime": "2022-08-13T13:40:00.000Z",
|
|
222
|
+
"url": "https://atcoder.jp/contests/abc264"
|
|
223
|
+
},
|
|
224
|
+
{
|
|
225
|
+
"ojName": "AtCoder",
|
|
226
|
+
"name": "Ⓐ AtCoder Grand Contest 058",
|
|
227
|
+
"rule": "AtCoder",
|
|
228
|
+
"startTime": "2022-08-14T12:00:00.000Z",
|
|
229
|
+
"endTime": "2022-08-14T15:00:00.000Z",
|
|
230
|
+
"url": "https://atcoder.jp/contests/agc058"
|
|
231
|
+
},
|
|
232
|
+
{
|
|
233
|
+
"name": "Codeforces Round #810 (Div. 1/2)",
|
|
234
|
+
"ojName": "Codeforces",
|
|
235
|
+
"rule": "Codeforces",
|
|
236
|
+
"startTime": "2022-07-24T14:35:00.000Z",
|
|
237
|
+
"endTime": "2022-07-24T17:05:00.000Z",
|
|
238
|
+
"url": "https://codeforces.com/contests/1710\nhttps://codeforces.com/contests/1711"
|
|
165
239
|
},
|
|
166
240
|
{
|
|
167
241
|
"ojName": "Codeforces",
|
|
168
|
-
"name": "
|
|
242
|
+
"name": "CodeTON Round 2 (Div. 1 + Div. 2, Rated, Prizes!)",
|
|
169
243
|
"rule": "Codeforces",
|
|
170
|
-
"startTime": "2022-
|
|
171
|
-
"endTime": "2022-
|
|
172
|
-
"url": "https://codeforces.com/contests/
|
|
244
|
+
"startTime": "2022-07-31T14:05:00.000Z",
|
|
245
|
+
"endTime": "2022-07-31T16:35:00.000Z",
|
|
246
|
+
"url": "https://codeforces.com/contests/1704"
|
|
173
247
|
},
|
|
174
248
|
{
|
|
175
249
|
"ojName": "Codeforces",
|
|
176
|
-
"name": "Codeforces Round
|
|
250
|
+
"name": "Codeforces Round (Div. 2)",
|
|
177
251
|
"rule": "Codeforces",
|
|
178
|
-
"startTime": "2022-
|
|
179
|
-
"endTime": "2022-
|
|
180
|
-
"url": "https://codeforces.com/contests/
|
|
252
|
+
"startTime": "2022-08-06T14:35:00.000Z",
|
|
253
|
+
"endTime": "2022-08-06T16:35:00.000Z",
|
|
254
|
+
"url": "https://codeforces.com/contests/1713"
|
|
181
255
|
},
|
|
182
256
|
{
|
|
183
257
|
"ojName": "Codeforces",
|
|
184
|
-
"name": "Codeforces Round
|
|
258
|
+
"name": "Codeforces Round (Div. 2)",
|
|
185
259
|
"rule": "Codeforces",
|
|
186
|
-
"startTime": "2022-
|
|
187
|
-
"endTime": "2022-
|
|
188
|
-
"url": "https://codeforces.com/contests/
|
|
260
|
+
"startTime": "2022-08-13T14:35:00.000Z",
|
|
261
|
+
"endTime": "2022-08-13T16:35:00.000Z",
|
|
262
|
+
"url": "https://codeforces.com/contests/1712"
|
|
189
263
|
}
|
|
190
264
|
]
|
|
191
265
|
}
|
package/dist/index.d.ts
CHANGED
|
@@ -9,7 +9,7 @@ export interface LscontestsConfig {
|
|
|
9
9
|
silent?: boolean;
|
|
10
10
|
}
|
|
11
11
|
export default class Lscontests {
|
|
12
|
-
private config;
|
|
12
|
+
private readonly config;
|
|
13
13
|
private logger;
|
|
14
14
|
constructor(config?: LscontestsConfig, log_level?: string, log_transport?: winston.transports.ConsoleTransportInstance);
|
|
15
15
|
getContests(): Promise<{
|
package/dist/index.js
CHANGED
|
@@ -54,11 +54,13 @@ class Lscontests {
|
|
|
54
54
|
getContests() {
|
|
55
55
|
return __awaiter(this, void 0, void 0, function* () {
|
|
56
56
|
const contests = (yield Promise.all(this.config.abbrList.map((abbr) => __awaiter(this, void 0, void 0, function* () {
|
|
57
|
+
const startTime = new Date();
|
|
57
58
|
try {
|
|
58
59
|
const oj = oj_1.alloj[abbr];
|
|
59
60
|
this.logger.info(`Start getting contests information about ${oj.name}`);
|
|
60
61
|
const res = (yield oj.get()).sort((a, b) => a.startTime.getTime() - b.startTime.getTime());
|
|
61
|
-
|
|
62
|
+
const duration = (new Date().getTime() - startTime.getTime()) / 1000;
|
|
63
|
+
this.logger.info(`Successfully get contests information about ${oj.name} in ${duration} seconds`);
|
|
62
64
|
return res;
|
|
63
65
|
}
|
|
64
66
|
catch (e) {
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oDAAuB;AACvB,kDAA0B;AAC1B,sDAA8B;AAE9B,iCAAiC;AACjC,qCAAuC;AAYvC,MAAqB,UAAU;IAY3B,YAAY,MAAyB,EAAE,SAAS,GAAG,MAAM,EAAE,aAAa,GAAG,iBAAO,CAAC,UAAU,CAAC,OAAO;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oDAAuB;AACvB,kDAA0B;AAC1B,sDAA8B;AAE9B,iCAAiC;AACjC,qCAAuC;AAYvC,MAAqB,UAAU;IAY3B,YAAY,MAAyB,EAAE,SAAS,GAAG,MAAM,EAAE,aAAa,GAAG,iBAAO,CAAC,UAAU,CAAC,OAAO;QAVpF,WAAM,GAAG;YACtB,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,UAAK,CAAC;YAC5B,IAAI,EAAE,CAAC;YACP,IAAI,EAAE,IAAI;YACV,OAAO,EAAE,IAAI;YACb,QAAQ,EAAE,IAAI;YACd,MAAM,EAAE,KAAK;SAChB,CAAC;QAKE,IAAI,CAAC,MAAM,mCAAQ,IAAI,CAAC,MAAM,GAAK,MAAM,CAAE,CAAC;QAC5C,IAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,UAAK,CAAC,CAAC;QAChF,IAAI,CAAC,MAAM,GAAG,iBAAO,CAAC,YAAY,CAAC;YAC/B,KAAK,EAAE,SAAS;YAChB,MAAM,EAAE,iBAAO,CAAC,MAAM,CAAC,OAAO,CAC1B,iBAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,EACzB,iBAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAC1B;YACD,UAAU,EAAE,IAAI,aAAa,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;SAChE,CAAC,CAAC;IACP,CAAC;IAEK,WAAW;;YAEb,MAAM,QAAQ,GAAG,CAAC,MAAM,OAAO,CAAC,GAAG,CAC/B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CACpB,CAAM,IAAI,EAAC,EAAE;gBAET,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC;gBAC7B,IACA;oBACI,MAAM,EAAE,GAAG,UAAK,CAAC,IAAI,CAAC,CAAC;oBACvB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,4CAA4C,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;oBACxE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,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;oBAC3F,MAAM,QAAQ,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC;oBACrE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,+CAA+C,EAAE,CAAC,IAAI,OAAO,QAAQ,UAAU,CAAC,CAAC;oBAClG,OAAO,GAAG,CAAC;iBACd;gBACD,OAAM,CAAC,EACP;oBACI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,yCAAyC,UAAK,CAAC,IAAI,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC;oBACzF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;oBACrB,OAAO,EAAE,CAAC;iBACb;YACL,CAAC,CAAA,CACJ,CACJ,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YACzC,MAAM,GAAG,GAAG;gBACR,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,CAAC,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE;gBAChH,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,SAAS,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;aAC5L,CAAC;YACF,IAAG,IAAI,CAAC,MAAM,CAAC,IAAI;gBAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,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,CAAC;YACxH,OAAO,GAAG,CAAC;QACf,CAAC;KAAA;IAEK,eAAe,CAAC,QAAQ,GAAG,OAAO;;YAEpC,MAAM,IAAI,GAAG,MAAM,IAAA,oBAAW,EAAC,QAAQ,CAAC,CAAC;YACzC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;YACvD,MAAM,IAAI,GAAa,EAAE,CAAC;YAE1B,SAAS,GAAG,CAAC,QAAmB;gBAE5B,OAAO,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;oBAE1B,MAAM,EAAE,GAAa,EAAE,CAAC;oBACxB,EAAE,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;oBAC7C,EAAE,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;oBACzC,EAAE,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;oBACzC,EAAE,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;oBACnG,EAAE,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;oBAC/F,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;oBACrB,OAAO,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACzB,CAAC,CAAC,CAAC;YACP,CAAC;YAED,IAAG,IAAI,CAAC,MAAM,CAAC,OAAO,EACtB;gBACI,IAAG,OAAO,CAAC,MAAM,EACjB;oBACI,IAAI,CAAC,IAAI,CAAC,gBAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;wBAChC,YAAY,EAAE,OAAO,CAAC,MAAM;wBAC5B,EAAE,EAAE,gBAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;qBACrD,CAAC,CAAC,CAAC;oBACJ,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;iBAC9B;;oBACI,IAAI,CAAC,IAAI,CAAC,gBAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,UAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;aAC1G;YAED,IAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EACvB;gBACI,IAAG,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,CAAC,EAC1B;oBACI,IAAG,QAAQ,CAAC,MAAM,EAClB;wBACI,IAAI,CAAC,IAAI,CAAC,gBAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;4BACpC,YAAY,EAAE,QAAQ,CAAC,MAAM;4BAC7B,EAAE,EAAE,gBAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;yBACtD,CAAC,CAAC,CAAC;wBACJ,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;qBAC/B;;wBACI,IAAI,CAAC,IAAI,CAAC,gBAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,UAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;iBAC/G;qBAED;oBACI,IAAG,QAAQ,CAAC,MAAM,EAClB;wBACI,IAAI,CAAC,IAAI,CAAC,gBAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;4BAChC,YAAY,EAAE,QAAQ,CAAC,MAAM;4BAC7B,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;4BACtB,EAAE,EAAE,gBAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;yBACtD,CAAC,CAAC,CAAC;wBACJ,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;qBAC/B;;wBACI,IAAI,CAAC,IAAI,CAAC,gBAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;4BACvC,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,UAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;4BACtD,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;yBACzB,CAAC,CAAC,CAAC;iBACP;aACJ;YACD,OAAO,eAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QAC5C,CAAC;KAAA;CACJ;AA9HD,6BA8HC;AAED,gDAA8B;AAC9B,6BAA4B;AAAnB,0FAAA,GAAG,OAAA;AACZ,+BAAqC;AAAxB,2FAAA,KAAK,OAAA"}
|
package/dist/server.js
CHANGED
|
@@ -24,6 +24,7 @@ const commander_1 = require("commander");
|
|
|
24
24
|
const package_json_1 = require("../package.json");
|
|
25
25
|
const lodash_1 = __importDefault(require("lodash"));
|
|
26
26
|
const fs_1 = require("fs");
|
|
27
|
+
const await_lock_1 = __importDefault(require("await-lock"));
|
|
27
28
|
const app = (0, express_1.default)();
|
|
28
29
|
function assertType(obj) {
|
|
29
30
|
}
|
|
@@ -77,6 +78,7 @@ const contestsCache = {
|
|
|
77
78
|
contests: [],
|
|
78
79
|
lastUpdate: 0
|
|
79
80
|
};
|
|
81
|
+
const lock = new await_lock_1.default();
|
|
80
82
|
function icsPostProcess(value) {
|
|
81
83
|
return value
|
|
82
84
|
.replace("X-PUBLISHED-TTL:PT1H", "X-PUBLISHED-TTL:PT1H\r\nREFRESH-INTERVAL:PT1H")
|
|
@@ -93,14 +95,25 @@ function icsPostProcess(value) {
|
|
|
93
95
|
"END:STANDARD\r\n" +
|
|
94
96
|
"END:VTIMEZONE");
|
|
95
97
|
}
|
|
96
|
-
function
|
|
98
|
+
function checkCache() {
|
|
97
99
|
return __awaiter(this, void 0, void 0, function* () {
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
contestsCache.
|
|
101
|
-
|
|
102
|
-
|
|
100
|
+
yield lock.acquireAsync();
|
|
101
|
+
try {
|
|
102
|
+
if (contestsCache.lastUpdate < Date.now() - 1000 * 60 * 5) {
|
|
103
|
+
const c = yield new _1.default({ days: -1 }).getContests();
|
|
104
|
+
contestsCache.contests = lodash_1.default.uniqBy(contestsCache.contests.concat(c.running.concat(c.upcoming)), JSON.stringify);
|
|
105
|
+
contestsCache.contests = contestsCache.contests.filter(c => c.endTime.getTime() - c.startTime.getTime() < 1000 * 60 * 60 * 24 * 2); // ignore too long contests
|
|
106
|
+
contestsCache.lastUpdate = Date.now();
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
finally {
|
|
110
|
+
lock.release();
|
|
103
111
|
}
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
function getIcs(lang, ojs) {
|
|
115
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
116
|
+
yield checkCache();
|
|
104
117
|
const contests = contestsCache.contests.filter(c => ojs.some(oj => c.ojName === oj_1.alloj[oj].name));
|
|
105
118
|
const langDict = yield (0, locale_1.getLangDict)(lang);
|
|
106
119
|
const events = contests.map((c) => {
|
|
@@ -114,6 +127,7 @@ function getIcs(lang, ojs) {
|
|
|
114
127
|
start: (0, ics_1.convertTimestampToArray)(c.startTime.getTime(), "local"),
|
|
115
128
|
startOutputType: "local",
|
|
116
129
|
end: (0, ics_1.convertTimestampToArray)(c.endTime.getTime(), "local"),
|
|
130
|
+
endOutputType: "local",
|
|
117
131
|
calName: "算法竞赛",
|
|
118
132
|
productId: "-//StableAgOH//LSCT//CN",
|
|
119
133
|
title: c.name,
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,sDAA8B;AAC9B,yCAAwC;AACxC,iCAAiC;AACjC,qCAAuC;AACvC,6BAA6E;AAC7E,kDAA0B;AAC1B,mCAAoC;AACpC,yCAAoC;AACpC,kDAA+C;AAC/C,oDAAuB;AACvB,2BAAkC;
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lscontests",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.6.0",
|
|
4
4
|
"description": "A tool to get information about the contests on each OJ",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"cli",
|
|
@@ -35,6 +35,7 @@
|
|
|
35
35
|
"start-s": "tsx src/server.ts"
|
|
36
36
|
},
|
|
37
37
|
"dependencies": {
|
|
38
|
+
"await-lock": "^2.2.2",
|
|
38
39
|
"axios": "^0.27.2",
|
|
39
40
|
"axios-retry": "^3.2.5",
|
|
40
41
|
"cheerio": "^1.0.0-rc.11",
|