Merge pull request #386 from brunoccr/main

Add ChangeDetection.io widget
pull/428/head
Ben Phelps 2 years ago committed by GitHub
commit 0506efb554
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -16,10 +16,10 @@
"status": "Status" "status": "Status"
}, },
"weather": { "weather": {
"current": "Current Location", "current": "Current Location",
"allow": "Click to allow", "allow": "Click to allow",
"updating": "Updating", "updating": "Updating",
"wait": "Please wait" "wait": "Please wait"
}, },
"search": { "search": {
"placeholder": "Search…" "placeholder": "Search…"
@ -60,6 +60,10 @@
"bitrate": "Bitrate", "bitrate": "Bitrate",
"no_active": "No Active Streams" "no_active": "No Active Streams"
}, },
"changedetectionio": {
"totalObserved": "Total Observed",
"diffsDetected": "Diffs Detected"
},
"tautulli": { "tautulli": {
"playing": "Playing", "playing": "Playing",
"transcoding": "Transcoding", "transcoding": "Transcoding",
@ -134,9 +138,9 @@
"available": "Available" "available": "Available"
}, },
"overseerr": { "overseerr": {
"pending": "Pending", "pending": "Pending",
"approved": "Approved", "approved": "Approved",
"available": "Available" "available": "Available"
}, },
"pihole": { "pihole": {
"queries": "Queries", "queries": "Queries",
@ -144,10 +148,10 @@
"gravity": "Gravity" "gravity": "Gravity"
}, },
"adguard": { "adguard": {
"queries": "Queries", "queries": "Queries",
"blocked": "Blocked", "blocked": "Blocked",
"filtered": "Filtered", "filtered": "Filtered",
"latency": "Latency" "latency": "Latency"
}, },
"speedtest": { "speedtest": {
"upload": "Upload", "upload": "Upload",
@ -181,7 +185,7 @@
"clients": "Clients", "clients": "Clients",
"messages": "Messages" "messages": "Messages"
}, },
"prowlarr":{ "prowlarr": {
"enableIndexers": "Indexers", "enableIndexers": "Indexers",
"numberOfGrabs": "Grabs", "numberOfGrabs": "Grabs",
"numberOfQueries": "Queries", "numberOfQueries": "Queries",

@ -0,0 +1,33 @@
import { useTranslation } from "next-i18next";
import Container from "components/services/widget/container";
import Block from "components/services/widget/block";
import useWidgetAPI from "utils/proxy/use-widget-api";
export default function Component({ service }) {
const { t } = useTranslation();
const { widget } = service;
const { data } = useWidgetAPI(widget, "info");
if (!data) {
return <Container error="widget.api_error" />;
}
const totalObserved = Object.keys(data).length;
let diffsDetected = 0;
Object.keys(data).forEach((key) => {
if (data[key].last_checked === data[key].last_changed) {
diffsDetected += 1;
}
});
return (
<Container service={service}>
<Block label="changedetectionio.diffsDetected" value={t("common.number", { value: diffsDetected })} />
<Block label="changedetectionio.totalObserved" value={t("common.number", { value: totalObserved })} />
</Container>
);
}

@ -0,0 +1,15 @@
import credentialedProxyHandler from "utils/proxy/handlers/credentialed";
const widget = {
api: "{url}/api/v1/{endpoint}",
proxyHandler: credentialedProxyHandler,
mappings: {
info: {
method: "GET",
endpoint: "watch",
},
},
};
export default widget;

@ -4,6 +4,7 @@ const components = {
adguard: dynamic(() => import("./adguard/component")), adguard: dynamic(() => import("./adguard/component")),
authentik: dynamic(() => import("./authentik/component")), authentik: dynamic(() => import("./authentik/component")),
bazarr: dynamic(() => import("./bazarr/component")), bazarr: dynamic(() => import("./bazarr/component")),
changedetectionio: dynamic(() => import("./changedetectionio/component")),
coinmarketcap: dynamic(() => import("./coinmarketcap/component")), coinmarketcap: dynamic(() => import("./coinmarketcap/component")),
docker: dynamic(() => import("./docker/component")), docker: dynamic(() => import("./docker/component")),
emby: dynamic(() => import("./emby/component")), emby: dynamic(() => import("./emby/component")),

@ -1,6 +1,7 @@
import adguard from "./adguard/widget"; import adguard from "./adguard/widget";
import authentik from "./authentik/widget"; import authentik from "./authentik/widget";
import bazarr from "./bazarr/widget"; import bazarr from "./bazarr/widget";
import changedetectionio from "./changedetectionio/widget";
import coinmarketcap from "./coinmarketcap/widget"; import coinmarketcap from "./coinmarketcap/widget";
import emby from "./emby/widget"; import emby from "./emby/widget";
import gotify from "./gotify/widget"; import gotify from "./gotify/widget";
@ -34,6 +35,7 @@ const widgets = {
adguard, adguard,
authentik, authentik,
bazarr, bazarr,
changedetectionio,
coinmarketcap, coinmarketcap,
emby, emby,
gotify, gotify,
@ -63,7 +65,7 @@ const widgets = {
traefik, traefik,
transmission, transmission,
unifi, unifi,
unifi_console: unifi unifi_console: unifi,
}; };
export default widgets; export default widgets;

Loading…
Cancel
Save