commit
						25146a36ea
					
				@ -60,11 +60,13 @@ class Cambridge(WebService):
 | 
				
			|||||||
                            for tag in tags:
 | 
					                            for tag in tags:
 | 
				
			||||||
                                i = tag.find('span', class_='def-info')
 | 
					                                i = tag.find('span', class_='def-info')
 | 
				
			||||||
                                d = tag.find('b', class_='def')
 | 
					                                d = tag.find('b', class_='def')
 | 
				
			||||||
 | 
					                                trans = tag.find('span', class_='trans')
 | 
				
			||||||
                                es = tag.find_all('div', class_='examp emphasized')
 | 
					                                es = tag.find_all('div', class_='examp emphasized')
 | 
				
			||||||
                                l.append(
 | 
					                                l.append(
 | 
				
			||||||
                                    u'<li>{0}{1}{2}</li>'.format(
 | 
					                                    u'<li>{0}{1}{2}{3}</li>'.format(
 | 
				
			||||||
                                        u'<span class="epp-xref">{0}</span>'.format(i.get_text()) if i else u'',
 | 
					                                        u'<span class="epp-xref">{0}</span>'.format(i.get_text()) if i else u'',
 | 
				
			||||||
                                        u'<b class="def">{0}</b>'.format(d.get_text()) if d else u'',
 | 
					                                        u'<b class="def">{0}</b>'.format(d.get_text()) if d else u'',
 | 
				
			||||||
 | 
					                                        u'<span class="trans">{0}</span>'.format(trans.get_text()) if trans else u'',
 | 
				
			||||||
                                        u''.join(
 | 
					                                        u''.join(
 | 
				
			||||||
                                            u'<div class="examp">{0}</div>'.format(e.get_text()) if e else u''
 | 
					                                            u'<div class="examp">{0}</div>'.format(e.get_text()) if e else u''
 | 
				
			||||||
                                            for e in es
 | 
					                                            for e in es
 | 
				
			||||||
 | 
				
			|||||||
@ -4,6 +4,7 @@ import os
 | 
				
			|||||||
import re
 | 
					import re
 | 
				
			||||||
from bs4 import Tag
 | 
					from bs4 import Tag
 | 
				
			||||||
from ..base import *
 | 
					from ..base import *
 | 
				
			||||||
 | 
					from ...utils.misc import format_multi_query_word
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
longman_download_mp3 = True
 | 
					longman_download_mp3 = True
 | 
				
			||||||
@ -17,7 +18,7 @@ class Longman(WebService):
 | 
				
			|||||||
        super(Longman, self).__init__()
 | 
					        super(Longman, self).__init__()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def _get_from_api(self):
 | 
					    def _get_from_api(self):
 | 
				
			||||||
        url = 'https://www.ldoceonline.com/dictionary/{}'.format(self.quote_word)
 | 
					        url = 'https://www.ldoceonline.com/dictionary/{}'.format(format_multi_query_word(self.quote_word))
 | 
				
			||||||
        data = self.get_response(url)
 | 
					        data = self.get_response(url)
 | 
				
			||||||
        soup = parse_html(data)
 | 
					        soup = parse_html(data)
 | 
				
			||||||
        # Top Container
 | 
					        # Top Container
 | 
				
			||||||
 | 
				
			|||||||
@ -3,6 +3,7 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
from bs4 import Tag
 | 
					from bs4 import Tag
 | 
				
			||||||
from ..base import *
 | 
					from ..base import *
 | 
				
			||||||
 | 
					from ...utils.misc import format_multi_query_word
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#filterwarnings('ignore')
 | 
					#filterwarnings('ignore')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -22,7 +23,7 @@ class OxfordLearning(WebService):
 | 
				
			|||||||
        :param word:
 | 
					        :param word:
 | 
				
			||||||
        :rtype:  WebWord
 | 
					        :rtype:  WebWord
 | 
				
			||||||
        """
 | 
					        """
 | 
				
			||||||
        qry_url = u'https://www.oxfordlearnersdictionaries.com/definition/english/{}'.format(word)
 | 
					        qry_url = u'https://www.oxfordlearnersdictionaries.com/definition/english/{}'.format(format_multi_query_word(word))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        retried = 10
 | 
					        retried = 10
 | 
				
			||||||
        while retried:
 | 
					        while retried:
 | 
				
			||||||
@ -42,6 +43,8 @@ class OxfordLearning(WebService):
 | 
				
			|||||||
                self.cache_this(
 | 
					                self.cache_this(
 | 
				
			||||||
                    {
 | 
					                    {
 | 
				
			||||||
                        'phonetic': '{} {}'.format(web_word.wd_phon_bre, web_word.wd_phon_nam),
 | 
					                        'phonetic': '{} {}'.format(web_word.wd_phon_bre, web_word.wd_phon_nam),
 | 
				
			||||||
 | 
					                        'phon_bre': '{}'.format(web_word.wd_phon_bre),
 | 
				
			||||||
 | 
					                        'phon_ame': '{}'.format(web_word.wd_phon_nam),
 | 
				
			||||||
                        'pos': web_word.wd_pos,
 | 
					                        'pos': web_word.wd_pos,
 | 
				
			||||||
                        'img_full': web_word.wd_image_full_url,
 | 
					                        'img_full': web_word.wd_image_full_url,
 | 
				
			||||||
                        'img_thumb': web_word.wd_image_thumb_url,
 | 
					                        'img_thumb': web_word.wd_image_thumb_url,
 | 
				
			||||||
@ -54,6 +57,8 @@ class OxfordLearning(WebService):
 | 
				
			|||||||
                self.cache_this(
 | 
					                self.cache_this(
 | 
				
			||||||
                    {
 | 
					                    {
 | 
				
			||||||
                        'phonetic': '',
 | 
					                        'phonetic': '',
 | 
				
			||||||
 | 
					                        'phon_bre': '',
 | 
				
			||||||
 | 
					                        'phon_ame': '',
 | 
				
			||||||
                        'pos': '',
 | 
					                        'pos': '',
 | 
				
			||||||
                        'img_full': '',
 | 
					                        'img_full': '',
 | 
				
			||||||
                        'img_thumb': '',
 | 
					                        'img_thumb': '',
 | 
				
			||||||
@ -68,6 +73,14 @@ class OxfordLearning(WebService):
 | 
				
			|||||||
    def fld_phonetic(self):
 | 
					    def fld_phonetic(self):
 | 
				
			||||||
        return self._get_single_dict('phonetic')
 | 
					        return self._get_single_dict('phonetic')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @export('AME_PHON')
 | 
				
			||||||
 | 
					    def fld_phonetic_us(self):
 | 
				
			||||||
 | 
					        return self._get_single_dict('phon_ame')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @export('BRE_PHON')
 | 
				
			||||||
 | 
					    def fld_phonetic_uk(self):
 | 
				
			||||||
 | 
					        return self._get_single_dict('phon_bre')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @export([u'词性', u'POS'])
 | 
					    @export([u'词性', u'POS'])
 | 
				
			||||||
    def fld_pos(self):
 | 
					    def fld_pos(self):
 | 
				
			||||||
        return self._get_single_dict('pos')
 | 
					        return self._get_single_dict('pos')
 | 
				
			||||||
 | 
				
			|||||||
@ -60,6 +60,16 @@ def get_icon(filename):
 | 
				
			|||||||
    return QIcon(path)
 | 
					    return QIcon(path)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Some query words like 'Saudi Arabia' is comprised by two or more words that split by '%20'(space),
 | 
				
			||||||
 | 
					# it is an invalid query format. (Validated Dictionary: Longman, oxford learning)
 | 
				
			||||||
 | 
					def format_multi_query_word(words: str):
 | 
				
			||||||
 | 
					    _space = '%20'
 | 
				
			||||||
 | 
					    if words is None or _space not in words:
 | 
				
			||||||
 | 
					        return words
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    return words.lower().replace(_space, '-')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class MapDict(dict):
 | 
					class MapDict(dict):
 | 
				
			||||||
    """
 | 
					    """
 | 
				
			||||||
    Example:
 | 
					    Example:
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user