Merge branch 'main' into add-lidarr

pull/163/head
Jason Fischer 2 years ago
commit 7e99b3e505
No known key found for this signature in database

@ -136,5 +136,9 @@
"jackett": {
"configured": "Configured",
"errored": "Errored"
},
"bazarr": {
"missingEpisodes": "Missing Episodes",
"missingMovies": "Missing Movies"
}
}

@ -136,5 +136,9 @@
"jackett": {
"configured": "Configured",
"errored": "Errored"
},
"bazarr": {
"missingEpisodes": "Missing Episodes",
"missingMovies": "Missing Movies"
}
}

@ -90,6 +90,10 @@
"queued": "Queued",
"books": "Books"
},
"bazarr": {
"missingEpisodes": "Missing Episodes",
"missingMovies": "Missing Movies"
},
"ombi": {
"pending": "Pending",
"approved": "Approved",

@ -136,5 +136,9 @@
"jackett": {
"configured": "Configured",
"errored": "Errored"
},
"bazarr": {
"missingEpisodes": "Missing Episodes",
"missingMovies": "Missing Movies"
}
}

@ -145,7 +145,11 @@
"seed": "Seed"
},
"jackett": {
"configured": "Configured",
"errored": "Errored"
"configured": "Configuré",
"errored": "En erreur"
},
"bazarr": {
"missingEpisodes": "Missing Episodes",
"missingMovies": "Missing Movies"
}
}

@ -136,5 +136,9 @@
"jackett": {
"configured": "Configured",
"errored": "Errored"
},
"bazarr": {
"missingEpisodes": "Missing Episodes",
"missingMovies": "Missing Movies"
}
}

@ -136,5 +136,9 @@
"jackett": {
"configured": "Configured",
"errored": "Errored"
},
"bazarr": {
"missingEpisodes": "Missing Episodes",
"missingMovies": "Missing Movies"
}
}

@ -136,5 +136,9 @@
"jackett": {
"configured": "Configured",
"errored": "Errored"
},
"bazarr": {
"missingEpisodes": "Missing Episodes",
"missingMovies": "Missing Movies"
}
}

@ -147,5 +147,9 @@
"jackett": {
"configured": "Configured",
"errored": "Errored"
},
"bazarr": {
"missingEpisodes": "Missing Episodes",
"missingMovies": "Missing Movies"
}
}

@ -136,5 +136,9 @@
"jackett": {
"configured": "Configured",
"errored": "Errored"
},
"bazarr": {
"missingEpisodes": "Missing Episodes",
"missingMovies": "Missing Movies"
}
}

@ -45,16 +45,16 @@
"radarr": {
"wanted": "Wanted",
"queued": "Queued",
"movies": "Movies"
"movies": "Phim"
},
"readarr": {
"wanted": "Wanted",
"queued": "Queued",
"books": "Books"
"wanted": "Đang tìm",
"queued": "Đang chờ",
"books": "Sách"
},
"ombi": {
"pending": "Pending",
"approved": "Approved",
"pending": "Đang xử lý",
"approved": "Đã duyệt",
"available": "Available"
},
"jellyseerr": {
@ -88,25 +88,25 @@
"total": "Total"
},
"weather": {
"current": "Current Location",
"allow": "Click to allow",
"updating": "Updating",
"wait": "Please wait"
"current": "Vị trí hiện tại",
"allow": "Bấm để đồng ý",
"updating": "Đang cập nhật",
"wait": "Vui lòng chờ"
},
"overseerr": {
"pending": "Pending",
"approved": "Approved",
"approved": "Đã duyệt",
"available": "Available"
},
"sabnzbd": {
"rate": "Rate",
"queue": "Queue",
"timeleft": "Time Left"
"queue": "Hàng chờ",
"timeleft": "Thời gian còn lại"
},
"nzbget": {
"rate": "Rate",
"remaining": "Remaining",
"downloaded": "Downloaded"
"downloaded": "Đã tải"
},
"coinmarketcap": {
"configure": "Configure one or more crypto currencies to track",
@ -136,5 +136,9 @@
"jackett": {
"configured": "Configured",
"errored": "Errored"
},
"bazarr": {
"missingEpisodes": "Missing Episodes",
"missingMovies": "Missing Movies"
}
}

@ -136,5 +136,9 @@
"jackett": {
"configured": "Configured",
"errored": "Errored"
},
"bazarr": {
"missingEpisodes": "Missing Episodes",
"missingMovies": "Missing Movies"
}
}

@ -136,5 +136,9 @@
"jackett": {
"configured": "Configured",
"errored": "Errored"
},
"bazarr": {
"missingEpisodes": "Missing Episodes",
"missingMovies": "Missing Movies"
}
}

@ -4,6 +4,7 @@ import Sonarr from "./widgets/service/sonarr";
import Radarr from "./widgets/service/radarr";
import Lidarr from "./widgets/service/lidarr";
import Readarr from "./widgets/service/readarr";
import Bazarr from "./widgets/service/bazarr";
import Ombi from "./widgets/service/ombi";
import Portainer from "./widgets/service/portainer";
import Emby from "./widgets/service/emby";
@ -31,6 +32,7 @@ const widgetMappings = {
radarr: Radarr,
lidarr: Lidarr,
readarr: Readarr,
bazarr: Bazarr,
ombi: Ombi,
portainer: Portainer,
emby: Emby,

@ -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>
);
}

@ -69,6 +69,8 @@ export default function Search({ options }) {
autoCapitalize="off"
autoCorrect="off"
autoComplete="off"
// eslint-disable-next-line jsx-a11y/no-autofocus
autoFocus={options.focus}
/>
<button
type="submit"

@ -14,6 +14,7 @@ const serviceProxyHandlers = {
sonarr: genericProxyHandler,
lidarr: genericProxyHandler,
readarr: genericProxyHandler,
bazarr: genericProxyHandler,
speedtest: genericProxyHandler,
tautulli: genericProxyHandler,
traefik: genericProxyHandler,

@ -2,6 +2,8 @@
import useSWR from "swr";
import Head from "next/head";
import dynamic from "next/dynamic";
import { useTranslation } from "react-i18next";
import { useEffect } from "react";
import ServicesGroup from "components/services/group";
import BookmarksGroup from "components/bookmarks/group";
@ -30,7 +32,10 @@ export async function getStaticProps() {
},
};
}
export default function Home({ settings }) {
const { i18n } = useTranslation();
const { data: services } = useSWR("/api/services");
const { data: bookmarks } = useSWR("/api/bookmarks");
const { data: widgets } = useSWR("/api/widgets");
@ -41,6 +46,12 @@ export default function Home({ settings }) {
wrappedStyle.backgroundSize = "cover";
}
useEffect(() => {
if (settings.language) {
i18n.changeLanguage(settings.language);
}
}, [i18n, settings.language]);
return (
<ColorProvider>
<ThemeProvider>

@ -16,6 +16,7 @@ const formats = {
npm: `{url}/api/{endpoint}`,
lidarr: `{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}`,
coinmarketcap: `https://pro-api.coinmarketcap.com/{endpoint}`,
gotify: `{url}/{endpoint}`,

Loading…
Cancel
Save