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

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

装逼说明

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

看图装逼

img_b70731f142a24f5a650b6f6e712a10f9.gif
example.gif

自已装逼

安装

    npm install yddict -g

使用说明

    yd <要查询的单词>

在/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));

});


装逼指导


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

目录
相关文章
|
存储 缓存 NoSQL
分布式系统架构8:分布式缓存
本文介绍了分布式缓存的理论知识及Redis集群的应用,探讨了AP与CP的区别,Redis作为AP系统具备高性能和高可用性但不保证强一致性。文章还讲解了透明多级缓存(TMC)的概念及其优缺点,并详细分析了memcached和Redis的分布式实现方案。此外,针对缓存穿透、击穿、雪崩和污染等常见问题提供了应对策略,强调了Cache Aside模式在解决数据一致性方面的作用。最后指出,面试中关于缓存的问题多围绕Redis展开,建议深入学习相关知识点。
970 8
|
5月前
|
数据采集 前端开发 数据可视化
前端组件库——TDesign知识点大全(二)
教程来源 http://xcfsr.cn TDesign提供完善的主题定制能力:基于Design Token实现设计原子化管理;支持明暗双模式一键切换;内置主题生成器,可自定义颜色、字体等;兼容Vite/webpack的Less变量定制。同时拥有覆盖布局、导航、消息、数据、输入等场景的丰富组件体系。
|
8月前
|
人工智能 自然语言处理 机器人
2026年AI客服产品推荐深度评测
AI客服已成企业服务核心,2026年市场规模达285亿元。本文聚焦瓴羊Quick Service等主流产品,从场景适配、技术亮点、合规资质三大维度解析,结合实测数据与收费模式,为企业提供选型指南,助力提升客户体验与运营效率。
|
Linux 网络安全 Python
linux后台运行命令screen的使用
linux后台运行命令screen的使用
1551 2
linux后台运行命令screen的使用
|
存储 弹性计算 网络协议
阿里云服务器ECS通用算力型u2i实例怎么样?与u1有什么区别?
阿里云ECS通用算力型u2i实例基于全新CIPU架构,性能更稳定,网络带宽和存储IOPS更高,适合对性能和稳定性要求较高的中小型业务。相比u1实例,u2i在架构、网络、存储等方面均有明显提升,适用于动态业务需求。
|
监控 Linux 应用服务中间件
探索Linux中的`ps`命令:进程监控与分析的利器
探索Linux中的`ps`命令:进程监控与分析的利器
718 13
|
设计模式 JavaScript 小程序
黑马程序员uni-app 小兔鲜儿 项目及bug记录(上)(1)
黑马程序员uni-app 小兔鲜儿 项目及bug记录(上)(1)
1320 3
|
安全 网络协议 网络安全
IT知识百科:什么是访问控制列表ACL?
IT知识百科:什么是访问控制列表ACL?
2297 0
|
缓存 算法 网络协议
Ch3.数据链路层(四)
数据链路层是OSI参考模型中的第二层,介乎于物理层和网络层之间。数据链路层在物理层提供的服务的基础上向网络层提供服务,其最基本的服务是将源自物理层来的数据可靠地传输到相邻节点的目标机网络层。
1295 0

热门文章

最新文章