summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ext/js/language/dictionary-importer.js28
-rw-r--r--test/test-database.js12
2 files changed, 37 insertions, 3 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;
+ }
}
diff --git a/test/test-database.js b/test/test-database.js
index a87a3f72..c24dedbd 100644
--- a/test/test-database.js
+++ b/test/test-database.js
@@ -147,7 +147,16 @@ async function testDatabase1() {
revision: 'test',
sequenced: true,
version: 3,
- prefixWildcardsSupported: true
+ importDate: 0,
+ prefixWildcardsSupported: true,
+ counts: {
+ kanji: {total: 2},
+ kanjiMeta: {total: 2, freq: 2},
+ media: {total: 4},
+ tagMeta: {total: 15},
+ termMeta: {total: 16, freq: 9, pitch: 7},
+ terms: {total: 20}
+ }
};
// Import data
@@ -158,6 +167,7 @@ async function testDatabase1() {
testDictionarySource,
{prefixWildcardsSupported: true}
);
+ expectedSummary.importDate = result.importDate;
vm.assert.deepStrictEqual(errors, []);
vm.assert.deepStrictEqual(result, expectedSummary);
assert.ok(progressEvent);