├── README.md ├── setup.py └── yd ├── __init__.py └── yd.py /README.md: -------------------------------------------------------------------------------- 1 | youdao 2 | 3 | 4 | ---------- 5 | 6 | 7 | 有道词典终端版 8 | 9 | 10 | ---------- 11 | 12 | 2014年10月28日 0:14 更新,更名为yd.py 并增加了setup.py 以供安装。 13 | 14 | # 1. 安装 15 | sudo python setup.py install 16 | # 2. 使用 17 | 18 | ## 2.1 查询英文 19 | # yd hello 20 | ## 2.2 查询中文 21 | # yd 中文 22 | ![test](http://recall704.qiniudn.com/2014-10-13-yd1.png) 23 | 24 | 仅测试了Win7 32bit OS + python 2.7.8 和debian + python 2.7.8 ,欢迎反馈结果 25 | 26 | ---------------------------------------------------------------------- 27 | 2014年6月26日0:28:05 更新,文件名为youdaodict.py 28 | -------------------------------------------------------------------------------- /setup.py: -------------------------------------------------------------------------------- 1 | #encoding:utf-8 2 | from setuptools import setup, find_packages 3 | import sys, os 4 | 5 | version = '0.1.0' 6 | 7 | setup(name='yd', 8 | version=version, 9 | description="Linux Windows下通用的有道词典", 10 | long_description="""方便在terminal查询生词的小工具""", 11 | classifiers=[], 12 | keywords='python youdao dictionary terminal', 13 | author='recall', 14 | author_email='tk657309822@gmail.com', 15 | url='https://github.com/recall704', 16 | license='MIT', 17 | packages=find_packages(exclude=['ez_setup', 'examples', 'tests']), 18 | include_package_data=True, 19 | zip_safe=False, 20 | install_requires=[], 21 | entry_points={ 22 | 'console_scripts':[ 23 | 'yd = yd.yd:main' 24 | ] 25 | }, 26 | ) 27 | -------------------------------------------------------------------------------- /yd/__init__.py: -------------------------------------------------------------------------------- 1 | import yd 2 | -------------------------------------------------------------------------------- /yd/yd.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python2 2 | # -*- coding:utf-8 -*- 3 | 4 | 5 | import urllib2 6 | import urllib 7 | import sys 8 | import json 9 | import getopt 10 | 11 | URL = 'http://fanyi.youdao.com/openapi.do?keyfrom=cctv10&key=1365682047&type=data&doctype=json&version=1.1&q=' 12 | 13 | 14 | def get_result(word): 15 | url = URL + urllib.quote(word.decode(sys.stdin.encoding).encode('utf-8')) 16 | html = urllib2.urlopen(url).readlines() 17 | try: 18 | json_data = json.loads(html[0]) 19 | errorCode = json_data.get('errorCode',-1) 20 | if errorCode != 0: 21 | print u'查询出错' 22 | else: 23 | # 基本含义 24 | print u'基本含义'.center(40,'*') 25 | #print json_data.get('query','') #查询的词 26 | tran = json_data.get('translation',None) #翻译结果 27 | if tran: 28 | for item in tran: 29 | print '\t',item 30 | 31 | print u'网络含义'.center(40,'*') 32 | web = json_data.get('web',None) 33 | if web: 34 | for item in web: 35 | print item.get('key',None),"=>" 36 | for v in item.get('value',''): 37 | print '\t\t',v 38 | #print json_data 39 | except: 40 | print u'无法解析json数据' 41 | 42 | 43 | 44 | 45 | def main(): 46 | try: 47 | options, args = getopt.getopt(sys.argv[1:], ["help"]) 48 | except getopt.GetoptError as e: 49 | pass 50 | 51 | word = args[0] 52 | get_result(word) 53 | 54 | if __name__ == '__main__': 55 | main() 56 | 57 | --------------------------------------------------------------------------------