77 lines
2.5 KiB
Python
77 lines
2.5 KiB
Python
#-*- coding:utf-8 -*-
|
|
import os
|
|
import re
|
|
import random
|
|
from ..base import *
|
|
|
|
DICT_PATH = u"/Users/brian/Documents/mdx/The Little Dict/TLD.mdx" # u'E:\\BaiduYunDownload\\mdx\\L6mp3.mdx'
|
|
|
|
|
|
@register([u'本地词典-The Little Dict', u'The Little Dict'])
|
|
class TLD(MdxService):
|
|
|
|
def __init__(self):
|
|
dict_path = DICT_PATH
|
|
# if DICT_PATH is a path, stop auto detect
|
|
if not dict_path:
|
|
from ...service import service_manager, service_pool
|
|
for clazz in service_manager.mdx_services:
|
|
service = service_pool.get(clazz.__unique__)
|
|
title = service.builder._title if service and service.support else u''
|
|
service_pool.put(service)
|
|
if title.startswith(u'TLD'):
|
|
dict_path = service.dict_path
|
|
break
|
|
super(TLD, self).__init__(dict_path)
|
|
|
|
@property
|
|
def title(self):
|
|
return getattr(self, '__register_label__', self.unique)
|
|
|
|
|
|
def get_html_all(self):
|
|
html = self.get_html()
|
|
if not html:
|
|
self.word = self.word.lower()
|
|
html = self.get_html()
|
|
if not html:
|
|
self.word = self.word.capitalize()
|
|
html = self.get_html()
|
|
if not html:
|
|
self.word = self.word.upper()
|
|
html = self.get_html()
|
|
return html
|
|
|
|
|
|
@export('iWeb_Rank')
|
|
def iweb_rank(self):
|
|
m = re.findall(r'<div class="\s*.*<\/div>', self.get_html_all())
|
|
if m:
|
|
soup = parse_html(m[0])
|
|
el_list = soup.findAll('div', {'class':'iweb'})
|
|
if el_list:
|
|
rank_temp = el_list[0].findAll('span',{'class':'rank'})
|
|
if rank_temp:
|
|
rank=[]
|
|
for i in rank_temp:
|
|
rank.append(int(i.contents[0]))
|
|
return str(min(rank))
|
|
return ''
|
|
|
|
@export('Chinese_def')
|
|
def chinese_def(self):
|
|
m = re.findall(r'<div class="\s*.*<\/div>', self.get_html_all())
|
|
if m:
|
|
soup = parse_html(m[0])
|
|
|
|
el_list = soup.findAll('div', {'class':'coca2'})
|
|
def_distribution = ''
|
|
if el_list:
|
|
def_distribution = str(el_list[0])
|
|
el_list = soup.findAll('div', {'class':'gdc'})
|
|
cn_def = ''
|
|
if el_list:
|
|
cn_def = str(el_list[0])
|
|
return def_distribution + cn_def
|
|
return ''
|