feat(app/web): improve permissions

This commit is contained in:
lowlighter
2022-07-21 13:42:58 -04:00
parent 1ce01ff74c
commit 800dd4365f
7 changed files with 18 additions and 2 deletions

View File

@@ -20,6 +20,7 @@ inputs:
default: no default: no
extras: extras:
- metrics.npm.optional.chartist - metrics.npm.optional.chartist
- metrics.api.yahoo.finance
plugin_stock_token: plugin_stock_token:
description: | description: |

View File

@@ -79,5 +79,5 @@ inputs:
"#️⃣ Others": ["*"] "#️⃣ Others": ["*"]
} }
extras: extras:
- metrics.runner.tempdir - metrics.run.tempdir
- metrics.runner.git - metrics.run.git

View File

@@ -52,6 +52,8 @@ export default async function({login, imports, data, q, account}, {enabled = fal
token = _token token = _token
console.debug(`metrics/compute/${login}/plugins > music > overriden token value through user inputs as sandbox mode is enabled`) 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 //Auto-guess parameters
if (!mode) { if (!mode) {

View File

@@ -51,6 +51,8 @@ inputs:
- `youtube`: "cookie" - `youtube`: "cookie"
type: token type: token
default: "" default: ""
extras:
- metrics.api.music.any
plugin_music_user: plugin_music_user:
description: | description: |

View File

@@ -8,6 +8,9 @@ export default async function({login, imports, data, q, account}, {enabled = fal
//Load inputs //Load inputs
let {detailed, screenshot, url, pwa} = imports.metadata.plugins.pagespeed.inputs({data, account, q}) 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 //Format url if needed
if (!url) if (!url)
throw {error: {message: "Website URL is not set"}} 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}` url = `https://${url}`
const {protocol, host} = imports.url.parse(url) const {protocol, host} = imports.url.parse(url)
const result = {url: `${protocol}//${host}`, detailed, scores: [], metrics: {}} const result = {url: `${protocol}//${host}`, detailed, scores: [], metrics: {}}
//Load scores from API //Load scores from API
console.debug(`metrics/compute/${login}/plugins > pagespeed > querying api for ${result.url}`) console.debug(`metrics/compute/${login}/plugins > pagespeed > querying api for ${result.url}`)
const categories = ["performance", "accessibility", "best-practices", "seo"] 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 = "" let categories_required = ""
for (const category of categories) for (const category of categories)
categories_required += `&category=${category}` categories_required += `&category=${category}`
//Perform audit //Perform audit
console.debug(`metrics/compute/${login}/plugins > pagespeed > performing audit ${categories_required}`) 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}` : ""}`) 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}) result.scores.push({score, title})
console.debug(`metrics/compute/${login}/plugins > pagespeed > performed audit ${category} (status code ${request.status})`) console.debug(`metrics/compute/${login}/plugins > pagespeed > performed audit ${category} (status code ${request.status})`)
} }
//Store screenshot //Store screenshot
if (screenshot) if (screenshot)
result.screenshot = request.data.lighthouseResult.audits["final-screenshot"].details.data result.screenshot = request.data.lighthouseResult.audits["final-screenshot"].details.data
//Detailed metrics //Detailed metrics
if (detailed) { if (detailed) {
console.debug(`metrics/compute/${login}/plugins > pagespeed > performing detailed audit`) console.debug(`metrics/compute/${login}/plugins > pagespeed > performing detailed audit`)

View File

@@ -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. > ⚠️ 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 type: token
default: "" default: ""
extras:
- metrics.api.google.pagespeed
plugin_pagespeed_url: plugin_pagespeed_url:
description: | description: |

View File

@@ -17,6 +17,8 @@ inputs:
Enable tweets plugin Enable tweets plugin
type: boolean type: boolean
default: no default: no
extras:
- metrics.api.twitter.tweets
plugin_tweets_token: plugin_tweets_token:
description: | description: |