diff --git a/index.js b/index.js index f89081e..a4c321a 100755 --- a/index.js +++ b/index.js @@ -88,7 +88,7 @@ const Properties = new Map([ ]); const LowConfidenceMode = { - noOp: "no-op", + keep: "keep", force: "force", exit: "exit" }; @@ -162,30 +162,54 @@ let args = yargs defaultCompletion(); }) .middleware([ yargsCompatProperties, yargsFixPositional ], true) //middleware seems to be buggy + .option("help", { + alias: 'h', + desc: __`Show help` + }) + .option("base", { + alias: 'b', + type: "string", + desc: __`Set the document URL when parsing standard input or a local file (this affects relative links)` + }) .option("completion", { type: "boolean", desc: __`Print script for bash/zsh completion` }) - .option("version", { - alias: 'V', + .option("insane", { + alias: 'S', type: "boolean", - desc: __`Print version` + desc: __`Don't sanitize HTML` }) - .option("help", { - alias: 'h', - desc: __`Show help` + .option("is-file", { + alias: 'f', + type: "boolean", + desc: __`Interpret SOURCE as a file name rather than a URL`, + default: false, + hidden: true, + //deprecated: true }) - .option("output", { - alias: 'o', - type: "string", - desc: __`The file to which the result should be output` + .option("is-url", { + alias: 'U', + type: "boolean", + desc: __`(deprecated) Interpret SOURCE as a URL rather than file name`, + hidden: true, + //deprecated: true + }) + .option("json", { + alias: 'j', + type: "boolean", + desc: __`Output properties as a JSON payload` }) .option("low-confidence", { alias: 'l', type: "string", desc: __`What to do if Readability.js is uncertain about what the core content actually is`, //default: "no-op", //don't set default because completion won't work - choices: ["no-op", "force", "exit"] + }) + .option("output", { + alias: 'o', + type: "string", + desc: __`The file to which the result should be output` }) .option("properties", { alias: 'p', @@ -199,11 +223,6 @@ let args = yargs desc: __`Don't output extra information to stderr`, default: false }) - .option("base", { - alias: 'b', - type: "string", - desc: __`Set the document URL when parsing standard input or a local file (this affects relative links)` - }) .option("url", { alias: 'u', type: "string", @@ -211,37 +230,17 @@ let args = yargs hidden: true, //deprecated: true //completion script does not respect this value, so just say it in the description }) - .option("is-file", { - alias: 'f', - type: "boolean", - desc: __`Interpret SOURCE as a file name rather than a URL`, - default: false, - hidden: true, - //deprecated: true - }) - .option("is-url", { - alias: 'U', - type: "boolean", - desc: __`(deprecated) Interpret SOURCE as a URL rather than file name`, - hidden: true, - //deprecated: true - }) - .option("insane", { - alias: 'S', - type: "boolean", - desc: __`Don't sanitize HTML` - }) - .option("json", { - alias: 'j', + .option("version", { + alias: 'V', type: "boolean", - desc: __`Output properties as a JSON payload` + desc: __`Print version` }) .epilogue(__`The --low-confidence option determines what should be done for documents where Readability can't tell what the core content is:\n` + -__` no-op When unsure, don't touch the HTML, output as-is. This is incompatible with the --properties and --json options.\n` + +__` keep When unsure, don't touch the HTML, output as-is. This is incompatible with the --properties and --json options.\n` + __` force Process the document even when unsure (may produce really bad output).\n` + __` exit When unsure, exit with an error.\n` + '\n' + -__`Default value is "no-op".\n` + +__`Default value is "keep".\n` + '\n' + '\n' + __`The --properties option accepts a list of values, separated by spaces. Suitable values are:\n` + @@ -261,8 +260,17 @@ __`Default value is "html-title html-content".\n`) .parse(); if (!args["low-confidence"]) { - args["low-confidence"] = LowConfidenceMode.noOp; - args['l'] = LowConfidenceMode.noOp; + args["low-confidence"] = LowConfidenceMode.keep; + args['l'] = LowConfidenceMode.keep; +} else if (args["low-confidence"] == "no-op") { + console.error(__`Note: no-op option is deprecated, please use 'keep' instead.`); + args["low-confidence"] = LowConfidenceMode.keep; + args['l'] = LowConfidenceMode.keep; +} else if (!Object.values(LowConfidenceMode).includes(args["low-confidence"])) { + console.error(__`Unknown mode: ${args["low-confidence"]}\nPlease use one of: keep, force, exit`); + console.error(__`Use --help for more info.`); + setErrored(ExitCodes.badUsageCLI); + process.exit(); } if (args["is-url"]) { diff --git a/locales/en.json b/locales/en.json index 27eb114..0dda4fd 100644 --- a/locales/en.json +++ b/locales/en.json @@ -15,10 +15,10 @@ "(deprecated) Interpret SOURCE as a URL rather than file name": "(deprecated) Interpret SOURCE as a URL rather than file name", "Output properties as a JSON payload": "Output properties as a JSON payload", "The --low-confidence option determines what should be done for documents where Readability can't tell what the core content is:\n": "The --low-confidence option determines what should be done for documents where Readability can't tell what the core content is:\n", - " no-op When unsure, don't touch the HTML, output as-is. This is incompatible with the --properties and --json options.\n": " no-op When unsure, don't touch the HTML, output as-is. This is incompatible with the --properties and --json options.\n", + " keep When unsure, don't touch the HTML, output as-is. This is incompatible with the --properties and --json options.\n": " keep When unsure, don't touch the HTML, output as-is. This is incompatible with the --properties and --json options.\n", " force Process the document even when unsure (may produce really bad output).\n": " force Process the document even when unsure (may produce really bad output).\n", " exit When unsure, exit with an error.\n": " exit When unsure, exit with an error.\n", - "Default value is \"no-op\".\n": "Default value is \"no-op\".\n", + "Default value is \"keep\".\n": "Default value is \"keep\".\n", "The --properties option accepts a list of values, separated by spaces. Suitable values are:\n": "The --properties option accepts a list of values, separated by spaces. Suitable values are:\n", " title The title of the article.\n": " title The title of the article.\n", " html-title The title of the article, wrapped in an

