commit
ace1610dfc
5 changed files with 44 additions and 0 deletions
|
@ -85,6 +85,10 @@
|
||||||
"queued": "Queued",
|
"queued": "Queued",
|
||||||
"books": "Books"
|
"books": "Books"
|
||||||
},
|
},
|
||||||
|
"bazarr": {
|
||||||
|
"missingEpisodes": "Missing Episodes",
|
||||||
|
"missingMovies": "Missing Movies"
|
||||||
|
},
|
||||||
"ombi": {
|
"ombi": {
|
||||||
"pending": "Pending",
|
"pending": "Pending",
|
||||||
"approved": "Approved",
|
"approved": "Approved",
|
||||||
|
|
|
@ -3,6 +3,7 @@ import { useTranslation } from "react-i18next";
|
||||||
import Sonarr from "./widgets/service/sonarr";
|
import Sonarr from "./widgets/service/sonarr";
|
||||||
import Radarr from "./widgets/service/radarr";
|
import Radarr from "./widgets/service/radarr";
|
||||||
import Readarr from "./widgets/service/readarr";
|
import Readarr from "./widgets/service/readarr";
|
||||||
|
import Bazarr from "./widgets/service/bazarr";
|
||||||
import Ombi from "./widgets/service/ombi";
|
import Ombi from "./widgets/service/ombi";
|
||||||
import Portainer from "./widgets/service/portainer";
|
import Portainer from "./widgets/service/portainer";
|
||||||
import Emby from "./widgets/service/emby";
|
import Emby from "./widgets/service/emby";
|
||||||
|
@ -29,6 +30,7 @@ const widgetMappings = {
|
||||||
sonarr: Sonarr,
|
sonarr: Sonarr,
|
||||||
radarr: Radarr,
|
radarr: Radarr,
|
||||||
readarr: Readarr,
|
readarr: Readarr,
|
||||||
|
bazarr: Bazarr,
|
||||||
ombi: Ombi,
|
ombi: Ombi,
|
||||||
portainer: Portainer,
|
portainer: Portainer,
|
||||||
emby: Emby,
|
emby: Emby,
|
||||||
|
|
36
src/components/services/widgets/service/bazarr.jsx
Normal file
36
src/components/services/widgets/service/bazarr.jsx
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
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 Bazarr({ service }) {
|
||||||
|
const { t } = useTranslation();
|
||||||
|
|
||||||
|
const config = service.widget;
|
||||||
|
|
||||||
|
const { data: episodesData, error: episodesError } = useSWR(formatApiUrl(config, "episodes"));
|
||||||
|
const { data: moviesData, error: moviesError } = useSWR(formatApiUrl(config, "movies"));
|
||||||
|
|
||||||
|
if (episodesError || moviesError) {
|
||||||
|
return <Widget error={t("widget.api_error")} />;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!episodesData || !moviesData) {
|
||||||
|
return (
|
||||||
|
<Widget>
|
||||||
|
<Block label={t("bazarr.missingEpisodes")} />
|
||||||
|
<Block label={t("bazarr.missingMovies")} />
|
||||||
|
</Widget>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
return (
|
||||||
|
<Widget>
|
||||||
|
<Block label={t("bazarr.missingEpisodes")} value={episodesData.total} />
|
||||||
|
<Block label={t("bazarr.missingMovies")} value={moviesData.total} />
|
||||||
|
</Widget>
|
||||||
|
);
|
||||||
|
}
|
|
@ -13,6 +13,7 @@ const serviceProxyHandlers = {
|
||||||
radarr: genericProxyHandler,
|
radarr: genericProxyHandler,
|
||||||
sonarr: genericProxyHandler,
|
sonarr: genericProxyHandler,
|
||||||
readarr: genericProxyHandler,
|
readarr: genericProxyHandler,
|
||||||
|
bazarr: genericProxyHandler,
|
||||||
speedtest: genericProxyHandler,
|
speedtest: genericProxyHandler,
|
||||||
tautulli: genericProxyHandler,
|
tautulli: genericProxyHandler,
|
||||||
traefik: genericProxyHandler,
|
traefik: genericProxyHandler,
|
||||||
|
|
|
@ -15,6 +15,7 @@ const formats = {
|
||||||
ombi: `{url}/api/v1/{endpoint}`,
|
ombi: `{url}/api/v1/{endpoint}`,
|
||||||
npm: `{url}/api/{endpoint}`,
|
npm: `{url}/api/{endpoint}`,
|
||||||
readarr: `{url}/api/v1/{endpoint}?apikey={key}`,
|
readarr: `{url}/api/v1/{endpoint}?apikey={key}`,
|
||||||
|
bazarr: `{url}/api/{endpoint}/wanted?apikey={key}`,
|
||||||
sabnzbd: `{url}/api/?apikey={key}&output=json&mode={endpoint}`,
|
sabnzbd: `{url}/api/?apikey={key}&output=json&mode={endpoint}`,
|
||||||
coinmarketcap: `https://pro-api.coinmarketcap.com/{endpoint}`,
|
coinmarketcap: `https://pro-api.coinmarketcap.com/{endpoint}`,
|
||||||
gotify: `{url}/{endpoint}`,
|
gotify: `{url}/{endpoint}`,
|
||||||
|
|
Loading…
Add table
Reference in a new issue