Feature: DeveLanCacheUI service widget (#3854)

---------

Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>
This commit is contained in:
Devedse 2024-08-16 01:28:53 +02:00 committed by GitHub
parent ca1577166d
commit 0d25f5789b
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
7 changed files with 75 additions and 0 deletions

View file

@ -19,6 +19,7 @@ const components = {
iframe: dynamic(() => import("./iframe/component")),
customapi: dynamic(() => import("./customapi/component")),
deluge: dynamic(() => import("./deluge/component")),
develancacheui: dynamic(() => import("./develancacheui/component")),
diskstation: dynamic(() => import("./diskstation/component")),
downloadstation: dynamic(() => import("./downloadstation/component")),
docker: dynamic(() => import("./docker/component")),

View file

@ -0,0 +1,39 @@
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: downloadStatsData, error: downloadStatsError } = useWidgetAPI(widget, "stats");
if (downloadStatsError) {
return <Container service={service} error={downloadStatsError} />;
}
if (!downloadStatsData) {
return (
<Container service={service}>
<Block label="develancacheui.cachehitbytes" />
<Block label="develancacheui.cachemissbytes" />
</Container>
);
}
return (
<Container service={service}>
<Block
label="develancacheui.cachehitbytes"
value={t("common.bytes", { value: downloadStatsData.totalCacheHitBytes })}
/>
<Block
label="develancacheui.cachemissbytes"
value={t("common.bytes", { value: downloadStatsData.totalCacheMissBytes })}
/>
</Container>
);
}

View file

@ -0,0 +1,14 @@
import genericProxyHandler from "utils/proxy/handlers/generic";
const widget = {
api: "{url}/{endpoint}",
proxyHandler: genericProxyHandler,
mappings: {
stats: {
endpoint: "DownloadStats/GetTotalDownloadStats",
},
},
};
export default widget;

View file

@ -15,6 +15,7 @@ import coinmarketcap from "./coinmarketcap/widget";
import crowdsec from "./crowdsec/widget";
import customapi from "./customapi/widget";
import deluge from "./deluge/widget";
import develancacheui from "./develancacheui/widget";
import diskstation from "./diskstation/widget";
import downloadstation from "./downloadstation/widget";
import emby from "./emby/widget";
@ -135,6 +136,7 @@ const widgets = {
crowdsec,
customapi,
deluge,
develancacheui,
diskstation,
downloadstation,
emby,