tag.\n": " html-title The title of the article, wrapped in an

tag.\n", @@ -42,5 +42,8 @@ "Not sure if this document should be processed, exiting": "Not sure if this document should be processed, exiting", "Can't output properties": "Can't output properties", "Couldn't process document.": "Couldn't process document.", - "Host not found: '%s'": "Host not found: '%s'" + "Host not found: '%s'": "Host not found: '%s'", + "Unknown mode: %s\nPlease use one of: keep, force, exit": "Unknown mode: %s\nPlease use one of: keep, force, exit", + "Use --help for more info.": "Use --help for more info.", + "Note: no-op option is deprecated, please use 'keep' instead.": "Note: no-op option is deprecated, please use 'keep' instead." } diff --git a/locales/ru.json b/locales/ru.json index 81a29b4..96ef668 100644 --- a/locales/ru.json +++ b/locales/ru.json @@ -15,10 +15,10 @@ "(deprecated) Interpret SOURCE as a URL rather than file name": "(устаревшее) Интерпретировать [source] как URL, а не как файл", "Output properties as a JSON payload": "Показать характеристики текста в формате JSON", "The --low-confidence option determines what should be done for documents where Readability can't tell what the core content is:\n": "Параметр --low-confidence определяет, что следует делать, если Readability не может определить целевой контент:\n", - " no-op When unsure, don't touch the HTML, output as-is. This is incompatible with the --properties and --json options.\n": " no-op В случае неуверенности, не трогать HTML, выдавать как есть. Не совместимо с параметрами --properties и --json.\n", + " keep When unsure, don't touch the HTML, output as-is. This is incompatible with the --properties and --json options.\n": " keep В случае неуверенности, не трогать HTML, выдавать как есть. Не совместимо с параметрами --properties и --json.\n", " force Process the document even when unsure (may produce really bad output).\n": " force Обработать документ даже в случае неуверенности (может выдать плохой результат).\n", " exit When unsure, exit with an error.\n": " exit В случае неуверенности, выдать ошибку и выйти.\n", - "Default value is \"no-op\".\n": "По умолчанию выполняется \"no-op\".\n", + "Default value is \"keep\".\n": "По умолчанию выполняется \"keep\".\n", "The --properties option accepts a list of values, separated by spaces. Suitable values are:\n": "Параметр --properties принимает список значений (разделённых пробелами):\n", " title The title of the article.\n": " title Заголовок статьи.\n", " html-title The title of the article, wrapped in an

tag.\n": " html-title Заголовок статьи в тэге

.\n", @@ -42,5 +42,8 @@ "Not sure if this document should be processed, exiting": "Не уверен, стоит ли обрабатывать этот документ - выхожу", "Can't output properties": "Не могу определить характеристики", "Couldn't process document.": "Не удалось обработать документ.", - "Host not found: '%s'": "Сервер не найден: '%s'" + "Host not found: '%s'": "Сервер не найден: '%s'", + "Unknown mode: %s\nPlease use one of: keep, force, exit": "Неизвестный режим: %s\nПожалуйста, используйте один из: keep, force, exit", + "Use --help for more info.": "Чтобы узнать больше, воспользуйтесь --help", + "Note: no-op option is deprecated, please use 'keep' instead.": "Внимание: параметр no-op устаревшый, используйте вместо него 'keep'." }