add new fields to LEDOCE6. fix #63
This commit is contained in:
parent
0dabf330ad
commit
c316ec9a50
@ -1,6 +1,7 @@
|
||||
#-*- coding:utf-8 -*-
|
||||
import os
|
||||
import re
|
||||
import random
|
||||
from ..base import *
|
||||
|
||||
|
||||
@ -83,19 +84,7 @@ class Ldoce6(MdxService):
|
||||
|
||||
@export('EXAMPLE')
|
||||
def fld_sentence(self):
|
||||
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 = ''
|
||||
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 ''
|
||||
return self._range_sentence([i for i in range(0, 100)])
|
||||
|
||||
def _fld_audio(self, audio):
|
||||
name = get_hex_name('mdx-'+self.unique.lower(), audio, 'mp3')
|
||||
@ -106,22 +95,7 @@ class Ldoce6(MdxService):
|
||||
|
||||
@export([u'例句加音频', u'Examples with audios'])
|
||||
def fld_sentence_audio(self):
|
||||
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 = ''
|
||||
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 ''
|
||||
return self._range_sentence_audio([i for i in range(0, 100)])
|
||||
|
||||
@export('DEF')
|
||||
def fld_definate(self):
|
||||
@ -137,6 +111,65 @@ class Ldoce6(MdxService):
|
||||
my_str = my_str + '<li>' + i_str + '</li>'
|
||||
return self._css(my_str)
|
||||
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')
|
||||
def _css(self, val):
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
#-*- coding:utf-8 -*-
|
||||
import os
|
||||
import re
|
||||
import random
|
||||
from ..base import *
|
||||
|
||||
|
||||
@ -83,19 +84,7 @@ class Ldoce6(MdxService):
|
||||
|
||||
@export('EXAMPLE')
|
||||
def fld_sentence(self):
|
||||
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 = ''
|
||||
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 ''
|
||||
return self._range_sentence([i for i in range(0, 100)])
|
||||
|
||||
def _fld_audio(self, audio):
|
||||
name = get_hex_name('mdx-'+self.unique.lower(), audio, 'mp3')
|
||||
@ -106,22 +95,7 @@ class Ldoce6(MdxService):
|
||||
|
||||
@export([u'例句加音频', u'Examples with audios'])
|
||||
def fld_sentence_audio(self):
|
||||
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 = ''
|
||||
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 ''
|
||||
return self._range_sentence_audio([i for i in range(0, 100)])
|
||||
|
||||
@export('DEF')
|
||||
def fld_definate(self):
|
||||
@ -138,6 +112,65 @@ class Ldoce6(MdxService):
|
||||
return self._css(my_str)
|
||||
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')
|
||||
def _css(self, val):
|
||||
return val
|
||||
|
||||
Loading…
Reference in New Issue
Block a user