From 340424391f0e7e171b362ee82ac8ec8b582b62b0 Mon Sep 17 00:00:00 2001 From: Ameer Abdallah Date: Mon, 22 Apr 2024 21:20:08 -0700 Subject: [PATCH] Enhancement: add bitrate precision config option for speedtest-tracker (#3354) --------- Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com> --- docs/widgets/services/speedtest-tracker.md | 1 + src/utils/config/service-helpers.js | 8 ++++++++ src/widgets/speedtest/component.jsx | 18 ++++++++++++++++-- 3 files changed, 25 insertions(+), 2 deletions(-) diff --git a/docs/widgets/services/speedtest-tracker.md b/docs/widgets/services/speedtest-tracker.md index 7e2509675..99b5b9933 100644 --- a/docs/widgets/services/speedtest-tracker.md +++ b/docs/widgets/services/speedtest-tracker.md @@ -16,4 +16,5 @@ Allowed fields: `["download", "upload", "ping"]`. widget: type: speedtest url: http://speedtest.host.or.ip + bitratePrecision: 3 # optional, default is 0 ``` diff --git a/src/utils/config/service-helpers.js b/src/utils/config/service-helpers.js index fc4d57eb9..aaee636c9 100644 --- a/src/utils/config/service-helpers.js +++ b/src/utils/config/service-helpers.js @@ -450,6 +450,9 @@ export function cleanServiceGroups(groups) { // proxmox node, + // speedtest + bitratePrecision, + // sonarr, radarr enableQueue, @@ -588,6 +591,11 @@ export function cleanServiceGroups(groups) { if (type === "healthchecks") { if (uuid !== undefined) cleanedService.widget.uuid = uuid; } + if (type === "speedtest") { + if (bitratePrecision !== undefined) { + cleanedService.widget.bitratePrecision = parseInt(bitratePrecision, 10); + } + } } return cleanedService; diff --git a/src/widgets/speedtest/component.jsx b/src/widgets/speedtest/component.jsx index 0102025ba..9826f7767 100644 --- a/src/widgets/speedtest/component.jsx +++ b/src/widgets/speedtest/component.jsx @@ -11,6 +11,11 @@ export default function Component({ service }) { const { data: speedtestData, error: speedtestError } = useWidgetAPI(widget, "speedtest/latest"); + const bitratePrecision = + !widget?.bitratePrecision || Number.isNaN(widget?.bitratePrecision) || widget?.bitratePrecision < 0 + ? 0 + : widget.bitratePrecision; + if (speedtestError) { return ; } @@ -29,9 +34,18 @@ export default function Component({ service }) { + -