Skip to main content

The last online dictionary framework you need. (?)

Project description

license version python version month download

stars forks contributors pull requests issues

github_actions circleci coveralls

docker automated build docker build status

Join the chat at https://gitter.im/zdict/zdict

pyup.io badge

[ ~ Dependencies scanned by PyUp.io ~ ]


zdict is a CLI dictionary framework mainly focus on any kind of online dictionary. This project originally forked from https://github.com/chenpc/ydict, which is a CLI tool for the Yahoo! online dictionary. After heavily refactoring the original project including:

  1. Change from Python 2 to Python 3

  2. Focus on being a flexible framework for any kind online dicitionaries, not only just a CLI tool for querying Yahoo! online dictionary.

  3. Based on an open source project skeleton.

So, we decided to create a new project.



Installation

from PyPI :

pip install zdict

from GitHub :

pip install git+https://github.com/zdict/zdict.git

from Docker Hub :

# Pull the image of latest commit of master branch from Docker Hub
docker pull zdict/zdict

# Pull the image of latest release from Docker Hub
docker pull zdict/zdict:release

# Pull the image of specific release version from Docker Hub
docker pull zdict/zdict:${version}
docker pull zdict/zdict:v0.10.0

How to run the zdict docker image

# Run interactive mode
docker run -it --rm zdict/zdict         # latest commit
docker run -it --rm zdict/zdict:release # latest release
docker run -it --rm zdict/zdict:v0.10.0 # use zdict v0.10.0
docker run -it --rm zdict/zdict:$tag    # with specific tag

# Run normal mode
docker run -it --rm zdict/zdict apple bird         # latest commit
docker run -it --rm zdict/zdict:release apple bird # latest release
docker run -it --rm zdict/zdict:v0.10.0 apple bird # use zdict v0.10.0
docker run -it --rm zdict/zdict:$tag apple bird    # with specific tag

# You can also add the options while using docker run either interactive mode or normal mode
docker run -it --rm zdict/zdict:v0.10.0 -dt moe    # use moe dict in interactive mode
docker run -it --rm zdict/zdict:v0.10.0 -dt moe  # use moe dict in normal mode

Usage

usage: zdict [-h] [-v] [-d] [-t QUERY_TIMEOUT] [-j [JOBS]] [-sp] [-su]
                         [-dt itaigi,moe,moe-taiwanese,spanish,oxford,jisho,yahoo,naer,wiktionary,urban,yandex,all]
                         [-ld] [-V] [-c] [--dump [PATTERN]] [-D]
                         [word [word ...]]

positional arguments:
  word                  Words for searching its translation

optional arguments:
  -h, --help            show this help message and exit
  -v, --version         show program's version number and exit
  -d, --disable-db-cache
                                                Temporarily not using the result from db cache. (still
                                                save the result into db)
  -t QUERY_TIMEOUT, --query-timeout QUERY_TIMEOUT
                                                Set timeout for every query. default is 5 seconds.
  -j [JOBS], --jobs [JOBS]
                                                Allow N jobs at once. Do not pass any argument to use
                                                the number of CPUs in the system.
  -sp, --show-provider  Show the dictionary provider of the queried word
  -su, --show-url       Show the url of the queried word
  -dt itaigi,moe,moe-taiwanese,spanish,oxford,jisho,yahoo,naer,wiktionary,urban,yandex,all, --dict itaigi,moe,moe-taiwanese,spanish,oxford,jisho,yahoo,naer,wiktionary,urban,yandex,all
                                                Must be seperated by comma and no spaces after each
                                                comma. Choose the dictionary you want. (default:
                                                yahoo) Use 'all' for qureying all dictionaries. If
                                                'all' or more than 1 dictionaries been chosen, --show-
                                                provider will be set to True in order to provide more
                                                understandable output.
  -ld, --list-dicts     Show currently supported dictionaries.
  -V, --verbose         Show more information for the queried word. (If the
                                                chosen dictionary have implemented verbose related
                                                functions)
  -c, --force-color     Force color printing (zdict automatically disable
                                                color printing when output is not a tty, use this
                                                option to force color printing)
  --dump [PATTERN]      Dump the querying history, can be filtered with regex
  -D, --debug           Print raw html prettified by BeautifulSoup for
                                                debugging.

Screenshots

Yahoo Dictionary

  • Normal Mode

zdict hello

http://i.imgur.com/iFTysUz.png
  • Interactive Mode

zdict

http://i.imgur.com/NtbWXKH.png

