lscontests 1.8.4 → 1.8.5

Sign up to get free protection for your applications and to get access to all the features.
package/dist/cli.js CHANGED
@@ -9,12 +9,17 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  step((generator = generator.apply(thisArg, _arguments || [])).next());
10
10
  });
11
11
  };
12
+ var __importDefault = (this && this.__importDefault) || function (mod) {
13
+ return (mod && mod.__esModule) ? mod : { "default": mod };
14
+ };
12
15
  Object.defineProperty(exports, "__esModule", { value: true });
13
16
  exports.cli = void 0;
14
17
  const package_json_1 = require("../package.json");
15
18
  const commander_1 = require("commander");
16
19
  const oj_1 = require("./lib/oj");
17
20
  const _1 = require(".");
21
+ const locale_1 = require("./locale");
22
+ const lodash_1 = __importDefault(require("lodash"));
18
23
  function initCmd() {
19
24
  return new commander_1.Command()
20
25
  .name("lsct")
@@ -23,7 +28,7 @@ function initCmd() {
23
28
  .option("-l, --list", "List all supported OJ")
24
29
  .addOption(new commander_1.Option("-o, --oj <ojs...>", "OJs to get contests information").choices(Object.keys(oj_1.alloj)))
25
30
  .addOption(new commander_1.Option("-r, --raw", "Print raw contest list").conflicts("language"))
26
- .addOption(new commander_1.Option("-L, --language <lang>", "Set output language").default("zh-CN").choices(_1.langList))
31
+ .addOption(new commander_1.Option("-L, --language <lang>", "Set output language").default("zh-CN").choices(locale_1.langList))
27
32
  .option("--no-sort", "Do not sort by contests start time, but by OJ order");
28
33
  }
29
34
  function cli(arg) {
@@ -52,7 +57,7 @@ function cli(arg) {
52
57
  return Object.values(oj_1.alloj).map((oj) => oj.name).join("\n");
53
58
  else {
54
59
  const config = {
55
- abbrList: opts.oj,
60
+ abbrList: lodash_1.default.uniq(opts.oj),
56
61
  days: opts.days,
57
62
  sort: opts.sort
58
63
  };
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;;;;;;;;;;;AACA,kDAA0C;AAC1C,yCAA4C;AAC5C,iCAAiC;AACjC,wBAAqE;AAErE,SAAS,OAAO;IAEZ,OAAO,IAAI,mBAAO,EAAE;SACf,IAAI,CAAC,MAAM,CAAC;SACZ,OAAO,CAAC,sBAAO,CAAC;SAChB,MAAM,CAAC,mBAAmB,EAAE,4CAA4C,EAAE,GAAG,CAAC;SAC9E,MAAM,CAAC,YAAY,EAAE,uBAAuB,CAAC;SAC7C,SAAS,CAAC,IAAI,kBAAM,CAAC,mBAAmB,EAAE,iCAAiC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,UAAK,CAAC,CAAC,CAAC;SACzG,SAAS,CAAC,IAAI,kBAAM,CAAC,WAAW,EAAE,wBAAwB,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;SAClF,SAAS,CAAC,IAAI,kBAAM,CAAC,uBAAuB,EAAE,qBAAqB,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,WAAQ,CAAC,CAAC;SACxG,MAAM,CAAC,WAAW,EAAE,qDAAqD,CAAC,CAAC;AACpF,CAAC;AAED,SAAsB,GAAG,CAAC,GAAY;;QAElC,MAAM,GAAG,GAAG,OAAO,EAAE,CAAC;QACtB,IAAG,GAAG,EACN;YACI,IAAI,GAAG,GAAG,EAAE,CAAC;YACb,IACA;gBACI,GAAG;qBACE,eAAe,CAAC;oBACb,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG;oBAC5B,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG;oBAC5B,WAAW,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG;iBAClC,CAAC;qBACD,YAAY,EAAE;qBACd,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;aAChD;YACD,OAAM,CAAC,EAAE;gBAAE,OAAO,GAAG,CAAC;aAAE;SAC3B;;YACI,GAAG,CAAC,KAAK,EAAE,CAAC;QAEjB,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;QACxB,IAAG,IAAI,CAAC,IAAI;YAAE,OAAO,MAAM,CAAC,MAAM,CAAC,UAAK,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAE1E;YACI,MAAM,MAAM,GAAW;gBACnB,QAAQ,EAAE,IAAI,CAAC,EAAE;gBACjB,IAAI,EAAE,IAAI,CAAC,IAAc;gBACzB,IAAI,EAAE,IAAI,CAAC,IAAI;aAClB,CAAC;YACF,IAAG,IAAI,CAAC,GAAG;gBAAE,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,IAAA,iBAAc,EAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;;gBACrE,OAAO,MAAM,IAAA,iBAAc,EAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;SAC3D;IACL,CAAC;CAAA;AAjCD,kBAiCC;AAED,IAAG,OAAO,CAAC,IAAI,KAAK,MAAM;IAAE,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AACA,kDAA0C;AAC1C,yCAA4C;AAC5C,iCAAiC;AACjC,wBAA2D;AAC3D,qCAAoC;AACpC,oDAAuB;AAEvB,SAAS,OAAO;IAEZ,OAAO,IAAI,mBAAO,EAAE;SACf,IAAI,CAAC,MAAM,CAAC;SACZ,OAAO,CAAC,sBAAO,CAAC;SAChB,MAAM,CAAC,mBAAmB,EAAE,4CAA4C,EAAE,GAAG,CAAC;SAC9E,MAAM,CAAC,YAAY,EAAE,uBAAuB,CAAC;SAC7C,SAAS,CAAC,IAAI,kBAAM,CAAC,mBAAmB,EAAE,iCAAiC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,UAAK,CAAC,CAAC,CAAC;SACzG,SAAS,CAAC,IAAI,kBAAM,CAAC,WAAW,EAAE,wBAAwB,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;SAClF,SAAS,CAAC,IAAI,kBAAM,CAAC,uBAAuB,EAAE,qBAAqB,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,iBAAQ,CAAC,CAAC;SACxG,MAAM,CAAC,WAAW,EAAE,qDAAqD,CAAC,CAAC;AACpF,CAAC;AAED,SAAsB,GAAG,CAAC,GAAY;;QAElC,MAAM,GAAG,GAAG,OAAO,EAAE,CAAC;QACtB,IAAG,GAAG,EACN;YACI,IAAI,GAAG,GAAG,EAAE,CAAC;YACb,IACA;gBACI,GAAG;qBACE,eAAe,CAAC;oBACb,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG;oBAC5B,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG;oBAC5B,WAAW,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG;iBAClC,CAAC;qBACD,YAAY,EAAE;qBACd,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;aAChD;YACD,OAAM,CAAC,EAAE;gBAAE,OAAO,GAAG,CAAC;aAAE;SAC3B;;YACI,GAAG,CAAC,KAAK,EAAE,CAAC;QAEjB,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;QACxB,IAAG,IAAI,CAAC,IAAI;YAAE,OAAO,MAAM,CAAC,MAAM,CAAC,UAAK,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAE1E;YACI,MAAM,MAAM,GAAW;gBACnB,QAAQ,EAAE,gBAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBACzB,IAAI,EAAE,IAAI,CAAC,IAAc;gBACzB,IAAI,EAAE,IAAI,CAAC,IAAI;aAClB,CAAC;YACF,IAAG,IAAI,CAAC,GAAG;gBAAE,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,IAAA,iBAAc,EAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;;gBACrE,OAAO,MAAM,IAAA,iBAAc,EAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;SAC3D;IACL,CAAC;CAAA;AAjCD,kBAiCC;AAED,IAAG,OAAO,CAAC,IAAI,KAAK,MAAM;IAAE,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC"}
package/dist/index.d.ts CHANGED
@@ -4,7 +4,6 @@ export declare type config = {
4
4
  sort?: boolean;
5
5
  };
6
6
  export declare function getContestList(config?: config): Promise<import("./lib/contest").contest[]>;
7
- export declare const langList: string[];
8
7
  export declare function getContestInfo(config?: config, language?: string): Promise<string>;
9
8
  export { cli } from "./cli";
10
9
  export { addOJ } from "./lib/oj";
package/dist/index.js CHANGED
@@ -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) {
@@ -31,10 +8,14 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
31
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
32
9
  });
33
10
  };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
34
14
  Object.defineProperty(exports, "__esModule", { value: true });
35
- exports.addOJ = exports.cli = exports.getContestInfo = exports.langList = exports.getContestList = void 0;
36
- const fs_1 = require("fs");
15
+ exports.addOJ = exports.cli = exports.getContestInfo = exports.getContestList = void 0;
37
16
  const oj_1 = require("./lib/oj");
17
+ const locale_1 = require("./locale");
18
+ const lodash_1 = __importDefault(require("lodash"));
38
19
  const defaultConfig = {
39
20
  abbrList: Object.keys(oj_1.alloj),
40
21
  days: 3,
@@ -42,7 +23,7 @@ const defaultConfig = {
42
23
  };
43
24
  function getContestList(config) {
44
25
  return __awaiter(this, void 0, void 0, function* () {
45
- const cfg = Object.assign(Object.assign({}, defaultConfig), config);
26
+ const cfg = lodash_1.default.defaults(config, defaultConfig);
46
27
  if (!cfg.abbrList)
47
28
  cfg.abbrList = Object.keys(oj_1.alloj);
48
29
  const contests = (yield Promise.all(cfg.abbrList.map((abbr) => __awaiter(this, void 0, void 0, function* () {
@@ -62,30 +43,22 @@ function getContestList(config) {
62
43
  });
63
44
  }
64
45
  exports.getContestList = getContestList;
65
- exports.langList = (0, fs_1.readdirSync)(`${__dirname}/locale`).map((fileName) => fileName.replace(".json", ""));
66
- function format(s, ...args) {
67
- for (let i = 0; i < args.length; i++)
68
- s = s.replace(`{${i}}`, args[i]);
69
- return s;
70
- }
71
46
  function getContestInfo(config, language = "zh-CN") {
72
47
  return __awaiter(this, void 0, void 0, function* () {
73
- if (!exports.langList.includes(language))
74
- throw new Error(`Illegal language ${language}, the allowed languages are ${exports.langList}`);
75
- const cfg = Object.assign(Object.assign({}, defaultConfig), config);
48
+ const cfg = lodash_1.default.defaults(config, defaultConfig);
49
+ const lang = yield (0, locale_1.getLangDict)(language);
76
50
  const contests = yield getContestList(cfg);
77
51
  const info = [];
78
- const lang = yield Promise.resolve().then(() => __importStar(require(`./locale/${language}.json`)));
79
- info.push(format(lang.welcome, cfg.days.toString(), contests.length.toString()));
52
+ info.push(lodash_1.default.template(lang.welcome)({ contestCount: contests.length, days: cfg.days }));
80
53
  for (const contest of contests) {
81
- const ct = [];
82
- ct.push(`${lang.ojName}: ${contest.ojName}`);
83
- ct.push(`${lang.name}: ${contest.name}`);
84
- ct.push(`${lang.rule}: ${contest.rule}`);
85
- ct.push(`${lang.startTime}: ${contest.startTime.toLocaleString()}`);
86
- ct.push(`${lang.endTime}: ${contest.endTime.toLocaleString()}`);
87
- ct.push(contest.url);
88
- info.push(ct.join("\n"));
54
+ const msg = [];
55
+ msg.push(`${lang.ojName}: ${contest.ojName}`);
56
+ msg.push(`${lang.name}: ${contest.name}`);
57
+ msg.push(`${lang.rule}: ${contest.rule}`);
58
+ msg.push(`${lang.startTime}: ${contest.startTime.toLocaleString()}`);
59
+ msg.push(`${lang.endTime}: ${contest.endTime.toLocaleString()}`);
60
+ msg.push(contest.url);
61
+ info.push(msg.join("\n"));
89
62
  }
90
63
  return info.join("\n\n");
91
64
  });
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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"}
@@ -1,5 +1,5 @@
1
1
  {
2
- "welcome": "{1} contests in the last {0} days",
2
+ "welcome": "${contestCount} contests in the last ${days} days",
3
3
  "ojName": "OJ",
4
4
  "name": "Contest name",
5
5
  "rule": "Rule",
@@ -0,0 +1,10 @@
1
+ export declare const langList: string[];
2
+ export declare type langDict = {
3
+ welcome: string;
4
+ ojName: string;
5
+ name: string;
6
+ rule: string;
7
+ startTime: string;
8
+ endTime: string;
9
+ };
10
+ export declare function getLangDict(language: string): Promise<langDict>;
@@ -0,0 +1,46 @@
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
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
+ return new (P || (P = Promise))(function (resolve, reject) {
28
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
31
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
32
+ });
33
+ };
34
+ Object.defineProperty(exports, "__esModule", { value: true });
35
+ exports.getLangDict = exports.langList = void 0;
36
+ const fs_1 = require("fs");
37
+ exports.langList = (0, fs_1.readdirSync)(`${__dirname}`).filter(fileName => fileName.endsWith(".json")).map((fileName) => fileName.replace(".json", ""));
38
+ function getLangDict(language) {
39
+ return __awaiter(this, void 0, void 0, function* () {
40
+ if (!exports.langList.includes(language))
41
+ throw new Error(`Illegal language ${language}, the allowed languages are ${exports.langList}`);
42
+ return Promise.resolve().then(() => __importStar(require(`./${language}.json`)));
43
+ });
44
+ }
45
+ exports.getLangDict = getLangDict;
46
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/locale/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2BAAiC;AAEpB,QAAA,QAAQ,GAAG,IAAA,gBAAW,EAAC,GAAG,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAWpJ,SAAsB,WAAW,CAAC,QAAgB;;QAE9C,IAAG,CAAC,gBAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,QAAQ,+BAA+B,gBAAQ,EAAE,CAAC,CAAC;QACxH,yDAAc,KAAK,QAAQ,OAAO,IAAE;IACxC,CAAC;CAAA;AAJD,kCAIC"}
@@ -1,5 +1,5 @@
1
1
  {
2
- "welcome": "在最近的 {0} 天内有 {1} 场比赛",
2
+ "welcome": "在最近的 ${days} 天内有 ${contestCount} 场比赛",
3
3
  "ojName": "比赛平台",
4
4
  "name": "比赛名称",
5
5
  "rule": "赛制",
@@ -1,5 +1,5 @@
1
1
  {
2
- "welcome": "在最近的 {0} 天內有 {1} 場比賽",
2
+ "welcome": "在最近的 ${days} 天內有 ${contestCount} 場比賽",
3
3
  "ojName": "比賽平台",
4
4
  "name": "比賽名稱",
5
5
  "rule": "賽制",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lscontests",
3
- "version": "1.8.4",
3
+ "version": "1.8.5",
4
4
  "description": "A tool to get information about the contests on each OJ",
5
5
  "keywords": [
6
6
  "cli",
@@ -9,6 +9,7 @@
9
9
  "competitive-programming"
10
10
  ],
11
11
  "repository": "https://github.com/StableAgOH/lscontests",
12
+ "bugs": "https://github.com/StableAgOH/lscontests/issues",
12
13
  "author": "StableAgOH <stagoh17@gmail.com>",
13
14
  "license": "GPL-3.0",
14
15
  "private": false,
@@ -27,11 +28,13 @@
27
28
  "dependencies": {
28
29
  "axios": "^0.27.2",
29
30
  "cheerio": "^1.0.0-rc.10",
30
- "commander": "^9.2.0"
31
+ "commander": "^9.2.0",
32
+ "lodash": "^4.17.21"
31
33
  },
32
34
  "devDependencies": {
33
35
  "@semantic-release/changelog": "^6.0.1",
34
36
  "@semantic-release/git": "^10.0.1",
37
+ "@types/lodash": "^4.14.182",
35
38
  "@types/node": "^17.0.31",
36
39
  "@typescript-eslint/eslint-plugin": "^5.22.0",
37
40
  "@typescript-eslint/parser": "^5.22.0",