#-*- 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'有道词典-法语', u'Youdao-French'])
class Youdaofr(WebService):
    def __init__(self):
        super(Youdaofr, self).__init__()
    def _get_from_api(self, lang='fr'):
        url = (u'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={0}&q={1}').format(lang, self.word)
        result ={
            'phonetic': '',
            'explains':'',
        }
        try:
            html = self.get_response(url, timeout=5)
            # showInfo(str(result))
            doc = xml.etree.ElementTree.fromstring(html)
            # fetch explanations
            explains = '
'.join([node.text for node in doc.findall(
                ".//custom-translation/translation/content")])
            result.update({'explains': explains})
        except:
            pass
        return self.cache_this(result)
    @export(u'基本释义')
    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 = u"http://m.youdao.com/singledict?q={0}&dict={1}&le={2}&more=false".format(
            self.word, single_dict, lang
        )
        try:
            html = urllib2.urlopen(url, timeout=5).read()
            return (u'