From 12372cbc849c94e9a828ec361181dab227bcf6d1 Mon Sep 17 00:00:00 2001 From: Simon Lecoq <22963968+lowlighter@users.noreply.github.com> Date: Thu, 21 Jul 2022 04:44:34 +0200 Subject: [PATCH] feat(plugins/habits): add `plugin_habits_languages_threshold` (#1138) [skip ci] --- source/plugins/habits/index.mjs | 5 +++-- source/plugins/habits/metadata.yml | 8 +++++++- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/source/plugins/habits/index.mjs b/source/plugins/habits/index.mjs index 0b975e38..34cc9577 100644 --- a/source/plugins/habits/index.mjs +++ b/source/plugins/habits/index.mjs @@ -10,7 +10,8 @@ export default async function({login, data, rest, imports, q, account}, {enabled return null //Load inputs - let {from, days, facts, charts, "charts.type": _charts, trim, "languages.limit": limit} = imports.metadata.plugins.habits.inputs({data, account, q}, defaults) + let {from, days, facts, charts, "charts.type": _charts, trim, "languages.limit": limit, "languages.threshold": threshold} = imports.metadata.plugins.habits.inputs({data, account, q}, defaults) + threshold = (Number(threshold.replace(/%$/, "")) || 0) / 100 //Initialization const habits = {facts, charts, trim, lines: {average: {chars: 0}}, commits: {fetched: 0, hour: NaN, hours: {}, day: NaN, days: {}}, indents: {style: "", spaces: 0, tabs: 0}, linguist: {available: false, ordered: [], languages: {}}} @@ -105,7 +106,7 @@ export default async function({login, data, rest, imports, q, account}, {enabled habits.linguist.available = true const {total, stats} = await recent_analyzer({login, data, imports, rest, account}, {days, load: from || 1000, tempdir: "habits"}) habits.linguist.languages = Object.fromEntries(Object.entries(stats).map(([language, value]) => [language, value / total])) - habits.linguist.ordered = Object.entries(habits.linguist.languages).sort(([_an, a], [_bn, b]) => b - a).slice(0, limit || Infinity) + habits.linguist.ordered = Object.entries(habits.linguist.languages).sort(([_an, a], [_bn, b]) => b - a).filter(([_, value]) => value > threshold).slice(0, limit || Infinity) } else { console.debug(`metrics/compute/${login}/plugins > habits > linguist not available`) diff --git a/source/plugins/habits/metadata.yml b/source/plugins/habits/metadata.yml index 13bba660..24ed18f3 100644 --- a/source/plugins/habits/metadata.yml +++ b/source/plugins/habits/metadata.yml @@ -85,4 +85,10 @@ inputs: default: 8 min: 0 max: 8 - zero: disable \ No newline at end of file + zero: disable + + plugin_habits_languages_threshold: + description: | + Display threshold (percentage) + type: string + default: 0% \ No newline at end of file