lscontests 1.11.2 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
package/README.md CHANGED
@@ -54,20 +54,13 @@ Options:
54
54
  It performs as follows:
55
55
 
56
56
  <!-- block_cli begin -->
57
- (*The following content was automatically generated using [semantic-release](https://github.com/semantic-release/semantic-release) on Thu, 19 May 2022 12:15:46 GMT*)
57
+ (*The following content was automatically generated using [semantic-release](https://github.com/semantic-release/semantic-release) on Tue, 24 May 2022 12:43:08 GMT*)
58
58
 
59
59
  <details>
60
60
  <summary> <code>> lsct -L en</code> </summary>
61
61
 
62
62
  ```text
63
- There are 3 contests is running on NowCoder
64
-
65
- OJ: NowCoder
66
- Contest name: 牛客竞赛博弈专题班 Sprague-Grundy 函数(SG 函数、图游戏、Nim 和)
67
- Rule: ICPC
68
- Start time: 5/13/2022, 04:00:00
69
- End time: 5/21/2022, 13:00:00
70
- https://ac.nowcoder.com/acm/contest/34655
63
+ There are 2 contests is running on NowCoder
71
64
 
72
65
  OJ: NowCoder
73
66
  Contest name: 2022 图论班第一章图匹配例题与习题
@@ -83,49 +76,28 @@ Start time: 5/17/2022, 09:00:00
83
76
  End time: 5/24/2022, 14:00:00
84
77
  https://ac.nowcoder.com/acm/contest/34974
85
78
 
86
- There are 6 contests on Codeforces,NowCoder,AtCoder,LeetCode in the next 3 days
79
+ There are 3 contests on Codeforces,NowCoder in the next 3 days
87
80
 
88
81
  OJ: Codeforces
89
- Contest name: Codeforces Round #792 (Div. 1 + Div. 2)
82
+ Contest name: Codeforces Round #794 (Div. 1)
90
83
  Rule: Codeforces
91
- Start time: 5/19/2022, 14:35:00
92
- End time: 5/19/2022, 16:35:00
93
- https://codeforces.com/contests/1684
94
-
95
- OJ: NowCoder
96
- Contest name: 武汉理工大学第三届程序设计竞赛(同步赛)
97
- Rule: ICPC
98
- Start time: 5/21/2022, 03:00:00
99
- End time: 5/21/2022, 08:00:00
100
- https://ac.nowcoder.com/acm/contest/33634
84
+ Start time: 5/25/2022, 17:35:00
85
+ End time: 5/25/2022, 19:50:00
86
+ https://codeforces.com/contests/1685
101
87
 
102
- OJ: NowCoder
103
- Contest name: 第十九届同济大学程序设计竞赛暨高校网络友谊赛
104
- Rule: ICPC
105
- Start time: 5/21/2022, 05:00:00
106
- End time: 5/21/2022, 10:00:00
107
- https://ac.nowcoder.com/acm/contest/34442
88
+ OJ: Codeforces
89
+ Contest name: Codeforces Round #794 (Div. 2)
90
+ Rule: Codeforces
91
+ Start time: 5/25/2022, 17:35:00
92
+ End time: 5/25/2022, 19:50:00
93
+ https://codeforces.com/contests/1686
108
94
 
109
95
  OJ: NowCoder
110
- Contest name: 牛客小白月赛 50
96
+ Contest name: 牛客练习赛 99
111
97
  Rule: ICPC
112
- Start time: 5/21/2022, 11:00:00
113
- End time: 5/21/2022, 13:00:00
114
- https://ac.nowcoder.com/acm/contest/11227
115
-
116
- OJ: AtCoder
117
- Contest name: Ⓐ AtCoder Beginner Contest 252
118
- Rule: AtCoder
119
- Start time: 5/21/2022, 12:00:00
120
- End time: 5/21/2022, 13:40:00
121
- https://atcoder.jp/contests/abc252
122
-
123
- OJ: LeetCode
124
- Contest name: Weekly Contest 294
125
- Rule: AtCoder
126
- Start time: 5/22/2022, 02:30:00
127
- End time: 5/22/2022, 04:00:00
128
- https://leetcode.com/contest/weekly-contest-294
98
+ Start time: 5/27/2022, 11:00:00
99
+ End time: 5/27/2022, 13:30:00
100
+ https://ac.nowcoder.com/acm/contest/34330
129
101
  ```
130
102
 
131
103
  </details>
@@ -136,49 +108,28 @@ https://leetcode.com/contest/weekly-contest-294
136
108
  ```text
137
109
  No running contests
138
110
 
139
- There are 6 contests on Codeforces,AtCoder in the next 7 days
140
-
141
- OJ: Codeforces
142
- Contest name: Codeforces Round #792 (Div. 1 + Div. 2)
143
- Rule: Codeforces
144
- Start time: 5/19/2022, 14:35:00
145
- End time: 5/19/2022, 16:35:00
146
- https://codeforces.com/contests/1684
147
-
148
- OJ: AtCoder
149
- Contest name: Ⓐ AtCoder Beginner Contest 252
150
- Rule: AtCoder
151
- Start time: 5/21/2022, 12:00:00
152
- End time: 5/21/2022, 13:40:00
153
- https://atcoder.jp/contests/abc252
154
-
155
- OJ: Codeforces
156
- Contest name: Codeforces Round #793 (Div. 2)
157
- Rule: Codeforces
158
- Start time: 5/22/2022, 14:35:00
159
- End time: 5/22/2022, 16:35:00
160
- https://codeforces.com/contests/1682
161
-
162
- OJ: Codeforces
163
- Contest name: Educational Codeforces Round 129 (Rated for Div. 2)
164
- Rule: ICPC
165
- Start time: 5/23/2022, 14:35:00
166
- End time: 5/23/2022, 16:35:00
167
- https://codeforces.com/contests/1681
111
+ There are 3 contests on Codeforces,AtCoder in the next 7 days
168
112
 
169
113
  OJ: Codeforces
170
114
  Contest name: Codeforces Round #794 (Div. 1)
171
115
  Rule: Codeforces
172
116
  Start time: 5/25/2022, 17:35:00
173
- End time: 5/25/2022, 19:35:00
117
+ End time: 5/25/2022, 19:50:00
174
118
  https://codeforces.com/contests/1685
175
119
 
176
120
  OJ: Codeforces
177
121
  Contest name: Codeforces Round #794 (Div. 2)
178
122
  Rule: Codeforces
179
123
  Start time: 5/25/2022, 17:35:00
180
- End time: 5/25/2022, 19:35:00
124
+ End time: 5/25/2022, 19:50:00
181
125
  https://codeforces.com/contests/1686
126
+
127
+ OJ: AtCoder
128
+ Contest name: Ⓗ AtCoder Heuristic Contest 011
129
+ Rule: AtCoder
130
+ Start time: 5/28/2022, 03:00:00
131
+ End time: 6/5/2022, 10:00:00
132
+ https://atcoder.jp/contests/ahc011
182
133
  ```
183
134
 
184
135
  </details>
@@ -192,18 +143,18 @@ https://codeforces.com/contests/1686
192
143
  "upcoming": [
193
144
  {
194
145
  "ojName": "AtCoder",
195
- "name": " AtCoder Beginner Contest 252",
146
+ "name": " AtCoder Heuristic Contest 011",
196
147
  "rule": "AtCoder",
197
- "startTime": "2022-05-21T12:00:00.000Z",
198
- "endTime": "2022-05-21T13:40:00.000Z",
199
- "url": "https://atcoder.jp/contests/abc252"
148
+ "startTime": "2022-05-28T03:00:00.000Z",
149
+ "endTime": "2022-06-05T10:00:00.000Z",
150
+ "url": "https://atcoder.jp/contests/ahc011"
200
151
  },
201
152
  {
202
153
  "ojName": "Codeforces",
203
154
  "name": "Codeforces Round #794 (Div. 1)",
204
155
  "rule": "Codeforces",
205
156
  "startTime": "2022-05-25T17:35:00.000Z",
206
- "endTime": "2022-05-25T19:35:00.000Z",
157
+ "endTime": "2022-05-25T19:50:00.000Z",
207
158
  "url": "https://codeforces.com/contests/1685"
208
159
  },
209
160
  {
@@ -211,32 +162,8 @@ https://codeforces.com/contests/1686
211
162
  "name": "Codeforces Round #794 (Div. 2)",
212
163
  "rule": "Codeforces",
213
164
  "startTime": "2022-05-25T17:35:00.000Z",
214
- "endTime": "2022-05-25T19:35:00.000Z",
165
+ "endTime": "2022-05-25T19:50:00.000Z",
215
166
  "url": "https://codeforces.com/contests/1686"
216
- },
217
- {
218
- "ojName": "Codeforces",
219
- "name": "Educational Codeforces Round 129 (Rated for Div. 2)",
220
- "rule": "ICPC",
221
- "startTime": "2022-05-23T14:35:00.000Z",
222
- "endTime": "2022-05-23T16:35:00.000Z",
223
- "url": "https://codeforces.com/contests/1681"
224
- },
225
- {
226
- "ojName": "Codeforces",
227
- "name": "Codeforces Round #793 (Div. 2)",
228
- "rule": "Codeforces",
229
- "startTime": "2022-05-22T14:35:00.000Z",
230
- "endTime": "2022-05-22T16:35:00.000Z",
231
- "url": "https://codeforces.com/contests/1682"
232
- },
233
- {
234
- "ojName": "Codeforces",
235
- "name": "Codeforces Round #792 (Div. 1 + Div. 2)",
236
- "rule": "Codeforces",
237
- "startTime": "2022-05-19T14:35:00.000Z",
238
- "endTime": "2022-05-19T16:35:00.000Z",
239
- "url": "https://codeforces.com/contests/1684"
240
167
  }
241
168
  ]
242
169
  }
package/dist/index.js CHANGED
@@ -63,7 +63,7 @@ function getContests(config) {
63
63
  }
64
64
  })))).reduce((ls1, ls2) => ls1.concat(ls2));
