| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- import urllib
- import json
- import globalPluginHandler
- import scriptHandler
- import api
- import textInfos
- from ui import message, browseableMessage
- import addonHandler
- addonHandler.initTranslation()
- class GlobalPlugin(globalPluginHandler.GlobalPlugin):
- def define(self, word, lang='es'):
- link='https://googledictionaryapi.eu-gb.mybluemix.net/?define='+word+'&lang='+lang
- output=''
- f = urllib.urlopen(link)
- myfile = f.read().decode("utf-8")
- jsonDict=json.loads(myfile)
- meaning=jsonDict[0]['meaning']
- for k, v in meaning.items():
- if k!=u'':
- output+=k
- for d in v['definitions']:
- if d['definition']!=u'':
- output+='\n'+d['definition']
- return output
- def script_defineSelectedWord(self,gesture):
- obj = api.getFocusObject()
- treeInterceptor = obj.treeInterceptor
- if hasattr(treeInterceptor,'TextInfo') and not treeInterceptor.passThrough:
- obj = treeInterceptor
- try:
- info = obj.makeTextInfo(textInfos.POSITION_SELECTION)
- except (RuntimeError, NotImplementedError):
- info = None
- if not info or info.isCollapsed:
- # TRANSLATORS: Error message when there aren't any selected word
- message(_("Please select some word first."))
- else:
- browseableMessage(self.define(info.text.encode("utf-8")))
- # TRANSLATORS: Script __doc__
- script_defineSelectedWord.__doc__ = _("Defines selected word.")
- # TRANSLATORS: Script category
- script_defineSelectedWord.category = _("Text editing")
- __gestures = {
- "kb:control+shift+f11": "defineSelectedWord",
- }
|