diff options
Diffstat (limited to 'ext/js')
-rw-r--r-- | ext/js/data/anki-note-data.js | 14 | ||||
-rw-r--r-- | ext/js/display/display-generator.js | 4 | ||||
-rw-r--r-- | ext/js/language/dictionary-data-util.js | 14 | ||||
-rw-r--r-- | ext/js/language/translator.js | 2 |
4 files changed, 30 insertions, 4 deletions
diff --git a/ext/js/data/anki-note-data.js b/ext/js/data/anki-note-data.js index 529bad18..a8a82a79 100644 --- a/ext/js/data/anki-note-data.js +++ b/ext/js/data/anki-note-data.js @@ -245,6 +245,7 @@ class AnkiNoteData { } for (const expression of definition2.expressions) { this._defineFuriganaSegments(expression); + this._defineTermFrequency(expression); } } } @@ -257,6 +258,14 @@ class AnkiNoteData { }); } + _defineTermFrequency(object) { + Object.defineProperty(object, 'termFrequency', { + configurable: true, + enumerable: true, + get: this._getTermFrequency.bind(this, object) + }); + } + _getFuriganaSegments(object) { if (this._furiganaSegmentsCache !== null) { const cachedResult = this._furiganaSegmentsCache.get(object); @@ -271,6 +280,11 @@ class AnkiNoteData { return result; } + _getTermFrequency(object) { + const {termTags} = object; + return DictionaryDataUtil.getTermFrequency(termTags); + } + _getAllDefinitions(definition) { const definitions = [definition]; for (let i = 0; i < definitions.length; ++i) { diff --git a/ext/js/display/display-generator.js b/ext/js/display/display-generator.js index c0945781..3977815b 100644 --- a/ext/js/display/display-generator.js +++ b/ext/js/display/display-generator.js @@ -230,7 +230,7 @@ class DisplayGenerator { // Private _createTermExpression(details) { - const {termFrequency, expression, reading, termTags, pitches} = details; + const {expression, reading, termTags, pitches} = details; const searchQueries = []; if (expression) { searchQueries.push(expression); } @@ -242,7 +242,7 @@ class DisplayGenerator { const tagContainer = node.querySelector('.expression-tag-list'); node.dataset.readingIsSame = `${reading === expression}`; - node.dataset.frequency = termFrequency; + node.dataset.frequency = DictionaryDataUtil.getTermFrequency(termTags); const pitchAccentCategories = this._getPitchAccentCategories(pitches); if (pitchAccentCategories !== null) { diff --git a/ext/js/language/dictionary-data-util.js b/ext/js/language/dictionary-data-util.js index b3a354a7..dff9d212 100644 --- a/ext/js/language/dictionary-data-util.js +++ b/ext/js/language/dictionary-data-util.js @@ -143,6 +143,20 @@ class DictionaryDataUtil { return results2; } + static getTermFrequency(termTags) { + let totalScore = 0; + for (const {score} of termTags) { + totalScore += score; + } + if (totalScore > 0) { + return 'popular'; + } else if (totalScore < 0) { + return 'rare'; + } else { + return 'normal'; + } + } + // Private static _createFrequencyGroupsFromMap(map) { diff --git a/ext/js/language/translator.js b/ext/js/language/translator.js index 5aa8ee9c..e8aba5b1 100644 --- a/ext/js/language/translator.js +++ b/ext/js/language/translator.js @@ -1271,13 +1271,11 @@ class Translator { } _createTermDetails(sourceTerm, expression, reading, termTags) { - const termFrequency = this._scoreToTermFrequency(this._getTermTagsScoreSum(termTags)); return { sourceTerm, expression, reading, termTags, - termFrequency, frequencies: [], pitches: [] }; |