Sabnzbd Support

pull/113/head
Francisco Coelho 2 years ago
parent eeac1200e7
commit 9d790894d5

@ -101,5 +101,11 @@
"apps": "Anwendungen",
"clients": "Kunden",
"messages": "Mitteilungen"
},
"sabnzbd": {
"status": "Status",
"speed": "Speed",
"remaining": "Remaining",
"timeleft": "Time left"
}
}

@ -112,5 +112,11 @@
"apps": "Applications",
"clients": "Clients",
"messages": "Messages"
},
"sabnzbd": {
"status": "Status",
"speed": "Speed",
"remaining": "Remaining",
"timeleft": "Time left"
}
}

@ -101,5 +101,11 @@
"apps": "Aplicaciones",
"clients": "Clientela",
"messages": "Mensajes"
},
"sabnzbd": {
"status": "Status",
"speed": "Speed",
"remaining": "Remaining",
"timeleft": "Time left"
}
}

@ -112,5 +112,11 @@
"apps": "Applications",
"clients": "Clients",
"messages": "Messages"
},
"sabnzbd": {
"status": "Status",
"speed": "Speed",
"remaining": "Remaining",
"timeleft": "Time left"
}
}

@ -101,5 +101,11 @@
"apps": "Applications",
"clients": "Clients",
"messages": "Messages"
},
"sabnzbd": {
"status": "Status",
"speed": "Speed",
"remaining": "Remaining",
"timeleft": "Time left"
}
}

@ -101,5 +101,11 @@
"apps": "Applications",
"clients": "Clients",
"messages": "Messages"
},
"sabnzbd": {
"status": "Status",
"speed": "Speed",
"remaining": "Remaining",
"timeleft": "Time left"
}
}

@ -101,5 +101,11 @@
"apps": "Applications",
"clients": "Clients",
"messages": "Messages"
},
"sabnzbd": {
"status": "Status",
"speed": "Speed",
"remaining": "Remaining",
"timeleft": "Time left"
}
}

@ -112,5 +112,11 @@
"apps": "Aplicações",
"clients": "Clientes",
"messages": "Mensagens"
},
"sabnzbd": {
"status": "Status",
"speed": "Speed",
"remaining": "Remaining",
"timeleft": "Time left"
}
}

@ -101,5 +101,11 @@
"apps": "Aplicações",
"clients": "Clientes",
"messages": "Mensagens"
},
"sabnzbd": {
"status": "Status",
"speed": "Speed",
"remaining": "Remaining",
"timeleft": "Time left"
}
}

@ -101,5 +101,11 @@
"apps": "Aplicações",
"clients": "Clientes",
"messages": "Mensagens"
},
"sabnzbd": {
"status": "Status",
"speed": "Speed",
"remaining": "Remaining",
"timeleft": "Time left"
}
}

@ -101,5 +101,11 @@
"apps": "Aplicações",
"clients": "Clientes",
"messages": "Mensagens"
},
"sabnzbd": {
"status": "Status",
"speed": "Speed",
"remaining": "Remaining",
"timeleft": "Time left"
}
}

@ -17,6 +17,7 @@ import Overseerr from "./widgets/service/overseerr";
import Npm from "./widgets/service/npm";
import Tautulli from "./widgets/service/tautulli";
import Gotify from "./widgets/service/gotify";
import Sabnzbd from "./widgets/service/sabnzbd";
const widgetMappings = {
docker: Docker,
@ -36,6 +37,7 @@ const widgetMappings = {
npm: Npm,
tautulli: Tautulli,
gotify: Gotify,
sabnzbd: Sabnzbd
};
export default function Widget({ service }) {

@ -0,0 +1,41 @@
import useSWR from "swr";
import { useTranslation } from "react-i18next";
import Widget from "../widget";
import Block from "../block";
import { formatApiUrl } from "utils/api-helpers";
export default function Sabnzbd({ service }) {
const { t } = useTranslation("common");
const config = service.widget;
const { data: statusData, error: statusError } = useSWR(formatApiUrl(config, "mode=queue"));
if (statusError) {
return <Widget error={t("widget.api_error")} />;
}
if (!statusData) {
return (
<Widget>
<Block label={t("sabnzbd.status")} />
<Block label={t("sabnzbd.speed")} />
<Block label={t("sabnzbd.remaining")} />
<Block label={t("sabnzbd.timeleft")} />
</Widget>
);
}
return (
<Widget>
<Block label={t("sabnzbd.status")} value={statusData?.queue?.status } />
<Block label={t("sabnzbd.speed")} value={statusData?.queue?.speed } />
<Block
label={t("sabnzbd.remaining")}
value={t("common.bytes", { value: statusData?.queue?.mbleft * 1024 * 1024 })}
/>
<Block label={t("sabnzbd.timeleft")} value={statusData?.queue?.timeleft} />
</Widget>
);
}

@ -14,6 +14,7 @@ const serviceProxyHandlers = {
speedtest: genericProxyHandler,
tautulli: genericProxyHandler,
traefik: genericProxyHandler,
sabnzbd: genericProxyHandler,
// uses X-API-Key header auth
gotify: credentialedProxyHandler,
portainer: credentialedProxyHandler,

@ -14,6 +14,7 @@ const formats = {
ombi: `{url}/api/v1/{endpoint}`,
npm: `{url}/api/{endpoint}`,
gotify: `{url}/{endpoint}`,
sabnzbd: `{url}/api?output=json&apikey={key}&{endpoint}`,
};
export function formatApiCall(api, args) {

Loading…
Cancel
Save