UNPKG

fanyi-yi

Version:

这是一个基于Node.js和TypeScript的英汉互译命令行小工具

78 lines (77 loc) 2.52 kB
"use strict"; var __importStar = (this && this.__importStar) || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; result["default"] = mod; return result; }; Object.defineProperty(exports, "__esModule", { value: true }); var https = __importStar(require("https")); var querystring = __importStar(require("querystring")); var private_1 = require("./private"); var md5 = require("md5"); exports.translate = function (wold) { var salt = Math.random(); var sign = md5(private_1.appid + wold + salt + private_1.secret); var to, from; if (/[a-zA-Z]/.test(wold[0])) { to = 'zh'; from = 'en'; } else { to = 'en'; from = 'zh'; } var query = querystring.stringify({ q: wold, from: from, to: to, salt: salt, appid: private_1.appid, sign: sign }); var options = { hostname: 'api.fanyi.baidu.com', port: 443, path: '/api/trans/vip/translate?' + query, method: 'GET' }; var req = https.request(options, function (res) { var chunks = []; res.on('data', function (chunk) { // console.log(chunk.constructor); //Buffer chunks.push(chunk); }); res.on('end', function () { var string = Buffer.concat(chunks).toString(); var object = JSON.parse(string); if (object.error_code) { var table = { 52001: '请求超时', 52002: '系统错误', 52003: '未授权用户', 54000: '必填参数为空', 54001: '签名错误', 54003: '访问频率受限', 54004: '账户余额不足', 54005: '长query请求频繁', 58000: '客户端IP非法', 58001: '译文语言方向不支持', 58002: '服务当前已关闭', 90107: '认证未通过或未生效', }; console.log(table[object.error_code]); process.exit(1); } else { console.log(object.trans_result[0].dst); process.exit(0); } }); }); req.on('error', function (e) { console.error(e); }); req.end(); };