Add cambridge ECS & ECT
This commit is contained in:
parent
13bf8f6c30
commit
e36216552c
@ -2,28 +2,31 @@
|
|||||||
import os
|
import os
|
||||||
from ..base import *
|
from ..base import *
|
||||||
|
|
||||||
cambridge_url_base = u'https://dictionary.cambridge.org'
|
cambridge_url_base = u'https://dictionary.cambridge.org/dictionary/english/'
|
||||||
cambridge_download_mp3 = True
|
cambridge_download_mp3 = True
|
||||||
cambridge_download_img = True
|
cambridge_download_img = True
|
||||||
|
|
||||||
@register([u'剑桥英英', u'Cambridge'])
|
|
||||||
class Cambridge(WebService):
|
class Cambridge(WebService):
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
super(Cambridge, self).__init__()
|
super(Cambridge, self).__init__()
|
||||||
|
|
||||||
|
def _get_url(self):
|
||||||
|
return cambridge_url_base
|
||||||
|
|
||||||
def _get_from_api(self):
|
def _get_from_api(self):
|
||||||
data = self.get_response(u'{0}/dictionary/english/{1}'.format(cambridge_url_base, self.quote_word))
|
data = self.get_response(u'{0}{1}'.format(self._get_url(), self.quote_word))
|
||||||
soup = parse_html(data)
|
soup = parse_html(data)
|
||||||
result = {
|
result = {
|
||||||
'pronunciation': {'AmE': '', 'BrE': '', 'AmEmp3': '', 'BrEmp3': ''},
|
'pronunciation': {'AmE': '', 'BrE': '', 'AmEmp3': '', 'BrEmp3': ''},
|
||||||
'image': '',
|
'image': '',
|
||||||
'thumb': '',
|
'thumb': '',
|
||||||
'def': ''
|
'def': '',
|
||||||
|
'def_list': []
|
||||||
}
|
}
|
||||||
|
|
||||||
#english
|
#english
|
||||||
element = soup.find('div', class_='link')
|
element = soup.find('div', class_='di-body')
|
||||||
if element:
|
if element:
|
||||||
#页
|
#页
|
||||||
elements = element.find_all('div', class_='entry-body__el clrd js-share-holder')
|
elements = element.find_all('div', class_='entry-body__el clrd js-share-holder')
|
||||||
|
|||||||
12
addons/fastwq/service/dict/cambridge_cs.py
Normal file
12
addons/fastwq/service/dict/cambridge_cs.py
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
#-*- coding:utf-8 -*-
|
||||||
|
from ..base import *
|
||||||
|
from .cambridge import Cambridge
|
||||||
|
|
||||||
|
@register([u'剑桥词典-英汉简', u'Cambridge(英汉简)'])
|
||||||
|
class CambridgeCS(Cambridge):
|
||||||
|
|
||||||
|
def __init__(self):
|
||||||
|
super(CambridgeCS, self).__init__()
|
||||||
|
|
||||||
|
def _get_url(self):
|
||||||
|
return u'https://dictionary.cambridge.org/us/dictionary/english-chinese-simplified/'
|
||||||
12
addons/fastwq/service/dict/cambridge_ct.py
Normal file
12
addons/fastwq/service/dict/cambridge_ct.py
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
#-*- coding:utf-8 -*-
|
||||||
|
from ..base import *
|
||||||
|
from .cambridge import Cambridge
|
||||||
|
|
||||||
|
@register([u'剑桥词典-英汉繁', u'Cambridge(英汉繁)'])
|
||||||
|
class CambridgeCT(Cambridge):
|
||||||
|
|
||||||
|
def __init__(self):
|
||||||
|
super(CambridgeCT, self).__init__()
|
||||||
|
|
||||||
|
def _get_url(self):
|
||||||
|
return u'https://dictionary.cambridge.org/us/dictionary/english-chinese-traditional/'
|
||||||
12
addons/fastwq/service/dict/cambridge_ee.py
Normal file
12
addons/fastwq/service/dict/cambridge_ee.py
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
#-*- coding:utf-8 -*-
|
||||||
|
from ..base import *
|
||||||
|
from .cambridge import Cambridge
|
||||||
|
|
||||||
|
@register([u'剑桥词典-英英', u'Cambridge(English)'])
|
||||||
|
class CambridgeEE(Cambridge):
|
||||||
|
|
||||||
|
def __init__(self):
|
||||||
|
super(CambridgeEE, self).__init__()
|
||||||
|
|
||||||
|
def _get_url(self):
|
||||||
|
return u'https://dictionary.cambridge.org/dictionary/english/'
|
||||||
@ -94,6 +94,8 @@ class ServiceManager(object):
|
|||||||
continue
|
continue
|
||||||
if not(issubclass(clazz, WebService) or issubclass(clazz, LocalService)):
|
if not(issubclass(clazz, WebService) or issubclass(clazz, LocalService)):
|
||||||
continue
|
continue
|
||||||
|
if getattr(clazz, '__register_label__', None) is None:
|
||||||
|
continue
|
||||||
service = service_wrap(clazz, *args)
|
service = service_wrap(clazz, *args)
|
||||||
service.__title__ = getattr(clazz, '__register_label__', name)
|
service.__title__ = getattr(clazz, '__register_label__', name)
|
||||||
service.__unique__ = name
|
service.__unique__ = name
|
||||||
@ -103,6 +105,8 @@ class ServiceManager(object):
|
|||||||
# get the customized local services
|
# get the customized local services
|
||||||
if issubclass(clazz, LocalService):
|
if issubclass(clazz, LocalService):
|
||||||
local_custom_services.append(service)
|
local_custom_services.append(service)
|
||||||
|
web_services = sorted(web_services, key=lambda service: service.__title__)
|
||||||
|
local_custom_services = sorted(local_custom_services, key=lambda service: service.__title__)
|
||||||
return web_services, local_custom_services
|
return web_services, local_custom_services
|
||||||
|
|
||||||
def _get_available_local_services(self):
|
def _get_available_local_services(self):
|
||||||
|
|||||||
@ -2,18 +2,20 @@
|
|||||||
import os
|
import os
|
||||||
from ..base import *
|
from ..base import *
|
||||||
|
|
||||||
cambridge_url_base = u'https://dictionary.cambridge.org'
|
cambridge_url_base = u'https://dictionary.cambridge.org/dictionary/english/'
|
||||||
cambridge_download_mp3 = True
|
cambridge_download_mp3 = True
|
||||||
cambridge_download_img = True
|
cambridge_download_img = True
|
||||||
|
|
||||||
@register([u'剑桥英英', u'Cambridge'])
|
|
||||||
class Cambridge(WebService):
|
class Cambridge(WebService):
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
super(Cambridge, self).__init__()
|
super(Cambridge, self).__init__()
|
||||||
|
|
||||||
|
def _get_url(self):
|
||||||
|
return cambridge_url_base
|
||||||
|
|
||||||
def _get_from_api(self):
|
def _get_from_api(self):
|
||||||
data = self.get_response(u'{0}/dictionary/english/{1}'.format(cambridge_url_base, self.quote_word))
|
data = self.get_response(u'{0}{1}'.format(self._get_url(), self.quote_word))
|
||||||
soup = parse_html(data)
|
soup = parse_html(data)
|
||||||
result = {
|
result = {
|
||||||
'pronunciation': {'AmE': '', 'BrE': '', 'AmEmp3': '', 'BrEmp3': ''},
|
'pronunciation': {'AmE': '', 'BrE': '', 'AmEmp3': '', 'BrEmp3': ''},
|
||||||
@ -24,7 +26,7 @@ class Cambridge(WebService):
|
|||||||
}
|
}
|
||||||
|
|
||||||
#english
|
#english
|
||||||
element = soup.find('div', class_='link')
|
element = soup.find('div', class_='di-body')
|
||||||
if element:
|
if element:
|
||||||
#页
|
#页
|
||||||
elements = element.find_all('div', class_='entry-body__el clrd js-share-holder')
|
elements = element.find_all('div', class_='entry-body__el clrd js-share-holder')
|
||||||
|
|||||||
12
addons21/fastwq/service/dict/cambridge_cs.py
Normal file
12
addons21/fastwq/service/dict/cambridge_cs.py
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
#-*- coding:utf-8 -*-
|
||||||
|
from ..base import *
|
||||||
|
from .cambridge import Cambridge
|
||||||
|
|
||||||
|
@register([u'剑桥词典-英汉简', u'Cambridge(英汉简)'])
|
||||||
|
class CambridgeCS(Cambridge):
|
||||||
|
|
||||||
|
def __init__(self):
|
||||||
|
super(CambridgeCS, self).__init__()
|
||||||
|
|
||||||
|
def _get_url(self):
|
||||||
|
return u'https://dictionary.cambridge.org/us/dictionary/english-chinese-simplified/'
|
||||||
12
addons21/fastwq/service/dict/cambridge_ct.py
Normal file
12
addons21/fastwq/service/dict/cambridge_ct.py
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
#-*- coding:utf-8 -*-
|
||||||
|
from ..base import *
|
||||||
|
from .cambridge import Cambridge
|
||||||
|
|
||||||
|
@register([u'剑桥词典-英汉繁', u'Cambridge(英汉繁)'])
|
||||||
|
class CambridgeCT(Cambridge):
|
||||||
|
|
||||||
|
def __init__(self):
|
||||||
|
super(CambridgeCT, self).__init__()
|
||||||
|
|
||||||
|
def _get_url(self):
|
||||||
|
return u'https://dictionary.cambridge.org/us/dictionary/english-chinese-traditional/'
|
||||||
12
addons21/fastwq/service/dict/cambridge_ee.py
Normal file
12
addons21/fastwq/service/dict/cambridge_ee.py
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
#-*- coding:utf-8 -*-
|
||||||
|
from ..base import *
|
||||||
|
from .cambridge import Cambridge
|
||||||
|
|
||||||
|
@register([u'剑桥词典-英英', u'Cambridge(English)'])
|
||||||
|
class CambridgeEE(Cambridge):
|
||||||
|
|
||||||
|
def __init__(self):
|
||||||
|
super(CambridgeEE, self).__init__()
|
||||||
|
|
||||||
|
def _get_url(self):
|
||||||
|
return u'https://dictionary.cambridge.org/dictionary/english/'
|
||||||
@ -84,6 +84,8 @@ class ServiceManager(object):
|
|||||||
continue
|
continue
|
||||||
if not(issubclass(clazz, WebService) or issubclass(clazz, LocalService)):
|
if not(issubclass(clazz, WebService) or issubclass(clazz, LocalService)):
|
||||||
continue
|
continue
|
||||||
|
if getattr(clazz, '__register_label__', None) is None:
|
||||||
|
continue
|
||||||
service = service_wrap(clazz, *args)
|
service = service_wrap(clazz, *args)
|
||||||
service.__title__ = getattr(clazz, '__register_label__', name)
|
service.__title__ = getattr(clazz, '__register_label__', name)
|
||||||
service.__unique__ = name
|
service.__unique__ = name
|
||||||
@ -93,6 +95,8 @@ class ServiceManager(object):
|
|||||||
# get the customized local services
|
# get the customized local services
|
||||||
if issubclass(clazz, LocalService):
|
if issubclass(clazz, LocalService):
|
||||||
local_custom_services.append(service)
|
local_custom_services.append(service)
|
||||||
|
web_services = sorted(web_services, key=lambda service: service.__title__)
|
||||||
|
local_custom_services = sorted(local_custom_services, key=lambda service: service.__title__)
|
||||||
return web_services, local_custom_services
|
return web_services, local_custom_services
|
||||||
|
|
||||||
def _get_available_local_services(self):
|
def _get_available_local_services(self):
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user