Add cambridge ECS & ECT

This commit is contained in:
sthoo 2018-10-28 22:44:50 +08:00
parent 13bf8f6c30
commit e36216552c
10 changed files with 94 additions and 9 deletions

View File

@ -2,28 +2,31 @@
import os
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_img = True
@register([u'剑桥英英', u'Cambridge'])
class Cambridge(WebService):
def __init__(self):
super(Cambridge, self).__init__()
def _get_url(self):
return cambridge_url_base
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)
result = {
'pronunciation': {'AmE': '', 'BrE': '', 'AmEmp3': '', 'BrEmp3': ''},
'image': '',
'thumb': '',
'def': ''
'def': '',
'def_list': []
}
#english
element = soup.find('div', class_='link')
element = soup.find('div', class_='di-body')
if element:
#页
elements = element.find_all('div', class_='entry-body__el clrd js-share-holder')

View 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/'

View 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/'

View 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/'

View File

@ -94,6 +94,8 @@ class ServiceManager(object):
continue
if not(issubclass(clazz, WebService) or issubclass(clazz, LocalService)):
continue
if getattr(clazz, '__register_label__', None) is None:
continue
service = service_wrap(clazz, *args)
service.__title__ = getattr(clazz, '__register_label__', name)
service.__unique__ = name
@ -103,6 +105,8 @@ class ServiceManager(object):
# get the customized local services
if issubclass(clazz, LocalService):
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
def _get_available_local_services(self):

View File

@ -2,18 +2,20 @@
import os
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_img = True
@register([u'剑桥英英', u'Cambridge'])
class Cambridge(WebService):
def __init__(self):
super(Cambridge, self).__init__()
def _get_url(self):
return cambridge_url_base
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)
result = {
'pronunciation': {'AmE': '', 'BrE': '', 'AmEmp3': '', 'BrEmp3': ''},
@ -24,7 +26,7 @@ class Cambridge(WebService):
}
#english
element = soup.find('div', class_='link')
element = soup.find('div', class_='di-body')
if element:
#页
elements = element.find_all('div', class_='entry-body__el clrd js-share-holder')

View 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/'

View 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/'

View 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/'

View File

@ -84,6 +84,8 @@ class ServiceManager(object):
continue
if not(issubclass(clazz, WebService) or issubclass(clazz, LocalService)):
continue
if getattr(clazz, '__register_label__', None) is None:
continue
service = service_wrap(clazz, *args)
service.__title__ = getattr(clazz, '__register_label__', name)
service.__unique__ = name
@ -93,6 +95,8 @@ class ServiceManager(object):
# get the customized local services
if issubclass(clazz, LocalService):
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
def _get_available_local_services(self):