add new fields to LEDOCE6. fix #63
This commit is contained in:
parent
0dabf330ad
commit
c316ec9a50
@ -1,6 +1,7 @@
|
|||||||
#-*- coding:utf-8 -*-
|
#-*- coding:utf-8 -*-
|
||||||
import os
|
import os
|
||||||
import re
|
import re
|
||||||
|
import random
|
||||||
from ..base import *
|
from ..base import *
|
||||||
|
|
||||||
|
|
||||||
@ -83,19 +84,7 @@ class Ldoce6(MdxService):
|
|||||||
|
|
||||||
@export('EXAMPLE')
|
@export('EXAMPLE')
|
||||||
def fld_sentence(self):
|
def fld_sentence(self):
|
||||||
m = re.findall(r'<span class="example"\s*.*>\s*.*<\/span>', self.get_html())
|
return self._range_sentence([i for i in range(0, 100)])
|
||||||
if m:
|
|
||||||
soup = parse_html(m[0])
|
|
||||||
el_list = soup.findAll('span', {'class':'example'})
|
|
||||||
if el_list:
|
|
||||||
maps = [u''.join(str(content).decode('utf-8') for content in element.contents)
|
|
||||||
for element in el_list]
|
|
||||||
my_str = ''
|
|
||||||
for i_str in maps:
|
|
||||||
i_str = re.sub(r'<a[^>]+?href=\"sound\:.*\.mp3\".*</a>', '', i_str).strip()
|
|
||||||
my_str = my_str + '<li>' + i_str + '</li>'
|
|
||||||
return self._css(my_str)
|
|
||||||
return ''
|
|
||||||
|
|
||||||
def _fld_audio(self, audio):
|
def _fld_audio(self, audio):
|
||||||
name = get_hex_name('mdx-'+self.unique.lower(), audio, 'mp3')
|
name = get_hex_name('mdx-'+self.unique.lower(), audio, 'mp3')
|
||||||
@ -106,22 +95,7 @@ class Ldoce6(MdxService):
|
|||||||
|
|
||||||
@export([u'例句加音频', u'Examples with audios'])
|
@export([u'例句加音频', u'Examples with audios'])
|
||||||
def fld_sentence_audio(self):
|
def fld_sentence_audio(self):
|
||||||
m = re.findall(r'<span class="example"\s*.*>\s*.*<\/span>', self.get_html())
|
return self._range_sentence_audio([i for i in range(0, 100)])
|
||||||
if m:
|
|
||||||
soup = parse_html(m[0])
|
|
||||||
el_list = soup.findAll('span', {'class':'example'})
|
|
||||||
if el_list:
|
|
||||||
maps = [u''.join(str(content).decode('utf-8') for content in element.contents)
|
|
||||||
for element in el_list]
|
|
||||||
my_str = ''
|
|
||||||
for i_str in maps:
|
|
||||||
sound = re.search(r'<a[^>]+?href=\"sound\:\/(.*?\.mp3)\".*</a>', i_str)
|
|
||||||
if sound:
|
|
||||||
mp3 = self._fld_audio(sound.groups()[0])
|
|
||||||
i_str = re.sub(r'<a[^>]+?href=\"sound\:.*\.mp3\".*</a>', '', i_str).strip()
|
|
||||||
my_str = my_str + '<li>' + i_str + ' ' + mp3 + '</li>'
|
|
||||||
return self._css(my_str)
|
|
||||||
return ''
|
|
||||||
|
|
||||||
@export('DEF')
|
@export('DEF')
|
||||||
def fld_definate(self):
|
def fld_definate(self):
|
||||||
@ -137,6 +111,65 @@ class Ldoce6(MdxService):
|
|||||||
my_str = my_str + '<li>' + i_str + '</li>'
|
my_str = my_str + '<li>' + i_str + '</li>'
|
||||||
return self._css(my_str)
|
return self._css(my_str)
|
||||||
return ''
|
return ''
|
||||||
|
|
||||||
|
@export([u'随机例句', u'Random example'])
|
||||||
|
def fld_random_sentence(self):
|
||||||
|
return self._range_sentence()
|
||||||
|
|
||||||
|
@export([u'首2个例句', u'First 2 examples'])
|
||||||
|
def fld_first2_sentence(self):
|
||||||
|
return self._range_sentence([0, 1])
|
||||||
|
|
||||||
|
@export([u'随机例句加音频', u'Random example with audio'])
|
||||||
|
def fld_random_sentence_audio(self):
|
||||||
|
return self._range_sentence_audio()
|
||||||
|
|
||||||
|
@export([u'首2个例句加音频', u'First 2 examples with audios'])
|
||||||
|
def fld_first2_sentence_audio(self):
|
||||||
|
return self._range_sentence_audio([0, 1])
|
||||||
|
|
||||||
|
def _range_sentence(self, range_arr=None):
|
||||||
|
m = re.findall(r'<span class="example"\s*.*>\s*.*<\/span>', self.get_html())
|
||||||
|
if m:
|
||||||
|
soup = parse_html(m[0])
|
||||||
|
el_list = soup.findAll('span', {'class':'example'})
|
||||||
|
if el_list:
|
||||||
|
maps = [u''.join(str(content).decode('utf-8') for content in element.contents)
|
||||||
|
for element in el_list]
|
||||||
|
my_str = ''
|
||||||
|
range_arr = range_arr if range_arr else [random.randrange(0, len(maps) - 1, 1)]
|
||||||
|
for i, i_str in enumerate(maps):
|
||||||
|
if i in range_arr:
|
||||||
|
i_str = re.sub(r'<a[^>]+?href=\"sound\:.*\.mp3\".*</a>', '', i_str).strip()
|
||||||
|
my_str = my_str + '<li>' + i_str + '</li>'
|
||||||
|
return self._css(my_str)
|
||||||
|
return ''
|
||||||
|
|
||||||
|
def _range_sentence_audio(self, range_arr=None):
|
||||||
|
m = re.findall(r'<span class="example"\s*.*>\s*.*<\/span>', self.get_html())
|
||||||
|
if m:
|
||||||
|
soup = parse_html(m[0])
|
||||||
|
el_list = soup.findAll('span', {'class':'example'})
|
||||||
|
if el_list:
|
||||||
|
maps = []
|
||||||
|
for element in el_list:
|
||||||
|
i_str = ''
|
||||||
|
for content in element.contents:
|
||||||
|
i_str = i_str + str(content).decode('utf-8')
|
||||||
|
sound = re.search(r'<a[^>]+?href=\"sound\:\/(.*?\.mp3)\".*</a>', i_str)
|
||||||
|
if sound:
|
||||||
|
maps.append([sound, i_str])
|
||||||
|
my_str = ''
|
||||||
|
range_arr = range_arr if range_arr else [random.randrange(0, len(maps) - 1, 1)]
|
||||||
|
for i, e in enumerate(maps):
|
||||||
|
if i in range_arr:
|
||||||
|
i_str = e[1]
|
||||||
|
sound = e[0]
|
||||||
|
mp3 = self._fld_audio(sound.groups()[0])
|
||||||
|
i_str = re.sub(r'<a[^>]+?href=\"sound\:.*\.mp3\".*</a>', '', i_str).strip()
|
||||||
|
my_str = my_str + '<li>' + i_str + ' ' + mp3 + '</li>'
|
||||||
|
return self._css(my_str)
|
||||||
|
return ''
|
||||||
|
|
||||||
@with_styles(cssfile='_ldoce6.css')
|
@with_styles(cssfile='_ldoce6.css')
|
||||||
def _css(self, val):
|
def _css(self, val):
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
#-*- coding:utf-8 -*-
|
#-*- coding:utf-8 -*-
|
||||||
import os
|
import os
|
||||||
import re
|
import re
|
||||||
|
import random
|
||||||
from ..base import *
|
from ..base import *
|
||||||
|
|
||||||
|
|
||||||
@ -83,19 +84,7 @@ class Ldoce6(MdxService):
|
|||||||
|
|
||||||
@export('EXAMPLE')
|
@export('EXAMPLE')
|
||||||
def fld_sentence(self):
|
def fld_sentence(self):
|
||||||
m = re.findall(r'<span class="example"\s*.*>\s*.*<\/span>', self.get_html())
|
return self._range_sentence([i for i in range(0, 100)])
|
||||||
if m:
|
|
||||||
soup = parse_html(m[0])
|
|
||||||
el_list = soup.findAll('span', {'class':'example'})
|
|
||||||
if el_list:
|
|
||||||
maps = [u''.join(str(content) for content in element.contents)
|
|
||||||
for element in el_list]
|
|
||||||
my_str = ''
|
|
||||||
for i_str in maps:
|
|
||||||
i_str = re.sub(r'<a[^>]+?href=\"sound\:.*\.mp3\".*</a>', '', i_str).strip()
|
|
||||||
my_str = my_str + '<li>' + i_str + '</li>'
|
|
||||||
return self._css(my_str)
|
|
||||||
return ''
|
|
||||||
|
|
||||||
def _fld_audio(self, audio):
|
def _fld_audio(self, audio):
|
||||||
name = get_hex_name('mdx-'+self.unique.lower(), audio, 'mp3')
|
name = get_hex_name('mdx-'+self.unique.lower(), audio, 'mp3')
|
||||||
@ -106,22 +95,7 @@ class Ldoce6(MdxService):
|
|||||||
|
|
||||||
@export([u'例句加音频', u'Examples with audios'])
|
@export([u'例句加音频', u'Examples with audios'])
|
||||||
def fld_sentence_audio(self):
|
def fld_sentence_audio(self):
|
||||||
m = re.findall(r'<span class="example"\s*.*>\s*.*<\/span>', self.get_html())
|
return self._range_sentence_audio([i for i in range(0, 100)])
|
||||||
if m:
|
|
||||||
soup = parse_html(m[0])
|
|
||||||
el_list = soup.findAll('span', {'class':'example'})
|
|
||||||
if el_list:
|
|
||||||
maps = [u''.join(str(content) for content in element.contents)
|
|
||||||
for element in el_list]
|
|
||||||
my_str = ''
|
|
||||||
for i_str in maps:
|
|
||||||
sound = re.search(r'<a[^>]+?href=\"sound\:\/(.*?\.mp3)\".*</a>', i_str)
|
|
||||||
if sound:
|
|
||||||
mp3 = self._fld_audio(sound.groups()[0])
|
|
||||||
i_str = re.sub(r'<a[^>]+?href=\"sound\:.*\.mp3\".*</a>', '', i_str).strip()
|
|
||||||
my_str = my_str + '<li>' + i_str + ' ' + mp3 + '</li>'
|
|
||||||
return self._css(my_str)
|
|
||||||
return ''
|
|
||||||
|
|
||||||
@export('DEF')
|
@export('DEF')
|
||||||
def fld_definate(self):
|
def fld_definate(self):
|
||||||
@ -138,6 +112,65 @@ class Ldoce6(MdxService):
|
|||||||
return self._css(my_str)
|
return self._css(my_str)
|
||||||
return ''
|
return ''
|
||||||
|
|
||||||
|
@export([u'随机例句', u'Random example'])
|
||||||
|
def fld_random_sentence(self):
|
||||||
|
return self._range_sentence()
|
||||||
|
|
||||||
|
@export([u'首2个例句', u'First 2 examples'])
|
||||||
|
def fld_first2_sentence(self):
|
||||||
|
return self._range_sentence([0, 1])
|
||||||
|
|
||||||
|
@export([u'随机例句加音频', u'Random example with audio'])
|
||||||
|
def fld_random_sentence_audio(self):
|
||||||
|
return self._range_sentence_audio()
|
||||||
|
|
||||||
|
@export([u'首2个例句加音频', u'First 2 examples with audios'])
|
||||||
|
def fld_first2_sentence_audio(self):
|
||||||
|
return self._range_sentence_audio([0, 1])
|
||||||
|
|
||||||
|
def _range_sentence(self, range_arr=None):
|
||||||
|
m = re.findall(r'<span class="example"\s*.*>\s*.*<\/span>', self.get_html())
|
||||||
|
if m:
|
||||||
|
soup = parse_html(m[0])
|
||||||
|
el_list = soup.findAll('span', {'class':'example'})
|
||||||
|
if el_list:
|
||||||
|
maps = [u''.join(str(content) for content in element.contents)
|
||||||
|
for element in el_list]
|
||||||
|
my_str = ''
|
||||||
|
range_arr = range_arr if range_arr else [random.randrange(0, len(maps) - 1, 1)]
|
||||||
|
for i, i_str in enumerate(maps):
|
||||||
|
if i in range_arr:
|
||||||
|
i_str = re.sub(r'<a[^>]+?href=\"sound\:.*\.mp3\".*</a>', '', i_str).strip()
|
||||||
|
my_str = my_str + '<li>' + i_str + '</li>'
|
||||||
|
return self._css(my_str)
|
||||||
|
return ''
|
||||||
|
|
||||||
|
def _range_sentence_audio(self, range_arr=None):
|
||||||
|
m = re.findall(r'<span class="example"\s*.*>\s*.*<\/span>', self.get_html())
|
||||||
|
if m:
|
||||||
|
soup = parse_html(m[0])
|
||||||
|
el_list = soup.findAll('span', {'class':'example'})
|
||||||
|
if el_list:
|
||||||
|
maps = []
|
||||||
|
for element in el_list:
|
||||||
|
i_str = ''
|
||||||
|
for content in element.contents:
|
||||||
|
i_str = i_str + str(content)
|
||||||
|
sound = re.search(r'<a[^>]+?href=\"sound\:\/(.*?\.mp3)\".*</a>', i_str)
|
||||||
|
if sound:
|
||||||
|
maps.append([sound, i_str])
|
||||||
|
my_str = ''
|
||||||
|
range_arr = range_arr if range_arr else [random.randrange(0, len(maps) - 1, 1)]
|
||||||
|
for i, e in enumerate(maps):
|
||||||
|
if i in range_arr:
|
||||||
|
i_str = e[1]
|
||||||
|
sound = e[0]
|
||||||
|
mp3 = self._fld_audio(sound.groups()[0])
|
||||||
|
i_str = re.sub(r'<a[^>]+?href=\"sound\:.*\.mp3\".*</a>', '', i_str).strip()
|
||||||
|
my_str = my_str + '<li>' + i_str + ' ' + mp3 + '</li>'
|
||||||
|
return self._css(my_str)
|
||||||
|
return ''
|
||||||
|
|
||||||
@with_styles(cssfile='_ldoce6.css')
|
@with_styles(cssfile='_ldoce6.css')
|
||||||
def _css(self, val):
|
def _css(self, val):
|
||||||
return val
|
return val
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user