word fast-querying addon for anki
This addon is developed to emancipate you from the tedious work of looking up words in dictionary and pasting the explanations to anki.
Querying Words and Making Cards, IMMEDIATELY!
Support querying in mdx and stardict dictionaries
Support querying in web dictionaries (having provided many ones, and more others need to be customized)
If you do not use local dictionaries, you can skip this step.
Click menu "Tool"->"WordQuery", popup the "Options" dialog
Click "Dict folders" button, add or remove the dictionary folders (support recursive searching)
In the "Options" dialog, click "Choose note type" and set the note type you want to use.
Click the radio button to set the word field you want to query.
The "Dict" comoboxes are used to specify the dictionaries.
The "Dict fields" comoboxes are used to specify the available dictionary fields.
Once the word to query is ready, click "Query" button or popup the context menu and use relevant commands.
Select single word or multiple words, click menu "WordQuery"->"Query selected".
All above query actions can be trigged also by the shortcut (default "Ctrl+Q"), but you could change it through the addon's "Edit" menu.
# shortcut
shortcut = 'Ctrl+Q'
The advanced users can implement new web dictionary services. See a typical reference for the details.
WebService
class@register(label)
is used to register the service, and parameter label
as the dictionary name will be shown in the dictioary list.
@register(u'有道词典')
class Youdao(WebService):
"""service implementation"""
The field export function has to be decorated with @export(fld_name, order)
.
para fld_name
: name of the dictionary field
para order
: order of the field, the smaller number will be shown on the upper of the field list.
@export(u'美式音标', 1)
def fld_phonetic_us(self):
return self._get_field('phonitic_us')
@export(u'英式音标', 2)
def fld_phonetic_uk(self):
return self._get_field('phonitic_uk')
Using @with_style(**kwargs)
to specify the css style strings or files, javascript strings or files, whether wrapping the css to avoid latent style interference.
@with_styles(cssfile='_youdao.css', need_wrap_css=True, wrap_class='youdao')
def _get_singledict(self, single_dict, lang='eng'):
url = "http://m.youdao.com/singledict?q=%s&dict=%s&le=%s&more=false" % (
self.word, single_dict, lang)
try:
return urllib2.urlopen(url, timeout=5).read()
except:
return ''