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): def __init__(self):
super(Ldoce6, self).__init__(PATH) super(Ldoce6, self).__init__(PATH)
@property
def unique(self):
return self.__class__.__name__
@property @property
def title(self): def title(self):
return getattr(self, '__register_label__', self.unique) return getattr(self, '__register_label__', self.unique)

View File

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

View File

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