lscontests 2.2.3 → 2.3.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 CHANGED
@@ -41,6 +41,7 @@ Options:
41
41
  -d, --days, <day> number of days to display, set to 0 to get all
42
42
  contests infomation (default: "3")
43
43
  -l, --list list all supported OJ and it's abbreviation
44
+ -s, --silent do not print log
44
45
  -o, --oj <ojs...> OJs to display (choices: "at", "cf", "lc", "lg", "nc")
45
46
  -r, --raw print raw contest list
46
47
  -L, --language <lang> set output language (choices: "en", "zh-CN", "zh-NE",
@@ -55,7 +56,7 @@ Options:
55
56
  It performs as follows:
56
57
 
57
58
  <!-- block_cli begin -->
58
- (*The following content was automatically generated using [semantic-release](https://github.com/semantic-release/semantic-release) on Thu, 26 May 2022 11:39:17 GMT*)
59
+ (*The following content was automatically generated using [semantic-release](https://github.com/semantic-release/semantic-release) on Fri, 27 May 2022 15:42:23 GMT*)
59
60
 
60
61
  <details>
61
62
  <summary> <code>> lsct -L en</code> </summary>
@@ -70,14 +71,7 @@ Start time: 5/13/2022, 06:00:00
70
71
  End time: 5/30/2022, 08:00:00
71
72
  https://ac.nowcoder.com/acm/contest/34649
72
73
 
73
- There are 7 contests on NowCoder,AtCoder,LeetCode in the next 3 days
74
-
75
- OJ: NowCoder
76
- Contest name: 牛客练习赛 99
77
- Rule: ICPC
78
- Start time: 5/27/2022, 11:00:00
79
- End time: 5/27/2022, 13:30:00
80
- https://ac.nowcoder.com/acm/contest/34330
74
+ There are 8 contests on AtCoder,NowCoder,LeetCode in the next 3 days
81
75
 
82
76
  OJ: AtCoder
83
77
  Contest name: Ⓗ AtCoder Heuristic Contest 011
@@ -120,6 +114,20 @@ Rule: AtCoder
120
114
  Start time: 5/29/2022, 02:30:00
121
115
  End time: 5/29/2022, 04:00:00
122
116
  https://leetcode.com/contest/weekly-contest-295
117
+
118
+ OJ: NowCoder
119
+ Contest name: 第四届 SCPC 中南民族大学程序设计竞赛(同步赛)
120
+ Rule: ICPC
121
+ Start time: 5/29/2022, 04:00:00
122
+ End time: 5/29/2022, 09:00:00
123
+ https://ac.nowcoder.com/acm/contest/35624
124
+
125
+ OJ: AtCoder
126
+ Contest name: Ⓐ AtCoder Regular Contest 141
127
+ Rule: AtCoder
128
+ Start time: 5/29/2022, 12:00:00
129
+ End time: 5/29/2022, 14:00:00
130
+ https://atcoder.jp/contests/arc141
123
131
  ```
124
132
 
125
133
  </details>
@@ -130,7 +138,7 @@ https://leetcode.com/contest/weekly-contest-295
130
138
  ```text
131
139
  No running contests
132
140
 
133
- There are 4 contests on AtCoder,Codeforces in the next 7 days
141
+ There are 6 contests on AtCoder,Codeforces in the next 7 days
134
142
 
135
143
  OJ: AtCoder
136
144
  Contest name: Ⓗ AtCoder Heuristic Contest 011
@@ -159,6 +167,20 @@ Rule: Codeforces
159
167
  Start time: 5/31/2022, 14:35:00
160
168
  End time: 5/31/2022, 16:35:00
161
169
  https://codeforces.com/contests/1691
170
+
171
+ OJ: Codeforces
172
+ Contest name: Codeforces Round #796 (Div. 1)
173
+ Rule: Codeforces
174
+ Start time: 6/3/2022, 14:35:00
175
+ End time: 6/3/2022, 16:35:00
176
+ https://codeforces.com/contests/1687
177
+
178
+ OJ: Codeforces
179
+ Contest name: Codeforces Round #796 (Div. 2)
180
+ Rule: Codeforces
181
+ Start time: 6/3/2022, 14:35:00
182
+ End time: 6/3/2022, 16:35:00
183
+ https://codeforces.com/contests/1688
162
184
  ```
163
185
 
164
186
  </details>
@@ -265,6 +287,14 @@ https://codeforces.com/contests/1691
265
287
  "startTime": "2022-06-10T16:35:00.000Z",
266
288
  "endTime": "2022-06-10T18:35:00.000Z",
267
289
  "url": "https://codeforces.com/contests/1689"
290
+ },
291
+ {
292
+ "ojName": "Codeforces",
293
+ "name": "Codeforces Round #799 (Div. 4)",
294
+ "rule": "ICPC",
295
+ "startTime": "2022-06-14T14:35:00.000Z",
296
+ "endTime": "2022-06-14T16:50:00.000Z",
297
+ "url": "https://codeforces.com/contests/1692"
268
298
  }
269
299
  ]
270
300
  }
package/dist/cli.d.ts CHANGED
@@ -1,8 +1,11 @@
1
1
  #!/usr/bin/env node
2
+ import winston from "winston";
2
3
  /**
3
4
  * CLI entrypoint
4
- * @param arg Arguments
5
+ * @param args Arguments
5
6
  * @param name Program name
6
- * @returns CLI output content
7
+ * @param out Output result
8
+ * @param log_level Log level
9
+ * @param log_transport A winston transport instance
7
10
  */
8
- export declare function cli(arg?: string, name?: string): Promise<string>;
11
+ export declare function cli(args?: string, name?: string, out?: (msg: string) => void, log_level?: string, log_transport?: winston.transports.ConsoleTransportInstance): Promise<void>;
package/dist/cli.js CHANGED
@@ -14,73 +14,69 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
14
14
  };
15
15
  Object.defineProperty(exports, "__esModule", { value: true });
16
16
  exports.cli = void 0;
17
+ const commander_1 = __importDefault(require("commander"));
18
+ const lodash_1 = __importDefault(require("lodash"));
19
+ const winston_1 = __importDefault(require("winston"));
20
+ const _1 = __importDefault(require("."));
17
21
  const package_json_1 = require("../package.json");
18
- const commander_1 = require("commander");
19
22
  const oj_1 = require("./lib/oj");
20
- const _1 = require(".");
21
23
  const locale_1 = require("./locale");
22
- const lodash_1 = __importDefault(require("lodash"));
23
24
  function initCmd() {
24
- return new commander_1.Command()
25
- .name(Object.keys(package_json_1.bin)[0])
25
+ return new commander_1.default.Command()
26
26
  .version(package_json_1.version)
27
27
  .option("-d, --days, <day>", "number of days to display, set to 0 to get all contests infomation", "3")
28
28
  .option("-l, --list", "list all supported OJ and it's abbreviation")
29
- .addOption(new commander_1.Option("-o, --oj <ojs...>", "OJs to display").choices(Object.keys(oj_1.alloj)))
30
- .addOption(new commander_1.Option("-r, --raw", "print raw contest list").conflicts("language"))
31
- .addOption(new commander_1.Option("-L, --language <lang>", "set output language").default("zh-CN").choices(locale_1.langList))
29
+ .option("-s, --silent", "do not print log")
30
+ .addOption(new commander_1.default.Option("-o, --oj <ojs...>", "OJs to display").choices(Object.keys(oj_1.alloj)))
31
+ .addOption(new commander_1.default.Option("-r, --raw", "print raw contest list").conflicts("language"))
32
+ .addOption(new commander_1.default.Option("-L, --language <lang>", "set output language").default("zh-CN").choices(locale_1.langList))
32
33
  .option("--no-sort", "do not sort by contests start time, but by OJ order")
33
34
  .option("--no-running", "do not list all running contests")
34
35
  .option("--no-upcoming", "do not list all upcoming contests");
35
36
  }
36
37
  /**
37
38
  * CLI entrypoint
38
- * @param arg Arguments
39
+ * @param args Arguments
39
40
  * @param name Program name
40
- * @returns CLI output content
41
+ * @param out Output result
42
+ * @param log_level Log level
43
+ * @param log_transport A winston transport instance
41
44
  */
42
- function cli(arg, name) {
45
+ function cli(args, name, out = console.log, log_level = "info", log_transport = winston_1.default.transports.Console) {
43
46
  return __awaiter(this, void 0, void 0, function* () {
44
- const cmd = initCmd();
45
- if (arg === undefined)
46
- cmd.parse();
47
- else {
48
- let msg = "";
49
- try {
50
- if (name)
51
- cmd.name(name);
52
- cmd
53
- .configureOutput({
54
- writeOut: str => msg = str,
55
- writeErr: str => msg = str,
56
- outputError: str => msg = str
57
- })
58
- .exitOverride()
59
- .parse(arg.split(" "), { from: "user" });
60
- }
61
- catch (e) {
62
- return msg;
63
- }
47
+ const cmd = initCmd()
48
+ .name(name !== null && name !== void 0 ? name : Object.keys(package_json_1.bin)[0])
49
+ .configureOutput({
50
+ writeOut: out,
51
+ writeErr: out
52
+ })
53
+ .exitOverride();
54
+ try {
55
+ cmd.parse(args === null || args === void 0 ? void 0 : args.split(" "), { from: "user" });
56
+ }
57
+ catch (e) {
58
+ return;
64
59
  }
65
60
  const opts = cmd.opts();
66
61
  if (opts.list)
67
- return " abbr OJ\n" + JSON.stringify(lodash_1.default.mapValues(oj_1.alloj, val => val.name), null, 2);
62
+ out(JSON.stringify(lodash_1.default.mapValues(oj_1.alloj, val => val.name), null, 2));
68
63
  else {
69
- const config = {
64
+ const lsct = new _1.default({
70
65
  abbrList: lodash_1.default.uniq(opts.oj),
71
66
  days: parseInt(opts.days),
72
67
  sort: opts.sort,
73
68
  running: opts.running,
74
- upcoming: opts.upcoming
75
- };
69
+ upcoming: opts.upcoming,
70
+ silent: opts.silent
71
+ }, log_level, log_transport);
76
72
  if (opts.raw)
77
- return JSON.stringify(yield (0, _1.getContests)(config), null, 2);
73
+ out(JSON.stringify(yield lsct.getContests(), null, 2));
78
74
  else
79
- return yield (0, _1.getContestsInfoText)(config, opts.language);
75
+ out(yield lsct.getContestsText(opts.language));
80
76
  }
81
77
  });
82
78
  }
83
79
  exports.cli = cli;
84
80
  if (require.main === module)
85
- cli().then(console.log);
81
+ cli();
86
82
  //# sourceMappingURL=cli.js.map
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,27 +1,23 @@
1
- import { contest } from "./lib/contest";
2
- export declare type config = {
1
+ import winston from "winston";
2
+ import { Contest } from "./lib/contest";
3
+ export interface LscontestsConfig {
3
4
  abbrList?: string[];
4
5
  days?: number;
5
6
  sort?: boolean;
6
7
  running?: boolean;
7
8
  upcoming?: boolean;
8
- };
9
- /**
10
- * Get the list of all contests matching the given config
11
- * @param config The config of contests that want to get
12
- * @returns A Promise that contains an array of all contests that match the given config
13
- */
14
- export declare function getContests(config?: config): Promise<{
15
- running: contest[];
16
- upcoming: contest[];
17
- }>;
18
- /**
19
- * Get the detailed text of all contests matching the given config
20
- * @param config The config of contests that want to get
21
- * @param language Language of the output text
22
- * @returns A string containing detail text of contests that match the given config
23
- */
24
- export declare function getContestsInfoText(config?: config, language?: string): Promise<string>;
9
+ silent?: boolean;
10
+ }
11
+ export default class Lscontests {
12
+ private config;
13
+ private logger;
14
+ constructor(config?: LscontestsConfig, log_level?: string, log_transport?: winston.transports.ConsoleTransportInstance);
15
+ getContests(): Promise<{
16
+ running: Contest[];
17
+ upcoming: Contest[];
18
+ }>;
19
+ getContestsText(language?: string): Promise<string>;
20
+ }
25
21
  export * from "./lib/contest";
26
22
  export { cli } from "./cli";
27
- export { oj, addOJ } from "./lib/oj";
23
+ export { OJ, addOJ } from "./lib/oj";
package/dist/index.js CHANGED
@@ -26,116 +26,114 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
26
26
  return (mod && mod.__esModule) ? mod : { "default": mod };
27
27
  };
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.addOJ = exports.cli = exports.getContestsInfoText = exports.getContests = void 0;
30
- const oj_1 = require("./lib/oj");
31
- const locale_1 = require("./locale");
29
+ exports.addOJ = exports.cli = void 0;
32
30
  const lodash_1 = __importDefault(require("lodash"));
33
31
  const pangu_1 = __importDefault(require("pangu"));
34
- const defaultConfig = {
35
- abbrList: Object.keys(oj_1.alloj),
36
- days: 3,
37
- sort: true,
38
- running: true,
39
- upcoming: true
40
- };
41
- function resolveConfig(config) {
42
- const cfg = Object.assign(Object.assign({}, defaultConfig), config);
43
- if (cfg.abbrList.length === 0)
44
- cfg.abbrList = defaultConfig.abbrList;
45
- return cfg;
46
- }
47
- /**
48
- * Get the list of all contests matching the given config
49
- * @param config The config of contests that want to get
50
- * @returns A Promise that contains an array of all contests that match the given config
51
- */
52
- function getContests(config) {
53
- return __awaiter(this, void 0, void 0, function* () {
54
- const cfg = resolveConfig(config);
55
- const contests = (yield Promise.all(cfg.abbrList.map((abbr) => __awaiter(this, void 0, void 0, function* () {
56
- try {
57
- return (yield oj_1.alloj[abbr].get()).sort((a, b) => a.startTime.getTime() - b.startTime.getTime());
58
- }
59
- catch (e) {
60
- console.error(`Failed to get contest information for ${oj_1.alloj[abbr].name}, details:`);
61
- console.error(e);
62
- return [];
63
- }
64
- })))).reduce((ls1, ls2) => ls1.concat(ls2));
65
- const ret = {
66
- running: cfg.running ? contests.filter(ct => ct.startTime <= new Date() && ct.endTime > new Date()) : [],
67
- upcoming: cfg.upcoming ? contests.filter(ct => ct.startTime > new Date() && (cfg.days === -1 || ct.startTime <= new Date(Date.now() + cfg.days * 86400000))) : []
32
+ const winston_1 = __importDefault(require("winston"));
33
+ const oj_1 = require("./lib/oj");
34
+ const locale_1 = require("./locale");
35
+ class Lscontests {
36
+ constructor(config, log_level = "info", log_transport = winston_1.default.transports.Console) {
37
+ this.config = {
38
+ abbrList: Object.keys(oj_1.alloj),
39
+ days: 3,
40
+ sort: true,
41
+ running: true,
42
+ upcoming: true,
43
+ silent: false
68
44
  };
69
- if (cfg.sort)
70
- Object.values(ret).forEach(ct => ct.sort((a, b) => a.startTime.getTime() - b.startTime.getTime()));
71
- return ret;
72
- });
73
- }
74
- exports.getContests = getContests;
75
- /**
76
- * Get the detailed text of all contests matching the given config
77
- * @param config The config of contests that want to get
78
- * @param language Language of the output text
79
- * @returns A string containing detail text of contests that match the given config
80
- */
81
- function getContestsInfoText(config, language = "zh-CN") {
82
- return __awaiter(this, void 0, void 0, function* () {
83
- const cfg = resolveConfig(config);
84
- const lang = yield (0, locale_1.getLangDict)(language);
85
- const { running, upcoming } = yield getContests(cfg);
86
- const info = [];
87
- function msg(contests) {
88
- return contests.map(contest => {
89
- const ls = [];
90
- ls.push(`${lang.ojName}: ${contest.ojName}`);
91
- ls.push(`${lang.name}: ${contest.name}`);
92
- ls.push(`${lang.rule}: ${contest.rule}`);
93
- ls.push(`${lang.startTime}: ${contest.startTime.toLocaleString(undefined, { hourCycle: "h23" })}`);
94
- ls.push(`${lang.endTime}: ${contest.endTime.toLocaleString(undefined, { hourCycle: "h23" })}`);
95
- ls.push(contest.url);
96
- return ls.join("\n");
97
- });
98
- }
99
- if (cfg.running) {
100
- if (running.length) {
101
- info.push(lodash_1.default.template(lang.runnning)({
102
- contestCount: running.length,
103
- oj: lodash_1.default.uniq(running.map(contest => contest.ojName))
104
- }));
105
- info.push(...msg(running));
45
+ this.config = Object.assign(Object.assign({}, this.config), config);
46
+ if (this.config.abbrList.length === 0)
47
+ this.config.abbrList = Object.keys(oj_1.alloj);
48
+ this.logger = winston_1.default.createLogger({
49
+ level: log_level,
50
+ format: winston_1.default.format.combine(winston_1.default.format.colorize(), winston_1.default.format.simple()),
51
+ transports: new log_transport({ silent: this.config.silent }),
52
+ });
53
+ }
54
+ getContests() {
55
+ return __awaiter(this, void 0, void 0, function* () {
56
+ const contests = (yield Promise.all(this.config.abbrList.map((abbr) => __awaiter(this, void 0, void 0, function* () {
57
+ try {
58
+ const oj = oj_1.alloj[abbr];
59
+ this.logger.info(`Start getting contests information about ${oj.name}`);
60
+ const res = (yield oj.get()).sort((a, b) => a.startTime.getTime() - b.startTime.getTime());
61
+ this.logger.info(`Successfully get contests information about ${oj.name}`);
62
+ return res;
63
+ }
64
+ catch (e) {
65
+ this.logger.error(`Failed to get contest information for ${oj_1.alloj[abbr].name}, details:`);
66
+ this.logger.error(e);
67
+ return [];
68
+ }
69
+ })))).reduce((ls1, ls2) => ls1.concat(ls2));
70
+ const ret = {
71
+ running: this.config.running ? contests.filter(ct => ct.startTime <= new Date() && ct.endTime > new Date()) : [],
72
+ upcoming: this.config.upcoming ? contests.filter(ct => ct.startTime > new Date() && (this.config.days === -1 || ct.startTime <= new Date(Date.now() + this.config.days * 86400000))) : []
73
+ };
74
+ if (this.config.sort)
75
+ Object.values(ret).forEach(ct => ct.sort((a, b) => a.startTime.getTime() - b.startTime.getTime()));
76
+ return ret;
77
+ });
78
+ }
79
+ getContestsText(language = "zh-CN") {
80
+ return __awaiter(this, void 0, void 0, function* () {
81
+ const lang = yield (0, locale_1.getLangDict)(language);
82
+ const { running, upcoming } = yield this.getContests();
83
+ const info = [];
84
+ function msg(contests) {
85
+ return contests.map(contest => {
86
+ const ls = [];
87
+ ls.push(`${lang.ojName}: ${contest.ojName}`);
88
+ ls.push(`${lang.name}: ${contest.name}`);
89
+ ls.push(`${lang.rule}: ${contest.rule}`);
90
+ ls.push(`${lang.startTime}: ${contest.startTime.toLocaleString(undefined, { hourCycle: "h23" })}`);
91
+ ls.push(`${lang.endTime}: ${contest.endTime.toLocaleString(undefined, { hourCycle: "h23" })}`);
92
+ ls.push(contest.url);
93
+ return ls.join("\n");
94
+ });
106
95
  }
107
- else
108
- info.push(lang.norunning);
109
- }
110
- if (cfg.upcoming) {
111
- if (cfg.days === -1) {
112
- if (upcoming.length) {
113
- info.push(lodash_1.default.template(lang.upcoming_all)({
114
- contestCount: upcoming.length,
115
- oj: lodash_1.default.uniq(upcoming.map(contest => contest.ojName))
96
+ if (this.config.running) {
97
+ if (running.length) {
98
+ info.push(lodash_1.default.template(lang.runnning)({
99
+ contestCount: running.length,
100
+ oj: lodash_1.default.uniq(running.map(contest => contest.ojName))
116
101
  }));
117
- info.push(...msg(upcoming));
102
+ info.push(...msg(running));
118
103
  }
119
104
  else
120
- info.push(lang.noupcoming_all);
105
+ info.push(lang.norunning);
121
106
  }
122
- else {
123
- if (upcoming.length) {
124
- info.push(lodash_1.default.template(lang.upcoming)({
125
- contestCount: upcoming.length,
126
- days: cfg.days,
127
- oj: lodash_1.default.uniq(upcoming.map(contest => contest.ojName))
128
- }));
129
- info.push(...msg(upcoming));
107
+ if (this.config.upcoming) {
108
+ if (this.config.days === -1) {
109
+ if (upcoming.length) {
110
+ info.push(lodash_1.default.template(lang.upcoming_all)({
111
+ contestCount: upcoming.length,
112
+ oj: lodash_1.default.uniq(upcoming.map(contest => contest.ojName))
113
+ }));
114
+ info.push(...msg(upcoming));
115
+ }
116
+ else
117
+ info.push(lang.noupcoming_all);
118
+ }
119
+ else {
120
+ if (upcoming.length) {
121
+ info.push(lodash_1.default.template(lang.upcoming)({
122
+ contestCount: upcoming.length,
123
+ days: this.config.days,
124
+ oj: lodash_1.default.uniq(upcoming.map(contest => contest.ojName))
125
+ }));
126
+ info.push(...msg(upcoming));
127
+ }
128
+ else
129
+ info.push(lodash_1.default.template(lang.noupcoming)({ days: this.config.days }));
130
130
  }
131
- else
132
- info.push(lodash_1.default.template(lang.noupcoming)({ days: cfg.days }));
133
131
  }
134
- }
135
- return pangu_1.default.spacing(info.join("\n\n"));
136
- });
132
+ return pangu_1.default.spacing(info.join("\n\n"));
133
+ });
134
+ }
137
135
  }
138
- exports.getContestsInfoText = getContestsInfoText;
136
+ exports.default = Lscontests;
139
137
  __exportStar(require("./lib/contest"), exports);
140
138
  var cli_1 = require("./cli");
141
139
  Object.defineProperty(exports, "cli", { enumerable: true, get: function () { return cli_1.cli; } });
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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"}
@@ -2,11 +2,11 @@
2
2
  * LeDuo: From Luogu OJ
3
3
  */
4
4
  export declare type rule = "OI" | "IOI" | "ICPC" | "LeDuo" | "Codeforces" | "AtCoder";
5
- export declare type contest = {
5
+ export interface Contest {
6
6
  ojName: string;
7
7
  name: string;
8
8
  rule: rule;
9
9
  startTime: Date;
10
10
  endTime: Date;
11
11
  url: string;
12
- };
12
+ }
@@ -1,2 +1,2 @@
1
- import { oj } from ".";
2
- export declare const at: oj;
1
+ import { OJ } from ".";
2
+ export declare const at: OJ;
@@ -1,27 +1,4 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
2
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
3
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
4
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -37,13 +14,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
37
14
  Object.defineProperty(exports, "__esModule", { value: true });
38
15
  exports.at = void 0;
39
16
  const axios_1 = __importDefault(require("axios"));
40
- const cheerio = __importStar(require("cheerio"));
17
+ const cheerio_1 = require("cheerio");
41
18
  exports.at = {
42
19
  name: "AtCoder",
43
20
  get() {
44
21
  return __awaiter(this, void 0, void 0, function* () {
45
22
  const response = yield axios_1.default.get("https://atcoder.jp/contests");
46
- const $ = cheerio.load(response.data);
23
+ const $ = (0, cheerio_1.load)(response.data);
47
24
  const contests = [];
48
25
  $("table > tbody > tr", "#contest-table-action, #contest-table-upcoming").each(function () {
49
26
  const 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;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,oBAAoB,EAAE,gDAAgD,CAAC,CAAC,IAAI,CAAC;gBAE3E,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,KAAK,CAAC;wBAAE,EAAE,CAAC,SAAS,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;yBACjD,IAAG,GAAG,KAAK,CAAC,EACjB;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,KAAK,CAAC,EACjB;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,qCAA+B;AAIlB,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,IAAA,cAAI,EAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC9B,MAAM,QAAQ,GAAc,EAAE,CAAC;YAC/B,CAAC,CAAC,oBAAoB,EAAE,gDAAgD,CAAC,CAAC,IAAI,CAAC;gBAE3E,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,KAAK,CAAC;wBAAE,EAAE,CAAC,SAAS,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;yBACjD,IAAG,GAAG,KAAK,CAAC,EACjB;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,KAAK,CAAC,EACjB;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,2 +1,2 @@
1
- import { oj } from ".";
2
- export declare const cf: oj;
1
+ import { OJ } from ".";
2
+ export declare const cf: OJ;
@@ -1,27 +1,4 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
2
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
3
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
4
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -37,7 +14,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
37
14
  Object.defineProperty(exports, "__esModule", { value: true });
38
15
  exports.cf = void 0;
39
16
  const axios_1 = __importDefault(require("axios"));
40
- const cheerio = __importStar(require("cheerio"));
17
+ const cheerio_1 = require("cheerio");
41
18
  const ruleRecord = {
42
19
  CF: "Codeforces",
43
20
  ICPC: "ICPC"
@@ -48,7 +25,7 @@ exports.cf = {
48
25
  return __awaiter(this, void 0, void 0, function* () {
49
26
  const response = yield axios_1.default.get("https://codeforces.com/api/contest.list");
50
27
  if (!(response.data instanceof Object)) {
51
- const $ = cheerio.load(response.data);
28
+ const $ = (0, cheerio_1.load)(response.data);
52
29
  throw new Error($.text());
53
30
  }
54
31
  const resList = response.data.result;
@@ -1 +1 @@
1
- {"version":3,"file":"codeforces.js","sourceRoot":"","sources":["../../../src/lib/oj/codeforces.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAA0B;AAC1B,iDAAmC;AAenC,MAAM,UAAU,GAAyB;IACrC,EAAE,EAAE,YAAY;IAChB,IAAI,EAAE,MAAM;CACf,CAAC;AAEW,QAAA,EAAE,GAAO;IAClB,IAAI,EAAE,YAAY;IACZ,GAAG;;YAEL,MAAM,QAAQ,GAAG,MAAM,eAAK,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;YAC5E,IAAG,CAAC,CAAC,QAAQ,CAAC,IAAI,YAAY,MAAM,CAAC,EACrC;gBACI,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACtC,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;aAC7B;YACD,MAAM,OAAO,GAAa,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;YAC/C,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAW,EAAE;gBAEhC,OAAO;oBACH,MAAM,EAAE,UAAE,CAAC,IAAI;oBACf,IAAI,EAAE,GAAG,CAAC,IAAI;oBACd,IAAI,EAAE,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;oBAC1B,SAAS,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,gBAAgB,GAAG,IAAI,CAAC;oBAChD,OAAO,EAAE,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,gBAAgB,GAAG,GAAG,CAAC,eAAe,CAAC,GAAG,IAAI,CAAC;oBACtE,GAAG,EAAE,mCAAmC,GAAG,CAAC,EAAE,EAAE;iBACnD,CAAC;YACN,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC;QACxD,CAAC;KAAA;CACJ,CAAC"}
1
+ {"version":3,"file":"codeforces.js","sourceRoot":"","sources":["../../../src/lib/oj/codeforces.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,kDAA0B;AAC1B,qCAA+B;AAe/B,MAAM,UAAU,GAAyB;IACrC,EAAE,EAAE,YAAY;IAChB,IAAI,EAAE,MAAM;CACf,CAAC;AAEW,QAAA,EAAE,GAAO;IAClB,IAAI,EAAE,YAAY;IACZ,GAAG;;YAEL,MAAM,QAAQ,GAAG,MAAM,eAAK,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;YAC5E,IAAG,CAAC,CAAC,QAAQ,CAAC,IAAI,YAAY,MAAM,CAAC,EACrC;gBACI,MAAM,CAAC,GAAG,IAAA,cAAI,EAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBAC9B,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;aAC7B;YACD,MAAM,OAAO,GAAa,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;YAC/C,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAW,EAAE;gBAEhC,OAAO;oBACH,MAAM,EAAE,UAAE,CAAC,IAAI;oBACf,IAAI,EAAE,GAAG,CAAC,IAAI;oBACd,IAAI,EAAE,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;oBAC1B,SAAS,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,gBAAgB,GAAG,IAAI,CAAC;oBAChD,OAAO,EAAE,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,gBAAgB,GAAG,GAAG,CAAC,eAAe,CAAC,GAAG,IAAI,CAAC;oBACtE,GAAG,EAAE,mCAAmC,GAAG,CAAC,EAAE,EAAE;iBACnD,CAAC;YACN,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC;QACxD,CAAC;KAAA;CACJ,CAAC"}
@@ -1,19 +1,19 @@
1
- import { contest } from "../contest";
1
+ import { Contest } from "../contest";
2
2
  /**
3
3
  * name: OJ name
4
4
  *
5
5
  * get: return a Promise that contains an array of all contests with end times after the current time
6
6
  */
7
- export declare type oj = {
7
+ export interface OJ {
8
8
  name: string;
9
- get(): Promise<contest[]>;
10
- };
9
+ get(): Promise<Contest[]>;
10
+ }
11
11
  export declare const alloj: {
12
- [abbr: string]: oj;
12
+ [abbr: string]: OJ;
13
13
  };
14
14
  /**
15
15
  * Add an OJ to get information about the contests held on it
16
16
  * @param abbr Abbreviation of the OJ to be added
17
17
  * @param oj OJ to be added
18
18
  */
19
- export declare function addOJ(abbr: string, oj: oj): void;
19
+ export declare function addOJ(abbr: string, oj: OJ): void;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/oj/index.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,8DAAqC;AAErC,uCAA+B;AAC/B,6CAAkC;AAClC,yCAAgC;AAChC,mCAA6B;AAC7B,yCAAgC;AAEhC,IAAA,qBAAU,EAAC,eAAK,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;AAY7C,QAAA,KAAK,GAA4B;IAC1C,EAAE,EAAF,YAAE;IACF,EAAE,EAAF,eAAE;IACF,EAAE,EAAF,aAAE;IACF,EAAE,EAAF,UAAE;IACF,EAAE,EAAF,aAAE;CACL,CAAC;AAEF;;;;GAIG;AACH,SAAgB,KAAK,CAAC,IAAY,EAAE,EAAM;IAEtC,aAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;AACrB,CAAC;AAHD,sBAGC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/oj/index.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,8DAAqC;AAErC,uCAA+B;AAC/B,6CAAkC;AAClC,yCAAgC;AAChC,mCAA6B;AAC7B,yCAAgC;AAEhC,IAAA,qBAAU,EAAC,eAAK,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;AAa7C,QAAA,KAAK,GAA4B;IAC1C,EAAE,EAAF,YAAE;IACF,EAAE,EAAF,eAAE;IACF,EAAE,EAAF,aAAE;IACF,EAAE,EAAF,UAAE;IACF,EAAE,EAAF,aAAE;CACL,CAAC;AAEF;;;;GAIG;AACH,SAAgB,KAAK,CAAC,IAAY,EAAE,EAAM;IAEtC,aAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;AACrB,CAAC;AAHD,sBAGC"}
@@ -1,2 +1,2 @@
1
- import { oj } from ".";
2
- export declare const lc: oj;
1
+ import { OJ } from ".";
2
+ export declare const lc: OJ;
@@ -1,27 +1,4 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
2
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
3
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
4
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -37,7 +14,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
37
14
  Object.defineProperty(exports, "__esModule", { value: true });
38
15
  exports.lc = void 0;
39
16
  const axios_1 = __importDefault(require("axios"));
40
- const cheerio = __importStar(require("cheerio"));
17
+ const cheerio_1 = require("cheerio");
41
18
  const headers = {
42
19
  "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.54 Safari/537.36",
43
20
  };
@@ -47,7 +24,7 @@ exports.lc = {
47
24
  var _a;
48
25
  return __awaiter(this, void 0, void 0, function* () {
49
26
  const response = yield axios_1.default.get("https://leetcode.com/contest", { headers });
50
- const $ = cheerio.load(response.data);
27
+ const $ = (0, cheerio_1.load)(response.data);
51
28
  const resList = JSON.parse((_a = $("#__NEXT_DATA__").html()) !== null && _a !== void 0 ? _a : "")
52
29
  .props.pageProps.dehydratedState.queries
53
30
  .find((v) => v.queryKey[0] === "topTwoContests")
@@ -1 +1 @@
1
- {"version":3,"file":"leetcode.js","sourceRoot":"","sources":["../../../src/lib/oj/leetcode.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAA0B;AAC1B,iDAAmC;AAYnC,MAAM,OAAO,GAAG;IACZ,YAAY,EAAE,qHAAqH;CACtI,CAAC;AAEW,QAAA,EAAE,GAAO;IAClB,IAAI,EAAE,UAAU;IACV,GAAG;;;YAEL,MAAM,QAAQ,GAAG,MAAM,eAAK,CAAC,GAAG,CAAC,8BAA8B,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;YAC9E,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACtC,MAAM,OAAO,GAAa,IAAI,CAAC,KAAK,CAAC,MAAA,CAAC,CAAC,gBAAgB,CAAC,CAAC,IAAI,EAAE,mCAAI,EAAE,CAAC;iBACjE,KAAK,CAAC,SAAS,CAAC,eAAe,CAAC,OAAO;iBACvC,IAAI,CAAC,CAAC,CAA2B,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,gBAAgB,CAAC;iBACzE,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC;YAC/B,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAW,EAAE;gBAEhC,OAAO;oBACH,MAAM,EAAE,UAAE,CAAC,IAAI;oBACf,IAAI,EAAE,GAAG,CAAC,KAAK;oBACf,IAAI,EAAE,SAAS;oBACf,SAAS,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC;oBACzC,OAAO,EAAE,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,SAAS,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;oBACxD,GAAG,EAAE,gCAAgC,GAAG,CAAC,SAAS,EAAE;iBACvD,CAAC;YACN,CAAC,CAAC,CAAC;;KACN;CACJ,CAAC"}
1
+ {"version":3,"file":"leetcode.js","sourceRoot":"","sources":["../../../src/lib/oj/leetcode.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,kDAA0B;AAC1B,qCAA+B;AAY/B,MAAM,OAAO,GAAG;IACZ,YAAY,EAAE,qHAAqH;CACtI,CAAC;AAEW,QAAA,EAAE,GAAO;IAClB,IAAI,EAAE,UAAU;IACV,GAAG;;;YAEL,MAAM,QAAQ,GAAG,MAAM,eAAK,CAAC,GAAG,CAAC,8BAA8B,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;YAC9E,MAAM,CAAC,GAAG,IAAA,cAAI,EAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC9B,MAAM,OAAO,GAAa,IAAI,CAAC,KAAK,CAAC,MAAA,CAAC,CAAC,gBAAgB,CAAC,CAAC,IAAI,EAAE,mCAAI,EAAE,CAAC;iBACjE,KAAK,CAAC,SAAS,CAAC,eAAe,CAAC,OAAO;iBACvC,IAAI,CAAC,CAAC,CAA2B,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,gBAAgB,CAAC;iBACzE,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC;YAC/B,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAW,EAAE;gBAEhC,OAAO;oBACH,MAAM,EAAE,UAAE,CAAC,IAAI;oBACf,IAAI,EAAE,GAAG,CAAC,KAAK;oBACf,IAAI,EAAE,SAAS;oBACf,SAAS,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC;oBACzC,OAAO,EAAE,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,SAAS,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;oBACxD,GAAG,EAAE,gCAAgC,GAAG,CAAC,SAAS,EAAE;iBACvD,CAAC;YACN,CAAC,CAAC,CAAC;;KACN;CACJ,CAAC"}
@@ -1,2 +1,2 @@
1
- import { oj } from ".";
2
- export declare const lg: oj;
1
+ import { OJ } from ".";
2
+ export declare const lg: OJ;
@@ -1,2 +1,2 @@
1
- import { oj } from ".";
2
- export declare const nc: oj;
1
+ import { OJ } from ".";
2
+ export declare const nc: OJ;
@@ -1,27 +1,4 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
2
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
3
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
4
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -37,7 +14,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
37
14
  Object.defineProperty(exports, "__esModule", { value: true });
38
15
  exports.nc = void 0;
39
16
  const axios_1 = __importDefault(require("axios"));
40
- const cheerio = __importStar(require("cheerio"));
17
+ const cheerio_1 = require("cheerio");
41
18
  var topCategoryFilter;
42
19
  (function (topCategoryFilter) {
43
20
  topCategoryFilter[topCategoryFilter["NOWCODERSERIES"] = 13] = "NOWCODERSERIES";
@@ -47,10 +24,10 @@ const url = "https://ac.nowcoder.com/acm/contest/vip-index";
47
24
  function getResultList(tcf) {
48
25
  return __awaiter(this, void 0, void 0, function* () {
49
26
  const html = (yield axios_1.default.get(`${url}?topCategoryFilter=${tcf}`)).data;
50
- const $ = cheerio.load(html);
27
+ const $ = (0, cheerio_1.load)(html);
51
28
  const ls = [];
52
29
  $("div[class='platform-item js-item ']").each(function () {
53
- ls.push(JSON.parse(cheerio.load(this.attribs["data-json"]).text()));
30
+ ls.push(JSON.parse((0, cheerio_1.load)(this.attribs["data-json"]).text()));
54
31
  });
55
32
  return ls;
56
33
  });
@@ -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,IAAI;IACP,CAAC,EAAE,KAAK;CACX,CAAC;AAEW,QAAA,EAAE,GAAO;IAClB,IAAI,EAAE,UAAU;IACV,GAAG;;YAEL,MAAM,GAAG,GAAa;gBAClB,GAAG,MAAM,aAAa,CAAC,iBAAiB,CAAC,cAAc,CAAC;gBACxD,GAAG,MAAM,aAAa,CAAC,iBAAiB,CAAC,aAAa,CAAC;aAC1D,CAAC;YACF,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,sBAAsB,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAW,EAAE;gBAE1E,OAAO;oBACH,MAAM,EAAE,UAAE,CAAC,IAAI;oBACf,IAAI,EAAE,GAAG,CAAC,WAAW;oBACrB,IAAI,EAAE,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;oBAC1B,SAAS,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC;oBACzC,OAAO,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC;oBACrC,GAAG,EAAE,uCAAuC,GAAG,CAAC,SAAS,EAAE;iBAC9D,CAAC;YACN,CAAC,CAAC,CAAC;QACP,CAAC;KAAA;CACJ,CAAC"}
1
+ {"version":3,"file":"nowcoder.js","sourceRoot":"","sources":["../../../src/lib/oj/nowcoder.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,kDAA0B;AAC1B,qCAA+B;AAgD/B,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,IAAA,cAAI,EAAC,IAAI,CAAC,CAAC;QACrB,MAAM,EAAE,GAAa,EAAE,CAAC;QACxB,CAAC,CAAC,qCAAqC,CAAC,CAAC,IAAI,CAAC;YAE1C,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAA,cAAI,EAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAChE,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;IACV,GAAG;;YAEL,MAAM,GAAG,GAAa;gBAClB,GAAG,MAAM,aAAa,CAAC,iBAAiB,CAAC,cAAc,CAAC;gBACxD,GAAG,MAAM,aAAa,CAAC,iBAAiB,CAAC,aAAa,CAAC;aAC1D,CAAC;YACF,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,sBAAsB,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAW,EAAE;gBAE1E,OAAO;oBACH,MAAM,EAAE,UAAE,CAAC,IAAI;oBACf,IAAI,EAAE,GAAG,CAAC,WAAW;oBACrB,IAAI,EAAE,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;oBAC1B,SAAS,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC;oBACzC,OAAO,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC;oBACrC,GAAG,EAAE,uCAAuC,GAAG,CAAC,SAAS,EAAE;iBAC9D,CAAC;YACN,CAAC,CAAC,CAAC;QACP,CAAC;KAAA;CACJ,CAAC"}
package/dist/server.js CHANGED
@@ -14,7 +14,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
14
14
  };
15
15
  Object.defineProperty(exports, "__esModule", { value: true });
16
16
  const express_1 = __importDefault(require("express"));
17
- const index_1 = require("./index");
17
+ const _1 = __importDefault(require("."));
18
18
  const oj_1 = require("./lib/oj");
19
19
  const locale_1 = require("./locale");
20
20
  const ics_1 = require("ics");
@@ -80,7 +80,7 @@ const contestsCache = {
80
80
  function getIcs(lang, ojs) {
81
81
  return __awaiter(this, void 0, void 0, function* () {
82
82
  if (contestsCache.lastUpdate < Date.now() - 1000 * 60 * 5) {
83
- const c = yield (0, index_1.getContests)({ days: -1 });
83
+ const c = yield new _1.default({ days: -1 }).getContests();
84
84
  contestsCache.contests = lodash_1.default.uniqBy(contestsCache.contests.concat(c.running.concat(c.upcoming)), JSON.stringify);
85
85
  contestsCache.contests = contestsCache.contests.filter(c => c.endTime.getTime() - c.startTime.getTime() < 1000 * 60 * 60 * 24 * 2); // ignore too long contests
86
86
  contestsCache.lastUpdate = Date.now();
@@ -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,6 +1,6 @@
1
1
  {
2
2
  "name": "lscontests",
3
- "version": "2.2.3",
3
+ "version": "2.3.0",
4
4
  "description": "A tool to get information about the contests on each OJ",
5
5
  "keywords": [
6
6
  "cli",
@@ -31,7 +31,6 @@
31
31
  "docs": "typedoc",
32
32
  "lint": "eslint . && markdownlint .",
33
33
  "lint:fix": "eslint . --fix && markdownlint . --fix",
34
- "release": "mkdirp docs && yarn semantic-release",
35
34
  "start": "tsx src/cli.ts",
36
35
  "start-s": "tsx src/server.ts"
37
36
  },
@@ -43,30 +42,25 @@
43
42
  "express": "^4.18.1",
44
43
  "ics": "^2.35.0",
45
44
  "lodash": "^4.17.21",
46
- "pangu": "^4.0.7"
45
+ "pangu": "^4.0.7",
46
+ "winston": "^3.7.2"
47
47
  },
48
48
  "devDependencies": {
49
- "@qiwi/semantic-release-gh-pages-plugin": "^5.2.2",
50
- "@semantic-release/changelog": "^6.0.1",
51
- "@semantic-release/exec": "^6.0.3",
52
- "@semantic-release/git": "^10.0.1",
53
49
  "@types/express": "^4.17.13",
54
50
  "@types/lodash": "^4.14.182",
55
51
  "@types/node": "^17.0.35",
56
52
  "@types/pangu": "^3.3.0",
57
53
  "@typescript-eslint/eslint-plugin": "^5.26.0",
58
54
  "@typescript-eslint/parser": "^5.26.0",
55
+ "cpy-cli": "^4.1.0",
59
56
  "cz-conventional-changelog": "3.3.0",
60
57
  "eslint": "^8.16.0",
61
58
  "markdownlint-cli": "^0.31.1",
62
- "mkdirp": "^1.0.4",
63
59
  "rimraf": "^3.0.2",
64
- "semantic-release": "^19.0.2",
65
60
  "tsx": "^3.4.1",
66
61
  "typedoc": "^0.22.15",
67
62
  "typedoc-plugin-extras": "^2.2.3",
68
- "typescript": "^4.7.2",
69
- "cpy-cli": "^4.1.0"
63
+ "typescript": "4.6.4"
70
64
  },
71
65
  "config": {
72
66
  "commitizen": {