Moe Dictionary 萌典

http://i.imgur.com/FZD4HBS.png http://i.imgur.com/tF2S98h.png

Urban Dictionary

http://i.imgur.com/KndSJqz.png http://i.imgur.com/nh62wi1.png

SpanishDict

http://i.imgur.com/Ld2QVvP.png http://i.imgur.com/HJ9h5JO.png

Jisho Japanese Dictionary

http://i.imgur.com/63n3qmH.png http://i.imgur.com/UMP8k4e.png

Yandex Translate

https://user-images.githubusercontent.com/2716047/29741879-ca1a3826-8a3a-11e7-9701-4a7e9a15971a.png

Oxford Dictionary

http://i.imgur.com/VkPEfKh.png

To use this source, you should first apply an API key and place it under ~/.zdict/oxford.key in the format:

app_id, app_key

Wiktionary

https://i.imgur.com/5OzIFU3.png https://i.imgur.com/UO5nQjU.png

iTaigi-愛台語

https://user-images.githubusercontent.com/1645228/55309799-656acd00-5491-11e9-9d79-4ae578c83f8b.jpg https://user-images.githubusercontent.com/1645228/55309820-7582ac80-5491-11e9-998d-51ebfb183375.jpg

國家教育研究院 - 雙語詞彙、學術名詞暨辭書資訊網

https://user-images.githubusercontent.com/1645228/86770837-e6951480-c083-11ea-95f2-51b1e6f7e04f.jpg https://user-images.githubusercontent.com/1645228/86770828-e432ba80-c083-11ea-813a-e357f213826a.jpg

Development & Contributing

Testing

During development, you can install our project as editable. If you use virtualenv, you may want to create a new enviroment for zdict:

$ git clone https://github.com/zdict/zdict.git
$ cd zdict
$ pip install -e .

Once you installed it with the command above, just execute zdict after modification. No need to install it again.

Install the packages for testing:

$ pip install -r requirements-test.txt

or:

$ make install-test-deps

Use the command below to execute the tests:

$ py.test

or:

$ make test

After runing testing, we will get a coverage report in html. We can browse around it:

$ cd htmlcov
$ python -m http.server

Also, there is some configs for py.test in setup.cfg. Change it if you need.

Debugging

py.test can prompt pdb shell when your test case failed:

$ py.test --pdb

or:

$ make test-with-pdb

Bug Report

Feel free to send a bug report to https://github.com/zdict/zdict/issues. Please attach the error message and describe how to reproduce the bug. PR is also welcome.

Please use the -d/--disable-db-cache option to query before sending the bug report. Sometimes we modify the data schema in database for a dictionary, but the default dictionary query of zdict uses the cache in the database which may be stored within an old schema. This might cause an error while showing the result. Just use the -d/--disable-db-cache to update the cache in database.

Stargazers over time

stargazers

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

zdict-4.0.1.tar.gz (37.3 kB view details)

Uploaded Source

Built Distribution

zdict-4.0.1-py36+-none-any.whl (63.4 kB view details)

Uploaded Python 3.6+

File details

Details for the file zdict-4.0.1.tar.gz.

File metadata

  • Download URL: zdict-4.0.1.tar.gz
  • Upload date:
  • Size: 37.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.4 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.1 CPython/3.6.14

File hashes

Hashes for zdict-4.0.1.tar.gz
Algorithm Hash digest
SHA256 eb80166bb1c0ff4633ed4c4e11250a5f35c4b6a876ac8d292b7b36d93956dc06
MD5 4439b78ebdff9727d837700b27758344
BLAKE2b-256 017eb57e7b0e3204a6bbf921581551b5700f1cb9da9a359ca7af4bb0df6785b7

See more details on using hashes here.

File details

Details for the file zdict-4.0.1-py36+-none-any.whl.

File metadata

  • Download URL: zdict-4.0.1-py36+-none-any.whl
  • Upload date:
  • Size: 63.4 kB
  • Tags: Python 3.6+
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.4 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.1 CPython/3.6.14

File hashes

Hashes for zdict-4.0.1-py36+-none-any.whl
Algorithm Hash digest
SHA256 30d14fcb3abff1901bcf47372f222c6b9857c4287a000a3c4cdc36a03ba74e94
MD5 2f0ec6519fee4d8f03a641c73ced8e4e
BLAKE2b-256 f69725d0c3e50755127f416373b7b5209fb15a4fc35a04a57e0274f1ced5def6

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page