1 Star 0 Fork 0

一条明/eazydict-bing

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
index.js 1.43 KB
一键复制 编辑 原始数据 按行查看 历史
keenwon 提交于 2019-04-05 15:46 . refactor: 优化
'use strict'
const debug = require('./lib/debug')
const fetch = require('./lib/fetch')
const parser = require('./lib/parser')
const assign = require('lodash.assign')
const defaultConfigs = require('./defaultConfig')
const pkg = require('./package.json')
const { EDOutput, CODES } = require('eazydict-standard-output')
// 入口
function main (words, userConfigs) {
debug('run with arguments %O', {
words,
userConfigs
})
const configs = assign({}, defaultConfigs, userConfigs)
debug('use configs %O', configs)
if (!words) {
return Promise.reject(new Error('请输入要查询的文字'))
}
// 编码
const keywords = encodeURIComponent(words)
const url = `http://cn.bing.com/dict/search?q=${keywords}`
debug(`fetch url ${url}`)
return fetch(url, configs)
.then(body => parser(body))
.catch(error => {
if (error.name === 'FetchError') {
return new EDOutput(CODES.NETWORK_ERROR)
}
return new EDOutput(CODES.OTHER)
})
.then(output => {
// 添加插件信息
output.pluginName = 'Bing'
output.packageName = pkg.name
output.words = words
output.url = url
debug('output: %O', output)
return output
})
}
if (require.main === module) {
// istanbul ignore next
const word = process.argv.slice(2).join(' ')
main(word).then(result => {
console.log(result) // eslint-disable-line no-console
})
} else {
module.exports = main
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/yitiomin/eazydict-bing.git
git@gitee.com:yitiomin/eazydict-bing.git
yitiomin
eazydict-bing
eazydict-bing
master

搜索帮助