diff options
Diffstat (limited to 'ext')
-rw-r--r-- | ext/js/language/dictionary-importer.js | 28 |
1 files changed, 26 insertions, 2 deletions
diff --git a/ext/js/language/dictionary-importer.js b/ext/js/language/dictionary-importer.js index 5629e197..4144de66 100644 --- a/ext/js/language/dictionary-importer.js +++ b/ext/js/language/dictionary-importer.js @@ -128,7 +128,15 @@ class DictionaryImporter { // Add dictionary descriptor this._progressNextStep(termList.length + termMetaList.length + kanjiList.length + kanjiMetaList.length + tagList.length + media.length); - const summary = this._createSummary(dictionaryTitle, version, index, {prefixWildcardsSupported}); + const counts = { + terms: {total: termList.length}, + termMeta: this._getMetaCounts(termMetaList), + kanji: {total: kanjiList.length}, + kanjiMeta: this._getMetaCounts(kanjiMetaList), + tagMeta: {total: tagList.length}, + media: {total: media.length} + }; + const summary = this._createSummary(dictionaryTitle, version, index, {prefixWildcardsSupported, counts}); dictionaryDatabase.bulkAdd('dictionaries', [summary], 0, 1); // Add data @@ -189,7 +197,8 @@ class DictionaryImporter { title: dictionaryTitle, revision: index.revision, sequenced: index.sequenced, - version + version, + importDate: Date.now() }; const {author, url, description, attribution} = index; @@ -556,4 +565,19 @@ class DictionaryImporter { } return results; } + + _getMetaCounts(metaList) { + const countsMap = new Map(); + for (const {mode} of metaList) { + let count = countsMap.get(mode); + count = typeof count !== 'undefined' ? count + 1 : 1; + countsMap.set(mode, count); + } + const counts = {total: metaList.length}; + for (const [key, value] of countsMap.entries()) { + if (Object.prototype.hasOwnProperty.call(counts, key)) { continue; } + counts[key] = value; + } + return counts; + } } |