aboutsummaryrefslogtreecommitdiff
path: root/ext/bg/js/util.js
diff options
context:
space:
mode:
Diffstat (limited to 'ext/bg/js/util.js')
-rw-r--r--ext/bg/js/util.js36
1 files changed, 2 insertions, 34 deletions
diff --git a/ext/bg/js/util.js b/ext/bg/js/util.js
index 19d08a7c..f9932a61 100644
--- a/ext/bg/js/util.js
+++ b/ext/bg/js/util.js
@@ -93,8 +93,6 @@ function undupeTermDefs(definitions) {
function groupTermDefs(definitions) {
const groups = {};
- let groupCount = 0;
-
for (const definition of definitions) {
const key = [definition.source, definition.expression].concat(definition.reasons);
if (definition.reading) {
@@ -106,50 +104,20 @@ function groupTermDefs(definitions) {
group.push(definition);
} else {
groups[key] = [definition];
- ++groupCount;
}
}
const results = [];
for (const key in groups) {
- const groupDefs = sortTermDefs(groups[key]);
-
- const tagCounts = {};
- for (const tag of groupDefs.map(def => def.tags)) {
- const count = tagCounts[tag.name] || 0;
- tagCounts[tag.name] = count + 1;
- }
-
- const tagsGlobal = [];
- const tagsGlobalAdded = {};
- let maxScore = Number.MIN_SAFE_INTEGER;
-
- for (const definition of groupDefs) {
- const tagsLocal = [];
- for (const tag of definition.tags) {
- if (tagCounts[tag.name] === groupCount) {
- if (!tagsGlobalAdded[tag.name]) {
- tagsGlobalAdded[tag.name] = true;
- tagsGlobal.push(tag);
- }
- } else {
- tagsLocal.push(tag);
- }
- }
-
- definition.tags = tagsLocal;
- maxScore = Math.max(maxScore, definition.score);
- }
-
+ const groupDefs = groups[key];
const firstDef = groupDefs[0];
results.push({
definitions: groupDefs,
expression: firstDef.expression,
reading: firstDef.reading,
reasons: firstDef.reasons,
- score: maxScore,
+ score: groupDefs.reduce((x, y) => x > y ? x : y, Number.MIN_SAFE_INTEGER),
source: firstDef.source,
- tags: sortTags(tagsGlobal),
});
}