65
65
  const ret = {
66
- running: cfg.upcoming ? contests.filter(ct => ct.startTime <= new Date() && ct.endTime > new Date()) : [],
66
+ running: cfg.running ? contests.filter(ct => ct.startTime <= new Date() && ct.endTime > new Date()) : [],
67
67
  upcoming: cfg.upcoming ? contests.filter(ct => ct.startTime > new Date() && ct.startTime <= new Date(Date.now() + cfg.days * 86400000)) : []
68
68
  };
69
69
  if (cfg.sort)
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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"}
@@ -55,12 +55,13 @@ exports.at = {
55
55
  url: ""
56
56
  };
57
57
  $("td", this).each(function (idx) {
58
+ var _a;
58
59
  if (idx == 0)
59
60
  ct.startTime = new Date($(this).text());
60
61
  else if (idx == 1) {
61
62
  const ele = $("a", this);
62
63
  ct.name = `${$("span:first", this).text()} ${ele.text()}`;
63
- ct.url = `https://atcoder.jp${ele.attr().href}`;
64
+ ct.url = `https://atcoder.jp${(_a = ele.attr()) === null || _a === void 0 ? void 0 : _a.href}`;
64
65
  }
65
66
  else if (idx == 2) {
66
67
  const [h, m] = $(this).text().split(":");
@@ -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;IACT,GAAG;;YAEL,MAAM,QAAQ,GAAG,MAAM,eAAK,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;YAChE,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACtC,MAAM,QAAQ,GAAc,EAAE,CAAC;YAC/B,CAAC,CAAC,kEAAkE,CAAC,CAAC,IAAI,CAAC;gBAEvE,MAAM,EAAE,GAAY;oBAChB,MAAM,EAAE,UAAE,CAAC,IAAI;oBACf,IAAI,EAAE,EAAE;oBACR,IAAI,EAAE,SAAS;oBACf,SAAS,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC;oBACtB,OAAO,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC;oBACpB,GAAG,EAAE,EAAE;iBACV,CAAC;gBACF,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,GAAG;oBAE5B,IAAG,GAAG,IAAI,CAAC;wBAAE,EAAE,CAAC,SAAS,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;yBAChD,IAAG,GAAG,IAAI,CAAC,EAChB;wBACI,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;wBACzB,EAAE,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC;wBAC1D,EAAE,CAAC,GAAG,GAAG,qBAAqB,GAAG,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;qBACnD;yBACI,IAAG,GAAG,IAAI,CAAC,EAChB;wBACI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;wBACzC,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;qBAChG;gBACL,CAAC,CAAC,CAAC;gBACH,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACtB,CAAC,CAAC,CAAC;YACH,OAAO,QAAQ,CAAC;QACpB,CAAC;KAAA;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;IACT,GAAG;;YAEL,MAAM,QAAQ,GAAG,MAAM,eAAK,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;YAChE,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACtC,MAAM,QAAQ,GAAc,EAAE,CAAC;YAC/B,CAAC,CAAC,kEAAkE,CAAC,CAAC,IAAI,CAAC;gBAEvE,MAAM,EAAE,GAAY;oBAChB,MAAM,EAAE,UAAE,CAAC,IAAI;oBACf,IAAI,EAAE,EAAE;oBACR,IAAI,EAAE,SAAS;oBACf,SAAS,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC;oBACtB,OAAO,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC;oBACpB,GAAG,EAAE,EAAE;iBACV,CAAC;gBACF,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,GAAG;;oBAE5B,IAAG,GAAG,IAAI,CAAC;wBAAE,EAAE,CAAC,SAAS,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;yBAChD,IAAG,GAAG,IAAI,CAAC,EAChB;wBACI,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;wBACzB,EAAE,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC;wBAC1D,EAAE,CAAC,GAAG,GAAG,qBAAqB,MAAA,GAAG,CAAC,IAAI,EAAE,0CAAE,IAAI,EAAE,CAAC;qBACpD;yBACI,IAAG,GAAG,IAAI,CAAC,EAChB;wBACI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;wBACzC,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;qBAChG;gBACL,CAAC,CAAC,CAAC;gBACH,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACtB,CAAC,CAAC,CAAC;YACH,OAAO,QAAQ,CAAC;QACpB,CAAC;KAAA;CACJ,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
package/dist/server.js ADDED
@@ -0,0 +1,107 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ const express_1 = __importDefault(require("express"));
16
+ const index_1 = require("./index");
17
+ const oj_1 = require("./lib/oj");
18
+ const locale_1 = require("./locale");
19
+ const ics_1 = require("ics");
20
+ const pangu_1 = __importDefault(require("pangu"));
21
+ const crypto_1 = require("crypto");
22
+ const commander_1 = require("commander");
23
+ const package_json_1 = require("../package.json");
24
+ const lodash_1 = __importDefault(require("lodash"));
25
+ const app = (0, express_1.default)();
26
+ function assertType(obj) {
27
+ }
28
+ app.get("/", (req, res) => {
29
+ res.redirect("https://github.com/StableAgOH/lscontests");
30
+ });
31
+ app.get("/ics", (req, res) => __awaiter(void 0, void 0, void 0, function* () {
32
+ const { language, l, ojs, o } = req.query;
33
+ const lArg = language || l || "zh-CN";
34
+ let oArg = ojs || o;
35
+ if (lArg instanceof Array) {
36
+ res.status(400).send("Multiple languages not supported");
37
+ return;
38
+ }
39
+ if (typeof oArg === "string") {
40
+ if (oArg.includes(","))
41
+ oArg = oArg.split(",");
42
+ else
43
+ oArg = [oArg];
44
+ }
45
+ else if (!oArg)
46
+ oArg = Object.keys(oj_1.alloj);
47
+ assertType(oArg);
48
+ assertType(lArg);
49
+ const data = yield getIcs(lArg, oArg);
50
+ res.setHeader("Content-Type", "text/calendar");
51
+ res.send(data);
52
+ }));
53
+ const contestsCache = {
54
+ contests: [],
55
+ lastUpdate: 0
56
+ };
57
+ function getIcs(lang, ojs) {
58
+ return __awaiter(this, void 0, void 0, function* () {
59
+ if (contestsCache.lastUpdate < Date.now() - 1000 * 60 * 5) {
60
+ const c = yield (0, index_1.getContests)({
61
+ days: 365 * 10,
62
+ });
63
+ contestsCache.contests = lodash_1.default.uniqBy(contestsCache.contests.concat(c.running.concat(c.upcoming)), c => JSON.stringify(c));
64
+ contestsCache.lastUpdate = Date.now();
65
+ }
66
+ const contests = contestsCache.contests.filter(c => ojs.some(oj => c.ojName === oj_1.alloj[oj].name));
67
+ const langDict = yield (0, locale_1.getLangDict)(lang);
68
+ const events = contests.map((c) => {
69
+ const ls = [];
70
+ ls.push(`${langDict.ojName}: ${c.ojName}`);
71
+ ls.push(`${langDict.name}: ${c.name}`);
72
+ ls.push(`${langDict.rule}: ${c.rule}`);
73
+ ls.push(c.url);
74
+ const description = pangu_1.default.spacing(ls.join("\n"));
75
+ const ret = {
76
+ start: (0, ics_1.convertTimestampToArray)(c.startTime.getTime(), "local"),
77
+ end: (0, ics_1.convertTimestampToArray)(c.endTime.getTime(), "local"),
78
+ calName: "算法竞赛",
79
+ productId: "-//StableAgOH//LSCT//CN",
80
+ title: c.name,
81
+ url: c.url,
82
+ location: c.ojName,
83
+ categories: [c.rule],
84
+ uid: `${(0, crypto_1.randomUUID)()}@LSCT`,
85
+ description,
86
+ };
87
+ return ret;
88
+ });
89
+ const { value, error } = (0, ics_1.createEvents)(events);
90
+ if (error)
91
+ throw error;
92
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
93
+ return value;
94
+ });
95
+ }
96
+ const command = new commander_1.Command()
97
+ .name(Object.keys(package_json_1.bin)[1])
98
+ .version(package_json_1.version)
99
+ .option("-h, --host, <host>", "Host to listen on", "0.0.0.0")
100
+ .option("-p, --port, <port>", "Port to listen on", "8080");
101
+ command.parse();
102
+ const { host, port } = command.opts();
103
+ app.listen(port, host, () => {
104
+ const logURL = `http://${host === "0.0.0.0" ? "127.0.0.1" : host}:${port}/`;
105
+ console.log(`Listening on ${logURL}`);
106
+ });
107
+ //# sourceMappingURL=server.js.map
@@ -0,0 +1 @@
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": "1.11.2",
3
+ "version": "2.0.0",
4
4
  "description": "A tool to get information about the contests on each OJ",
5
5
  "keywords": [
6
6
  "cli",
@@ -18,7 +18,8 @@
18
18
  "license": "GPL-3.0",
19
19
  "main": "./dist/index.js",
20
20
  "bin": {
21
- "lsct": "./dist/cli.js"
21
+ "lsct": "./dist/cli.js",
22
+ "lsct-s": "./dist/server.js"
22
23
  },
23
24
  "files": [
24
25
  "dist"
@@ -28,15 +29,17 @@
28
29
  "clean": "rimraf ./dist",
29
30
  "docs": "typedoc",
30
31
  "lint": "eslint && markdownlint README.md",
31
- "prestart": "yarn build",
32
32
  "release": "mkdirp docs && yarn semantic-release",
33
- "start": "node ./dist/cli.js"
33
+ "start": "tsx src/cli.ts",
34
+ "start-s": "tsx src/server.ts"
34
35
  },
35
36
  "dependencies": {
36
37
  "axios": "^0.27.2",
37
38
  "axios-retry": "^3.2.5",
38
39
  "cheerio": "^1.0.0-rc.10",
39
40
  "commander": "^9.2.0",
41
+ "express": "^4.18.1",
42
+ "ics": "^2.35.0",
40
43
  "lodash": "^4.17.21",
41
44
  "pangu": "^4.0.7"
42
45
  },
@@ -45,6 +48,7 @@
45
48
  "@semantic-release/changelog": "^6.0.1",
46
49
  "@semantic-release/exec": "^6.0.3",
47
50
  "@semantic-release/git": "^10.0.1",
51
+ "@types/express": "^4.17.13",
48
52
  "@types/lodash": "^4.14.182",
49
53
  "@types/node": "^17.0.34",
50
54
  "@types/pangu": "^3.3.0",
@@ -56,6 +60,7 @@
56
60
  "mkdirp": "^1.0.4",
57
61
  "rimraf": "^3.0.2",
58
62
  "semantic-release": "^19.0.2",
63
+ "tsx": "*",
59
64
  "typedoc": "^0.22.15",
60
65
  "typedoc-plugin-extras": "^2.2.3",
61
66
  "typescript": "^4.6.4"