diff --git a/.gitignore b/.gitignore index 207e246..a01f22f 100644 --- a/.gitignore +++ b/.gitignore @@ -9,3 +9,4 @@ __pycache__ chinese/config_saved.json chinese/meta.json Pipfile.lock +.vscode diff --git a/chinese/behavior.py b/chinese/behavior.py index 6ff2970..e9fcd88 100644 --- a/chinese/behavior.py +++ b/chinese/behavior.py @@ -39,7 +39,6 @@ set_all, ) - def get_classifier(hanzi, note): cs = dictionary.get_classifiers(hanzi) text = ', '.join(colorize_dict(c) for c in cs) diff --git a/chinese/config.py b/chinese/config.py index 9303fc6..711b134 100644 --- a/chinese/config.py +++ b/chinese/config.py @@ -18,44 +18,17 @@ # Chinese Support Redux. If not, see . from collections import defaultdict -from json import dump, load -from os.path import dirname, exists, join, realpath - from aqt import mw - -class ConfigManager: - default_path = join(dirname(realpath(__file__)), 'config.json') - saved_path = join(dirname(realpath(__file__)), 'config_saved.json') - - with open(default_path, encoding='utf-8') as f: - config = defaultdict(str, load(f)) - - if exists(saved_path): - with open(saved_path, encoding='utf-8') as f: - config_saved = defaultdict(str, load(f)) - if config_saved['version'] == config['version']: - config = config_saved - - def __setitem__(self, key, value): - self.config[key] = value - - def __getitem__(self, key): - return self.config[key] - - def update(self, d): - self.config.update(d) - - def save(self): - with open(self.saved_path, 'w', encoding='utf-8') as f: - dump(self.config, f) - mw.addonManager.writeConfig(__name__, self.config) +class ConfigManager(defaultdict): + def __init__(self): + self.update(mw.addonManager.getConfig(__name__)) def get_fields(self, groups=None): if not groups: - groups = list(self.config['fields']) + groups = list(self['fields']) fields = [] for g in groups: - if g in self.config['fields']: - fields.extend(self.config['fields'][g]) - return fields + if g in self['fields']: + fields.extend(self['fields'][g]) + return fields \ No newline at end of file diff --git a/chinese/database.py b/chinese/database.py index 39eea54..56d2cab 100644 --- a/chinese/database.py +++ b/chinese/database.py @@ -177,6 +177,8 @@ def _get_char(self, c, type_): self.c.execute('SELECT %s FROM hanzi WHERE cp = ?' % to_col[type_], c) try: (k,) = self.c.fetchone() + if k is not None: + k = k.split()[0] # When returning two transcriptions just take the first. return k except: return None diff --git a/chinese/edit.py b/chinese/edit.py index b9c5e39..d0b8868 100644 --- a/chinese/edit.py +++ b/chinese/edit.py @@ -55,8 +55,6 @@ def onToggle(self, editor): elif not self.buttonOn and mid in config['enabledModels']: config['enabledModels'].remove(mid) - config.save() - def updateButton(self, editor): enabled = str(editor.note.model()['id']) in config['enabledModels'] diff --git a/chinese/main.py b/chinese/main.py index 04ba325..9476dbd 100644 --- a/chinese/main.py +++ b/chinese/main.py @@ -34,18 +34,12 @@ from .templates import chinese, ruby -if config['firstRun']: - dictionary.create_indices() - config['firstRun'] = False - - def load(): ruby.install() chinese.install() addHook('profileLoaded', load_menu) addHook('profileLoaded', add_models) addHook('loadNote', append_tone_styling) - addHook('unloadProfile', config.save) addHook('unloadProfile', dictionary.conn.close) addHook('unloadProfile', unload_menu) CollectionStats.todayStats = wrap(