From 117a93dc217dd2740886953d182c0ef3dd010745 Mon Sep 17 00:00:00 2001 From: "St.Huang" Date: Sat, 14 Jul 2018 17:07:47 +0800 Subject: [PATCH] bug fixes --- src/fastwq/service/LDOCE6.py | 4 ---- src/fastwq/service/base.py | 18 +++++++++--------- src/fastwq/service/manager.py | 9 ++++++--- 3 files changed, 15 insertions(+), 16 deletions(-) diff --git a/src/fastwq/service/LDOCE6.py b/src/fastwq/service/LDOCE6.py index 42840a4..e238926 100644 --- a/src/fastwq/service/LDOCE6.py +++ b/src/fastwq/service/LDOCE6.py @@ -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) diff --git a/src/fastwq/service/base.py b/src/fastwq/service/base.py index 7269970..a224c36 100644 --- a/src/fastwq/service/base.py +++ b/src/fastwq/service/base.py @@ -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') diff --git a/src/fastwq/service/manager.py b/src/fastwq/service/manager.py index 895127b..d99acfd 100644 --- a/src/fastwq/service/manager.py +++ b/src/fastwq/service/manager.py @@ -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