From 36c796e62e94b6a4914d3b24672d27c92a8f9f4e Mon Sep 17 00:00:00 2001 From: Simon Lecoq <22963968+lowlighter@users.noreply.github.com> Date: Thu, 13 Jan 2022 19:59:27 +0100 Subject: [PATCH] feat(plugins/starlists): add `plugin_starlists_shuffle_repositories` (#769) --- source/plugins/starlists/index.mjs | 6 ++++-- source/plugins/starlists/metadata.yml | 8 +++++++- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/source/plugins/starlists/index.mjs b/source/plugins/starlists/index.mjs index 4ec16ab3..c4254b74 100644 --- a/source/plugins/starlists/index.mjs +++ b/source/plugins/starlists/index.mjs @@ -7,7 +7,7 @@ export default async function({login, q, imports, data, account}, {enabled = fal return null //Load inputs - let {limit, ignored, only, "limit.repositories":_limit} = imports.metadata.plugins.starlists.inputs({data, account, q}) + let {limit, ignored, only, "limit.repositories":_limit, "shuffle.repositories":_shuffle} = imports.metadata.plugins.starlists.inputs({data, account, q}) //Start puppeteer and navigate to star lists console.debug(`metrics/compute/${login}/plugins > starlists > starting browser`) @@ -26,7 +26,7 @@ export default async function({login, q, imports, data, account}, {enabled = fal repositories:[] })))) const count = lists.length - lists = lists.slice(0, limit).filter(({name}) => (only.includes(name.toLocaleLowerCase())) || ((!only.length)&&((!name)||(!ignored.includes(name.toLocaleLowerCase()))))) + lists = lists.filter(({name}) => (name)&&((only.includes(name.toLocaleLowerCase()))||((!only.length)&&(!ignored.includes(name.toLocaleLowerCase()))))).slice(0, limit) console.debug(`metrics/compute/${login}/plugins > starlists > extracted ${lists.length} lists`) //Fetch star list content @@ -38,6 +38,8 @@ export default async function({login, q, imports, data, account}, {enabled = fal description:element.querySelector(".py-1")?.innerText ?? "" }))) list.repositories.push(...repositories) + if (_shuffle) + list.repositories = imports.shuffle(list.repositories) list.repositories = list.repositories.slice(0, _limit) } diff --git a/source/plugins/starlists/metadata.yml b/source/plugins/starlists/metadata.yml index c73a259c..55f4aa96 100644 --- a/source/plugins/starlists/metadata.yml +++ b/source/plugins/starlists/metadata.yml @@ -28,6 +28,12 @@ inputs: min: 0 max: 100 + # Shuffle displayed repositories for varied outputs + plugin_starlists_shuffle_repositories: + description: Shuffle displayed repositories + type: boolean + default: yes + # List of star lists that will be ignored plugin_starlists_ignored: description: Star lists to skip @@ -39,7 +45,7 @@ inputs: # List of star lists to display # Using this option is equivalent of using "plugin_starlists_ignored" with all star lists but the ones listed plugin_starlists_only: - description: Start lists to display + description: Star lists to display type: array format: comma-separated default: ""