From 18bae9b3d2e58a7d5540a892dc1e361c91480989 Mon Sep 17 00:00:00 2001 From: Alex Yatskov Date: Sat, 9 Nov 2013 13:17:29 -0800 Subject: [PATCH] Adding code to make Yomichan work with the new dictionary and deinflector Former-commit-id: dc63a286c7de76d0cbb723a30df5bdf881d6bb34 --- yomi_base/japanese2/translate.py | 8 ++++---- yomi_base/reader.py | 12 ++---------- yomi_base/reader_util.py | 11 ++++++----- 3 files changed, 12 insertions(+), 19 deletions(-) diff --git a/yomi_base/japanese2/translate.py b/yomi_base/japanese2/translate.py index db382cd..4f4c397 100644 --- a/yomi_base/japanese2/translate.py +++ b/yomi_base/japanese2/translate.py @@ -27,7 +27,7 @@ class Translator: self.dictionary = dictionary - def wordSearch(self, selection): + def findTerm(self, selection, partial=False): groups = dict() for i in xrange(len(selection), 0, -1): @@ -35,7 +35,7 @@ class Translator: deinflections = self.deinflector.deinflect(term, self.validator) if deinflections is None: - self.processTerm(groups, term) + self.processTerm(groups, term, partial=partial) else: for deinflection in deinflections: self.processTerm(groups, **deinflection) @@ -51,10 +51,10 @@ class Translator: return results, length - def processTerm(self, groups, source, rules=list(), root=str()): + def processTerm(self, groups, source, rules=list(), root=str(), partial=False): root = root or source - for entry in self.dictionary.findTerm(root): + for entry in self.dictionary.findTerm(root, partial): expression, reading, definition, tags = entry key = expression, reading, definition if key not in groups: diff --git a/yomi_base/reader.py b/yomi_base/reader.py index 53baf76..12eaccb 100644 --- a/yomi_base/reader.py +++ b/yomi_base/reader.py @@ -269,11 +269,7 @@ class MainWindowReader(QtGui.QMainWindow, reader_ui.Ui_MainWindowReader): def onDefinitionSearchReturn(self): text = unicode(self.textDefinitionSearch.text()) - definitions, length = self.language.wordSearch( - text, - self.preferences.searchResultMax, - self.preferences.searchGroupByExp - ) + definitions, length = self.language.findTerm(text, True) self.state.definitions = reader_util.convertDefinitions(definitions) self.updateDefinitions() @@ -493,11 +489,7 @@ class MainWindowReader(QtGui.QMainWindow, reader_ui.Ui_MainWindowReader): return contentSampleFlat = contentSample.replace('\n', unicode()) - definitionsMatched, lengthMatched = self.language.wordSearch( - contentSampleFlat, - self.preferences.searchResultMax, - self.preferences.searchGroupByExp - ) + definitionsMatched, lengthMatched = self.language.findTerm(contentSampleFlat) sentence = reader_util.findSentence(content, samplePosStart) self.state.definitions = reader_util.convertDefinitions(definitionsMatched, sentence) diff --git a/yomi_base/reader_util.py b/yomi_base/reader_util.py index 5eec98f..8f9a096 100644 --- a/yomi_base/reader_util.py +++ b/yomi_base/reader_util.py @@ -144,9 +144,10 @@ def buildDefinitionHtml(definition, factIndex, factQuery): if definition.reading: reading = u'[{0}]'.format(definition.reading) - conjugation = unicode() - if definition.conjugations: - conjugation = '<{0}>
'.format(definition.conjugations) + conjugations = unicode() + if len(definition.conjugations) > 0: + conjugations = u' :: '.join(definition.conjugations) + conjugations = '<{0}>
'.format(conjugations) links = ''.format(factIndex) if factQuery: @@ -159,8 +160,8 @@ def buildDefinitionHtml(definition, factIndex, factQuery): {0} {1} {2}
{3}
- {4} -
""".format(links, definition.expression, reading, definition.glossary, conjugation) + {4} +
""".format(links, definition.expression, reading, definition.glossary, conjugations) return html