装逼神句———有道词典命令行查询工具

简介: 装逼说明不喜欢安装有道词典的应用程序,因为太耗资源还一堆广告,但是用浏览器打开dict.youdao.com也挺麻烦的,不是吗?快来试试有道词典命令行工具吧!看图装逼example.

装逼说明

不喜欢安装有道词典的应用程序,因为太耗资源还一堆广告,但是用浏览器打开dict.youdao.com也挺麻烦的,不是吗?快来试试有道词典命令行工具吧!

看图装逼

img_b70731f142a24f5a650b6f6e712a10f9.gif
example.gif

自已装逼

安装

    npm install yddict -g
AI 代码解读

使用说明

    yd <要查询的单词>
AI 代码解读

/usr/local/lib/node_modules/yddict/目录下,可以进行一些自定义,或者更改查询的来源,
主要源码 index.js:

#!/usr/bin/env node
const request = require('request');
const cheerio = require('cheerio');
const chalk = require('chalk');
const fs = require('fs');
const Spinner = require('cli-spinner').Spinner;
const isChinese = require('is-chinese')
const urlencode = require('urlencode');
const spinner = new Spinner('努力查询中... %s');
const home = process.env[(process.platform == 'win32') ? 'USERPROFILE' : 'HOME'];
const configFile = home + "/config.json";
let color = 'gray';//更改查询结果的文字颜色

spinner.setSpinnerString('|/-\\');
spinner.start();

const readFile = (filename, encoding) => {

    try {
        return fs.readFileSync(filename).toString(encoding);
    }
    catch (e) {
        return null;
    }
};

const config = JSON.parse(readFile(configFile,"utf8"));

const input = process.argv.slice(2)
const word = input.join(' ')
const isCn = isChinese(word);
const URL = isCn ? `http://dict.youdao.com/w/eng/${urlencode(word)}`:`http://dict.youdao.com/w/${urlencode(word)}`

const options = {
  'url':URL
};

if(config){
  if(config.proxy){
    options.proxy = config.proxy;
  }
  if(config.color){
    color = config.color;
  }
}

const color_output = chalk.keyword(color);
request(options,(error, response, body)=>{
  const $ = cheerio.load(body, {
    ignoreWhitespace: true,
    xmlMode: true
  });
  let result = '';

  spinner.stop(true);
  if(isCn){
    $('div.trans-container > ul').find('p.wordGroup').each(function(i,elm){
      result = $(this).text().replace(/\s+/g," ");
    });
  }else{
    result = $('div#phrsListTab > div.trans-container > ul').text();
  }
  // phrase
  if (result === '') {
    result = $('div#webPhrase > p.wordGroup').text();
  }
  // sentence
  if (result === '') {
    result = $('div#fanyiToggle > div.trans-container > p:nth-child(2)').text();
  }
  console.log(color_output(result));

});


AI 代码解读

装逼指导


注:本文首发于 iHTCboy's blog,如若转载,请注明来源。

目录
打赏
0
0
0
0
845
分享
相关文章
🔍解锁Python系统编程新姿势!文件系统操作与I/O管理,让你玩转电脑每一个角落
【9月更文挑战第11天】Python不仅在数据分析和Web开发中表现出色,其系统编程能力同样强大。本文通过实例详细介绍了Python如何高效地进行文件系统操作与I/O管理。利用`os`和`pathlib`模块,你可以轻松遍历、创建、删除和重命名文件及目录。通过示例代码,展示了如何递归遍历目录和高效读写大文件。此外,文章还介绍了使用`watchdog`库进行文件监控及利用`concurrent.futures`模块实现并发I/O操作的方法,帮助你构建更复杂的应用。无论简单读写还是高级操作,Python都能助你轻松管理电脑的每一个角落。
57 1
详细解读Android开发命令行完全攻略
详细解读Android开发命令行完全攻略
78 0
忘掉Iterm2,试试这款跨平台终端工具
Mac用户最多的用的就是Iterm2了,windows之前因为丑陋的终端也开发了新的终端工具,很神奇的是,很长一段时间里,都没有一款真正好用的能跨平台的终端工具,直到我发现了hyper。无论Windows、Mac、Debian、Fedora还是其他Linux系统,hyper都能支持。
忘掉Iterm2,试试这款跨平台终端工具
太牛了!100个Shell脚本实例,代码清晰拿来就能用,再也不怕写不对了!
太牛了!100个Shell脚本实例,代码清晰拿来就能用,再也不怕写不对了!
再也不用百度了!快速构建自己的Linux命令查询系统
刚学Linux是不是被很多命令吓到了?其实可以部署一套自己的Linux命令查询系统,随时查询。
206 0
再也不用百度了!快速构建自己的Linux命令查询系统
学妹拉着我的胳膊让我给她写个【显示当前时间的shell脚本】,顺手教教学妹【硬链接和软链接】
学妹拉着我的胳膊让我给她写个【显示当前时间的shell脚本】,顺手教教学妹【硬链接和软链接】
学妹拉着我的胳膊让我给她写个【显示当前时间的shell脚本】,顺手教教学妹【硬链接和软链接】
Linux常用指令指南,终端装逼利器
最近搞了台Macbook Pro,就学习了一下Linux命令,在网上查了些资料,看了本书叫《快乐的 Linux 命令行》,里面涉及到了各个方面的命令。 在此将常用的整理出来,以备将来使用。
Linux常用指令指南,终端装逼利器