#-*- coding:utf-8 -*-
import re
import urllib2
import xml.etree.ElementTree
from aqt.utils import showInfo
from .base import WebService, export, register, with_styles
@register(u'有道词典-法语')
class Youdaofr(WebService):
def __init__(self):
super(Youdaofr, self).__init__()
def _get_from_api(self, lang='fr'):
url = "http://dict.youdao.com/fsearch?client=deskdict&keyfrom=chrome.extension&pos=-1&doctype=xml&xmlVersion=3.2&dogVersion=1.0&vendor=unknown&appVer=3.1.17.4208&le=%s&q=%s" % (
lang, self.word)
explains = ''
try:
result = urllib2.urlopen(url, timeout=5).read()
# showInfo(str(result))
doc = xml.etree.ElementTree.fromstring(result)
# fetch explanations
explains = '
'.join([node.text for node in doc.findall(
".//custom-translation/translation/content")])
return self.cache_this({'explains': explains})
except:
return {'explains': explains}
@export(u'基本释义', 1)
def fld_explains(self):
return self.cache_result('explains') if self.cached('explains') else \
self._get_from_api().get('explains', '')
@with_styles(cssfile='_youdao.css', need_wrap_css=True, wrap_class='youdao')
def _get_singledict(self, single_dict, lang='fr'):
url = "http://m.youdao.com/singledict?q=%s&dict=%s&le=%s&more=false" % (
self.word, single_dict, lang)
try:
result = urllib2.urlopen(url, timeout=5).read()
return '