From 800dd4365fc6fc6a1646883c8873af9b7b47f812 Mon Sep 17 00:00:00 2001 From: lowlighter <22963968+lowlighter@users.noreply.github.com> Date: Thu, 21 Jul 2022 13:42:58 -0400 Subject: [PATCH] feat(app/web): improve permissions --- source/plugins/community/stock/metadata.yml | 1 + source/plugins/contributors/metadata.yml | 4 ++-- source/plugins/music/index.mjs | 2 ++ source/plugins/music/metadata.yml | 2 ++ source/plugins/pagespeed/index.mjs | 7 +++++++ source/plugins/pagespeed/metadata.yml | 2 ++ source/plugins/tweets/metadata.yml | 2 ++ 7 files changed, 18 insertions(+), 2 deletions(-) diff --git a/source/plugins/community/stock/metadata.yml b/source/plugins/community/stock/metadata.yml index 20262a02..29f53a05 100644 --- a/source/plugins/community/stock/metadata.yml +++ b/source/plugins/community/stock/metadata.yml @@ -20,6 +20,7 @@ inputs: default: no extras: - metrics.npm.optional.chartist + - metrics.api.yahoo.finance plugin_stock_token: description: | diff --git a/source/plugins/contributors/metadata.yml b/source/plugins/contributors/metadata.yml index d3a000fb..dbdd3247 100644 --- a/source/plugins/contributors/metadata.yml +++ b/source/plugins/contributors/metadata.yml @@ -79,5 +79,5 @@ inputs: "#️⃣ Others": ["*"] } extras: - - metrics.runner.tempdir - - metrics.runner.git + - metrics.run.tempdir + - metrics.run.git diff --git a/source/plugins/music/index.mjs b/source/plugins/music/index.mjs index d3264819..015ab175 100644 --- a/source/plugins/music/index.mjs +++ b/source/plugins/music/index.mjs @@ -52,6 +52,8 @@ export default async function({login, imports, data, q, account}, {enabled = fal token = _token console.debug(`metrics/compute/${login}/plugins > music > overriden token value through user inputs as sandbox mode is enabled`) } + if (!imports.metadata.plugins.music.extras("token", {extras, error: false})) + token = "" //Auto-guess parameters if (!mode) { diff --git a/source/plugins/music/metadata.yml b/source/plugins/music/metadata.yml index eb47fb65..d35fb36b 100644 --- a/source/plugins/music/metadata.yml +++ b/source/plugins/music/metadata.yml @@ -51,6 +51,8 @@ inputs: - `youtube`: "cookie" type: token default: "" + extras: + - metrics.api.music.any plugin_music_user: description: | diff --git a/source/plugins/pagespeed/index.mjs b/source/plugins/pagespeed/index.mjs index 8ea1c6c2..bcc44f5e 100644 --- a/source/plugins/pagespeed/index.mjs +++ b/source/plugins/pagespeed/index.mjs @@ -8,6 +8,9 @@ export default async function({login, imports, data, q, account}, {enabled = fal //Load inputs let {detailed, screenshot, url, pwa} = imports.metadata.plugins.pagespeed.inputs({data, account, q}) + if (!imports.metadata.plugins.pagespeed.extras("token", {extras, error: false})) + token = "" + //Format url if needed if (!url) throw {error: {message: "Website URL is not set"}} @@ -15,6 +18,7 @@ export default async function({login, imports, data, q, account}, {enabled = fal url = `https://${url}` const {protocol, host} = imports.url.parse(url) const result = {url: `${protocol}//${host}`, detailed, scores: [], metrics: {}} + //Load scores from API console.debug(`metrics/compute/${login}/plugins > pagespeed > querying api for ${result.url}`) const categories = ["performance", "accessibility", "best-practices", "seo"] @@ -23,6 +27,7 @@ export default async function({login, imports, data, q, account}, {enabled = fal let categories_required = "" for (const category of categories) categories_required += `&category=${category}` + //Perform audit console.debug(`metrics/compute/${login}/plugins > pagespeed > performing audit ${categories_required}`) const request = await imports.axios.get(`https://www.googleapis.com/pagespeedonline/v5/runPagespeed?url=${url}${categories_required}${token ? `&key=${token}` : ""}`) @@ -31,9 +36,11 @@ export default async function({login, imports, data, q, account}, {enabled = fal result.scores.push({score, title}) console.debug(`metrics/compute/${login}/plugins > pagespeed > performed audit ${category} (status code ${request.status})`) } + //Store screenshot if (screenshot) result.screenshot = request.data.lighthouseResult.audits["final-screenshot"].details.data + //Detailed metrics if (detailed) { console.debug(`metrics/compute/${login}/plugins > pagespeed > performing detailed audit`) diff --git a/source/plugins/pagespeed/metadata.yml b/source/plugins/pagespeed/metadata.yml index 7700fba5..ddf63c7d 100644 --- a/source/plugins/pagespeed/metadata.yml +++ b/source/plugins/pagespeed/metadata.yml @@ -29,6 +29,8 @@ inputs: > ⚠️ While not mandatory, it is strongly advised pass a token to avoid triggering the rate limiter. See [PageSpeed documentation](https://developers.google.com/speed/docs/insights/v5/get-started) for more informations. type: token default: "" + extras: + - metrics.api.google.pagespeed plugin_pagespeed_url: description: | diff --git a/source/plugins/tweets/metadata.yml b/source/plugins/tweets/metadata.yml index dd7d5aa4..8510a392 100644 --- a/source/plugins/tweets/metadata.yml +++ b/source/plugins/tweets/metadata.yml @@ -17,6 +17,8 @@ inputs: Enable tweets plugin type: boolean default: no + extras: + - metrics.api.twitter.tweets plugin_tweets_token: description: |