lscontests 2.1.5 → 2.2.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
@@ -55,7 +55,7 @@ Options:
55
55
  It performs as follows:
56
56
 
57
57
  <!-- block_cli begin -->
58
- (*The following content was automatically generated using [semantic-release](https://github.com/semantic-release/semantic-release) on Wed, 25 May 2022 12:38:41 GMT*)
58
+ (*The following content was automatically generated using [semantic-release](https://github.com/semantic-release/semantic-release) on Thu, 26 May 2022 07:14:28 GMT*)
59
59
 
60
60
  <details>
61
61
  <summary> <code>> lsct -L en</code> </summary>
@@ -70,21 +70,7 @@ Start time: 5/13/2022, 06:00:00
70
70
  End time: 5/30/2022, 08:00:00
71
71
  https://ac.nowcoder.com/acm/contest/34649
72
72
 
73
- There are 7 contests on Codeforces,NowCoder,AtCoder in the next 3 days
74
-
75
- OJ: Codeforces
76
- Contest name: Codeforces Round #794 (Div. 1)
77
- Rule: Codeforces
78
- Start time: 5/25/2022, 17:35:00
79
- End time: 5/25/2022, 19:50:00
80
- https://codeforces.com/contests/1685
81
-
82
- OJ: Codeforces
83
- Contest name: Codeforces Round #794 (Div. 2)
84
- Rule: Codeforces
85
- Start time: 5/25/2022, 17:35:00
86
- End time: 5/25/2022, 19:50:00
87
- https://codeforces.com/contests/1686
73
+ There are 7 contests on NowCoder,AtCoder,LeetCode in the next 3 days
88
74
 
89
75
  OJ: NowCoder
90
76
  Contest name: 牛客练习赛 99
@@ -120,6 +106,20 @@ Rule: AtCoder
120
106
  Start time: 5/28/2022, 12:00:00
121
107
  End time: 5/28/2022, 13:40:00
122
108
  https://atcoder.jp/contests/abc253
109
+
110
+ OJ: LeetCode
111
+ Contest name: Biweekly Contest 79
112
+ Rule: AtCoder
113
+ Start time: 5/28/2022, 14:30:00
114
+ End time: 5/28/2022, 16:00:00
115
+ https://leetcode.com/contest/biweekly-contest-79
116
+
117
+ OJ: LeetCode
118
+ Contest name: Weekly Contest 295
119
+ Rule: AtCoder
120
+ Start time: 5/29/2022, 02:30:00
121
+ End time: 5/29/2022, 04:00:00
122
+ https://leetcode.com/contest/weekly-contest-295
123
123
  ```
124
124
 
125
125
  </details>
@@ -130,21 +130,7 @@ https://atcoder.jp/contests/abc253
130
130
  ```text
131
131
  No running contests
132
132
 
133
- There are 6 contests on Codeforces,AtCoder in the next 7 days
134
-
135
- OJ: Codeforces
136
- Contest name: Codeforces Round #794 (Div. 1)
137
- Rule: Codeforces
138
- Start time: 5/25/2022, 17:35:00
139
- End time: 5/25/2022, 19:50:00
140
- https://codeforces.com/contests/1685
141
-
142
- OJ: Codeforces
143
- Contest name: Codeforces Round #794 (Div. 2)
144
- Rule: Codeforces
145
- Start time: 5/25/2022, 17:35:00
146
- End time: 5/25/2022, 19:50:00
147
- https://codeforces.com/contests/1686
133
+ There are 4 contests on AtCoder,Codeforces in the next 7 days
148
134
 
149
135
  OJ: AtCoder
150
136
  Contest name: Ⓗ AtCoder Heuristic Contest 011
@@ -178,7 +164,7 @@ https://codeforces.com/contests/1691
178
164
  </details>
179
165
 
180
166
  <details>
181
- <summary> <code>> lsct -o at cf -d 7 -r --no-sort</code> </summary>
167
+ <summary> <code>> lsct -o at cf -d -1 -r --no-sort</code> </summary>
182
168
 
183
169
  ```json
184
170
  {
@@ -209,20 +195,36 @@ https://codeforces.com/contests/1691
209
195
  "url": "https://atcoder.jp/contests/arc141"
210
196
  },
211
197
  {
212
- "ojName": "Codeforces",
213
- "name": "Codeforces Round #794 (Div. 1)",
214
- "rule": "Codeforces",
215
- "startTime": "2022-05-25T17:35:00.000Z",
216
- "endTime": "2022-05-25T19:50:00.000Z",
217
- "url": "https://codeforces.com/contests/1685"
198
+ "ojName": "AtCoder",
199
+ "name": " AtCoder Beginner Contest 254",
200
+ "rule": "AtCoder",
201
+ "startTime": "2022-06-04T12:00:00.000Z",
202
+ "endTime": "2022-06-04T13:40:00.000Z",
203
+ "url": "https://atcoder.jp/contests/abc254"
218
204
  },
219
205
  {
220
- "ojName": "Codeforces",
221
- "name": "Codeforces Round #794 (Div. 2)",
222
- "rule": "Codeforces",
223
- "startTime": "2022-05-25T17:35:00.000Z",
224
- "endTime": "2022-05-25T19:50:00.000Z",
225
- "url": "https://codeforces.com/contests/1686"
206
+ "ojName": "AtCoder",
207
+ "name": " Aising Programming Contest 2022(AtCoder Beginner Contest 255)",
208
+ "rule": "AtCoder",
209
+ "startTime": "2022-06-11T12:00:00.000Z",
210
+ "endTime": "2022-06-11T13:40:00.000Z",
211
+ "url": "https://atcoder.jp/contests/abc255"
212
+ },
213
+ {
214
+ "ojName": "AtCoder",
215
+ "name": "Ⓐ AtCoder Regular Contest 142",
216
+ "rule": "AtCoder",
217
+ "startTime": "2022-06-19T12:00:00.000Z",
218
+ "endTime": "2022-06-19T14:00:00.000Z",
219
+ "url": "https://atcoder.jp/contests/arc142"
220
+ },
221
+ {
222
+ "ojName": "AtCoder",
223
+ "name": "Ⓐ AtCoder Regular Contest 143",
224
+ "rule": "AtCoder",
225
+ "startTime": "2022-06-26T12:00:00.000Z",
226
+ "endTime": "2022-06-26T14:00:00.000Z",
227
+ "url": "https://atcoder.jp/contests/arc143"
226
228
  },
227
229
  {
228
230
  "ojName": "Codeforces",
@@ -231,6 +233,38 @@ https://codeforces.com/contests/1691
231
233
  "startTime": "2022-05-31T14:35:00.000Z",
232
234
  "endTime": "2022-05-31T16:35:00.000Z",
233
235
  "url": "https://codeforces.com/contests/1691"
236
+ },
237
+ {
238
+ "ojName": "Codeforces",
239
+ "name": "Codeforces Round #796 (Div. 1)",
240
+ "rule": "Codeforces",
241
+ "startTime": "2022-06-03T14:35:00.000Z",
242
+ "endTime": "2022-06-03T16:35:00.000Z",
243
+ "url": "https://codeforces.com/contests/1687"
244
+ },
245
+ {
246
+ "ojName": "Codeforces",
247
+ "name": "Codeforces Round #796 (Div. 2)",
248
+ "rule": "Codeforces",
249
+ "startTime": "2022-06-03T14:35:00.000Z",
250
+ "endTime": "2022-06-03T16:35:00.000Z",
251
+ "url": "https://codeforces.com/contests/1688"
252
+ },
253
+ {
254
+ "ojName": "Codeforces",
255
+ "name": "Codeforces Round #797 (Div. 3)",
256
+ "rule": "ICPC",
257
+ "startTime": "2022-06-07T14:35:00.000Z",
258
+ "endTime": "2022-06-07T16:50:00.000Z",
259
+ "url": "https://codeforces.com/contests/1690"
260
+ },
261
+ {
262
+ "ojName": "Codeforces",
263
+ "name": "Codeforces Round #798 (Div. 2)",
264
+ "rule": "Codeforces",
265
+ "startTime": "2022-06-10T16:35:00.000Z",
266
+ "endTime": "2022-06-10T18:35:00.000Z",
267
+ "url": "https://codeforces.com/contests/1689"
234
268
  }
235
269
  ]
236
270
  }
package/dist/server.d.ts CHANGED
@@ -1 +1,2 @@
1
+ #!/usr/bin/env node
1
2
  export {};
@@ -0,0 +1,180 @@
1
+ <!DOCTYPE html>
2
+ <html lang="zh">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1">
6
+ <link
7
+ href="https://fonts.loli.net/css?family=Roboto:300,400,500,700&display=swap"
8
+ rel="stylesheet"
9
+ />
10
+ <link
11
+ href="https://cdnjs.loli.net/ajax/libs/mdb-ui-kit/4.1.0/mdb.min.css"
12
+ rel="stylesheet"
13
+ />
14
+ <title>LSCT</title>
15
+ <style>
16
+ html, body {
17
+ height: 100%;
18
+ }
19
+
20
+ #content {
21
+ height: 100%;
22
+ display: flex;
23
+ flex-direction: column;
24
+ justify-content: center;
25
+ align-items: center;
26
+ }
27
+
28
+ .container {
29
+ width: 100%;
30
+ height: 100%;
31
+ }
32
+
33
+ main {
34
+ height: 100%;
35
+ }
36
+ </style>
37
+ </head>
38
+ <body>
39
+ <main>
40
+ <div class="container">
41
+ <div id="content" class="row">
42
+ <div id="selects" class="col-md-8 gx-5 d-inline-flex">
43
+ <div class="flex-fill">
44
+ <h2>目标 OJ</h2>
45
+ <div class="form-check">
46
+ <input class="form-check-input" type="checkbox" value="" id="cf" checked/>
47
+ <label class="form-check-label" for="cf">Codeforces</label>
48
+ </div>
49
+ <div class="form-check">
50
+ <input class="form-check-input" type="checkbox" value="" id="at" checked/>
51
+ <label class="form-check-label" for="at">AtCoder</label>
52
+ </div>
53
+ <div class="form-check">
54
+ <input class="form-check-input" type="checkbox" value="" id="lc" checked/>
55
+ <label class="form-check-label" for="lc">Leetcode</label>
56
+ </div>
57
+ <div class="form-check">
58
+ <input class="form-check-input" type="checkbox" value="" id="lg" checked/>
59
+ <label class="form-check-label" for="lg">洛谷</label>
60
+ </div>
61
+ <div class="form-check">
62
+ <input class="form-check-input" type="checkbox" value="" id="nc" checked/>
63
+ <label class="form-check-label" for="nc">牛客</label>
64
+ </div>
65
+ </div>
66
+ <div class="flex-fill">
67
+ <h2>语言</h2>
68
+ <div class="form-check">
69
+ <input class="form-check-input" type="radio" name="lang" id="zhCN"
70
+ checked/>
71
+ <label class="form-check-label" for="zhCN">zh-CN</label>
72
+ </div>
73
+ <div class="form-check">
74
+ <input class="form-check-input" type="radio" name="lang"
75
+ id="zhNE"/>
76
+ <label class="form-check-label" for="zhNE">zh-NE</label>
77
+ </div>
78
+ <div class="form-check">
79
+ <input class="form-check-input" type="radio" name="lang"
80
+ id="zhTW"/>
81
+ <label class="form-check-label" for="zhTW">zh-TW</label>
82
+ </div>
83
+ <div class="form-check">
84
+ <input class="form-check-input" type="radio" name="lang"
85
+ id="en"/>
86
+ <label class="form-check-label" for="en">en</label>
87
+ </div>
88
+ </div>
89
+ </div>
90
+ <div class="col-md-8 gx-5 my-4 d-inline-flex">
91
+ <div class="form-outline me-2 flex-fill">
92
+ <!--suppress HtmlFormInputWithoutLabel -->
93
+ <input type="text" id="url" readonly class="form-control"/>
94
+ </div>
95
+ <button class="btn btn-primary" id="copy">Copy</button>
96
+ </div>
97
+ </div>
98
+ </div>
99
+ </main>
100
+ <script src="https://cdnjs.loli.net/ajax/libs/mdb-ui-kit/4.1.0/mdb.min.js" crossorigin="anonymous"
101
+ referrerpolicy="no-referrer"
102
+ ></script>
103
+ <script src="https://cdnjs.loli.net/ajax/libs/jquery/3.6.0/jquery.min.js" crossorigin="anonymous"
104
+ referrerpolicy="no-referrer"></script>
105
+ <script src="https://cdnjs.loli.net/ajax/libs/clipboard.js/2.0.10/clipboard.min.js"
106
+ crossorigin="anonymous"
107
+ referrerpolicy="no-referrer"></script>
108
+ <script>
109
+ function updateURL()
110
+ {
111
+ let curr = window.location.href.split("?")[0];
112
+ if(!curr.endsWith("/"))
113
+ {
114
+ curr += "/";
115
+ }
116
+ curr += "ics";
117
+ const args = new URLSearchParams();
118
+
119
+ //process ojs
120
+ const cf = $("#cf").prop("checked");
121
+ const at = $("#at").prop("checked");
122
+ const lc = $("#lc").prop("checked");
123
+ const lg = $("#lg").prop("checked");
124
+ const nc = $("#nc").prop("checked");
125
+ if(!(cf && at && lc && lg && nc))
126
+ {
127
+ const ojs = [];
128
+ if(cf) ojs.push("cf");
129
+ if(at) ojs.push("at");
130
+ if(lc) ojs.push("lc");
131
+ if(lg) ojs.push("lg");
132
+ if(nc) ojs.push("nc");
133
+ args.append("o", ojs.join(","));
134
+ }
135
+
136
+ //process lang
137
+ const lang = $("input[name='lang']:checked").next().text();
138
+ if(lang !== "zh-CN") args.append("l", lang);
139
+ const query = args.toString();
140
+ let url = curr;
141
+ if(query.length > 0) url += "?" + query;
142
+ $("#url").val(url);
143
+ }
144
+
145
+ document.addEventListener("DOMContentLoaded", function ()
146
+ {
147
+ updateURL();
148
+ $("#cf,#at,#lc,#lg,#nc,input[name='lang']").change(updateURL);
149
+
150
+ const copy = $("#copy");
151
+
152
+ copy.tooltip({
153
+ trigger: "click",
154
+ placement: "bottom",
155
+ title: "Copied!"
156
+ });
157
+
158
+ copy.click(function ()
159
+ {
160
+ const url = $("#url").val();
161
+ if(url.length > 0)
162
+ {
163
+ new ClipboardJS("#copy", {
164
+ text: function ()
165
+ {
166
+ return url;
167
+ }
168
+ });
169
+ copy.tooltip("show");
170
+ setTimeout(function ()
171
+ {
172
+ copy.tooltip("hide");
173
+ }, 1000);
174
+ }
175
+ });
176
+ }
177
+ );
178
+ </script>
179
+ </body>
180
+ </html>
package/dist/server.js CHANGED
@@ -1,3 +1,4 @@
1
+ #!/usr/bin/env node
1
2
  "use strict";
2
3
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
4
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
@@ -22,6 +23,7 @@ const crypto_1 = require("crypto");
22
23
  const commander_1 = require("commander");
23
24
  const package_json_1 = require("../package.json");
24
25
  const lodash_1 = __importDefault(require("lodash"));
26
+ const fs_1 = require("fs");
25
27
  const app = (0, express_1.default)();
26
28
  function assertType(obj) {
27
29
  }
@@ -42,10 +44,12 @@ const logger = () => {
42
44
  next();
43
45
  };
44
46
  };
47
+ const web = (0, fs_1.readFileSync)(`${__dirname}/server.html`).toString();
45
48
  app.set("trust proxy", true);
46
49
  app.use(logger());
47
50
  app.get("/", (req, res) => {
48
- res.redirect("https://github.com/StableAgOH/lscontests");
51
+ res.set("Content-Type", "text/html");
52
+ res.send(web);
49
53
  });
50
54
  app.get("/ics", (req, res) => __awaiter(void 0, void 0, void 0, function* () {
51
55
  const { language, l, ojs, o } = req.query;
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,11 +1,10 @@
1
1
  {
2
2
  "name": "lscontests",
3
- "version": "2.1.5",
3
+ "version": "2.2.1",
4
4
  "description": "A tool to get information about the contests on each OJ",
5
5
  "keywords": [
6
6
  "cli",
7
7
  "crawler",
8
- "oj",
9
8
  "atcoder",
10
9
  "codeforces",
11
10
  "luogu",
@@ -25,10 +24,13 @@
25
24
  "dist"
26
25
  ],
27
26
  "scripts": {
28
- "build": "rimraf ./dist/* && tsc -p src",
29
- "clean": "rimraf ./dist",
27
+ "prebuild": "rimraf ./dist/*",
28
+ "postbuild": "cpy --flat src/server.html dist",
29
+ "build": "tsc -p src",
30
+ "clean": "rimraf ./dist ./docs ./node_modules",
30
31
  "docs": "typedoc",
31
32
  "lint": "eslint . && markdownlint .",
33
+ "lint:fix": "eslint . --fix && markdownlint . --fix",
32
34
  "release": "mkdirp docs && yarn semantic-release",
33
35
  "start": "tsx src/cli.ts",
34
36
  "start-s": "tsx src/server.ts"
@@ -36,7 +38,7 @@
36
38
  "dependencies": {
37
39
  "axios": "^0.27.2",
38
40
  "axios-retry": "^3.2.5",
39
- "cheerio": "^1.0.0-rc.10",
41
+ "cheerio": "^1.0.0-rc.11",
40
42
  "commander": "^9.2.0",
41
43
  "express": "^4.18.1",
42
44
  "ics": "^2.35.0",
@@ -50,20 +52,21 @@
50
52
  "@semantic-release/git": "^10.0.1",
51
53
  "@types/express": "^4.17.13",
52
54
  "@types/lodash": "^4.14.182",
53
- "@types/node": "^17.0.34",
55
+ "@types/node": "^17.0.35",
54
56
  "@types/pangu": "^3.3.0",
55
- "@typescript-eslint/eslint-plugin": "^5.24.0",
56
- "@typescript-eslint/parser": "^5.24.0",
57
+ "@typescript-eslint/eslint-plugin": "^5.26.0",
58
+ "@typescript-eslint/parser": "^5.26.0",
57
59
  "cz-conventional-changelog": "3.3.0",
58
- "eslint": "^8.15.0",
60
+ "eslint": "^8.16.0",
59
61
  "markdownlint-cli": "^0.31.1",
60
62
  "mkdirp": "^1.0.4",
61
63
  "rimraf": "^3.0.2",
62
64
  "semantic-release": "^19.0.2",
63
- "tsx": "*",
65
+ "tsx": "^3.4.1",
64
66
  "typedoc": "^0.22.15",
65
67
  "typedoc-plugin-extras": "^2.2.3",
66
- "typescript": "^4.6.4"
68
+ "typescript": "^4.7.2",
69
+ "cpy-cli": "^4.1.0"
67
70
  },
68
71
  "config": {
69
72
  "commitizen": {