bug fixes

This commit is contained in:
St.Huang 2018-07-14 17:07:47 +08:00
parent 442f4b7ad3
commit 117a93dc21
3 changed files with 15 additions and 16 deletions

View File

@ -19,10 +19,6 @@ class Ldoce6(MdxService):
def __init__(self):
super(Ldoce6, self).__init__(PATH)
@property
def unique(self):
return self.__class__.__name__
@property
def title(self):
return getattr(self, '__register_label__', self.unique)

View File

@ -187,6 +187,7 @@ class Service(object):
def __init__(self):
self.cache = defaultdict(defaultdict)
self._unique = self.__class__.__name__
self._exporters = self._get_exporters()
self._fields, self._actions = zip(*self._exporters) \
if self._exporters else (None, None)
@ -203,6 +204,14 @@ class Service(object):
def cache_result(self, key):
return self.cache[self.word].get(key, u'')
@property
def unique(self):
return self._unique
@unique.setter
def unique(self, value):
self._unique = value
@property
def support(self):
return True
@ -260,10 +269,6 @@ class WebService(Service):
def title(self):
return getattr(self, '__register_label__', self.unique)
@property
def unique(self):
return self.__class__.__name__
def get_response(self, url, data=None, headers=None, timeout=10):
default_headers = {'User-Agent': 'Anki WordQuery',
'Accept-Encoding': 'gzip'}
@ -449,7 +454,6 @@ class LocalService(Service):
def __init__(self, dict_path):
super(LocalService, self).__init__()
self.dict_path = dict_path
self._unique = md5(dict_path).hexdigest()
self.builder = None
self.missed_css = set()
@ -476,10 +480,6 @@ class LocalService(Service):
def support(self):
return os.path.isfile(self.dict_path)
@property
def unique(self):
return self._unique
@property
def title(self):
return getattr(self, '__register_label__', u'Unkown')

View File

@ -20,6 +20,7 @@
import inspect
import os
from functools import wraps
from hashlib import md5
from aqt import mw
from aqt.qt import QThread
@ -61,7 +62,9 @@ class ServiceManager(object):
for each in self.services:
if each.__unique__ == unique:
#cls = getattr(each,"__class__")
return each()
service = each()
service.unique = unique
return service
def get_service_action(self, service, label):
for each in service.fields:
@ -116,12 +119,12 @@ class ServiceManager(object):
#MDX
if MdxService.check(dict_path):
service = service_wrap(MdxService, dict_path)
service.__unique__ = dict_path
service.__unique__ = md5(dict_path).hexdigest()
local_services.append(service)
#Stardict
if StardictService.check(dict_path):
service = service_wrap(StardictService, dict_path)
service.__unique__ = dict_path
service.__unique__ = md5(dict_path).hexdigest()
local_services.append(service)
# support mdx dictionary and stardict format dictionary
return local_services