diff --git a/public/locales/ca/common.json b/public/locales/ca/common.json
index 04d62e9e..f057e5fe 100644
--- a/public/locales/ca/common.json
+++ b/public/locales/ca/common.json
@@ -136,5 +136,9 @@
"jackett": {
"configured": "Configured",
"errored": "Errored"
+ },
+ "bazarr": {
+ "missingEpisodes": "Missing Episodes",
+ "missingMovies": "Missing Movies"
}
}
diff --git a/public/locales/de/common.json b/public/locales/de/common.json
index 1ab448f3..6f126cd0 100644
--- a/public/locales/de/common.json
+++ b/public/locales/de/common.json
@@ -136,5 +136,9 @@
"jackett": {
"configured": "Configured",
"errored": "Errored"
+ },
+ "bazarr": {
+ "missingEpisodes": "Missing Episodes",
+ "missingMovies": "Missing Movies"
}
}
diff --git a/public/locales/en/common.json b/public/locales/en/common.json
index 67b7ddfb..eb3fd397 100644
--- a/public/locales/en/common.json
+++ b/public/locales/en/common.json
@@ -90,6 +90,10 @@
"queued": "Queued",
"books": "Books"
},
+ "bazarr": {
+ "missingEpisodes": "Missing Episodes",
+ "missingMovies": "Missing Movies"
+ },
"ombi": {
"pending": "Pending",
"approved": "Approved",
diff --git a/public/locales/es/common.json b/public/locales/es/common.json
index 1483dc28..f75d3ae4 100644
--- a/public/locales/es/common.json
+++ b/public/locales/es/common.json
@@ -136,5 +136,9 @@
"jackett": {
"configured": "Configured",
"errored": "Errored"
+ },
+ "bazarr": {
+ "missingEpisodes": "Missing Episodes",
+ "missingMovies": "Missing Movies"
}
}
diff --git a/public/locales/fr/common.json b/public/locales/fr/common.json
index 30920e5c..3b73dcb6 100644
--- a/public/locales/fr/common.json
+++ b/public/locales/fr/common.json
@@ -145,7 +145,11 @@
"seed": "Seed"
},
"jackett": {
- "configured": "Configured",
- "errored": "Errored"
+ "configured": "Configuré",
+ "errored": "En erreur"
+ },
+ "bazarr": {
+ "missingEpisodes": "Missing Episodes",
+ "missingMovies": "Missing Movies"
}
}
diff --git a/public/locales/it/common.json b/public/locales/it/common.json
index 2397f08e..d095036e 100644
--- a/public/locales/it/common.json
+++ b/public/locales/it/common.json
@@ -136,5 +136,9 @@
"jackett": {
"configured": "Configured",
"errored": "Errored"
+ },
+ "bazarr": {
+ "missingEpisodes": "Missing Episodes",
+ "missingMovies": "Missing Movies"
}
}
diff --git a/public/locales/nb-NO/common.json b/public/locales/nb-NO/common.json
index 89752968..527cef59 100644
--- a/public/locales/nb-NO/common.json
+++ b/public/locales/nb-NO/common.json
@@ -136,5 +136,9 @@
"jackett": {
"configured": "Configured",
"errored": "Errored"
+ },
+ "bazarr": {
+ "missingEpisodes": "Missing Episodes",
+ "missingMovies": "Missing Movies"
}
}
diff --git a/public/locales/nl/common.json b/public/locales/nl/common.json
index e8eba27a..238adfa5 100644
--- a/public/locales/nl/common.json
+++ b/public/locales/nl/common.json
@@ -136,5 +136,9 @@
"jackett": {
"configured": "Configured",
"errored": "Errored"
+ },
+ "bazarr": {
+ "missingEpisodes": "Missing Episodes",
+ "missingMovies": "Missing Movies"
}
}
diff --git a/public/locales/pt/common.json b/public/locales/pt/common.json
index 17333904..6ba8ed25 100644
--- a/public/locales/pt/common.json
+++ b/public/locales/pt/common.json
@@ -147,5 +147,9 @@
"jackett": {
"configured": "Configured",
"errored": "Errored"
+ },
+ "bazarr": {
+ "missingEpisodes": "Missing Episodes",
+ "missingMovies": "Missing Movies"
}
}
diff --git a/public/locales/ru/common.json b/public/locales/ru/common.json
index b9e92538..bbf970e6 100644
--- a/public/locales/ru/common.json
+++ b/public/locales/ru/common.json
@@ -136,5 +136,9 @@
"jackett": {
"configured": "Configured",
"errored": "Errored"
+ },
+ "bazarr": {
+ "missingEpisodes": "Missing Episodes",
+ "missingMovies": "Missing Movies"
}
}
diff --git a/public/locales/vi/common.json b/public/locales/vi/common.json
index 435251d8..3a5bc4ab 100644
--- a/public/locales/vi/common.json
+++ b/public/locales/vi/common.json
@@ -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"
}
}
diff --git a/public/locales/zh-CN/common.json b/public/locales/zh-CN/common.json
index a2d1f43d..d49edd7a 100644
--- a/public/locales/zh-CN/common.json
+++ b/public/locales/zh-CN/common.json
@@ -136,5 +136,9 @@
"jackett": {
"configured": "Configured",
"errored": "Errored"
+ },
+ "bazarr": {
+ "missingEpisodes": "Missing Episodes",
+ "missingMovies": "Missing Movies"
}
}
diff --git a/public/locales/zh-Hant/common.json b/public/locales/zh-Hant/common.json
index 4cf40db4..6ca09c42 100644
--- a/public/locales/zh-Hant/common.json
+++ b/public/locales/zh-Hant/common.json
@@ -136,5 +136,9 @@
"jackett": {
"configured": "Configured",
"errored": "Errored"
+ },
+ "bazarr": {
+ "missingEpisodes": "Missing Episodes",
+ "missingMovies": "Missing Movies"
}
}
diff --git a/src/components/services/widget.jsx b/src/components/services/widget.jsx
index cdc5c00c..e9c60a67 100644
--- a/src/components/services/widget.jsx
+++ b/src/components/services/widget.jsx
@@ -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,
diff --git a/src/components/services/widgets/service/bazarr.jsx b/src/components/services/widgets/service/bazarr.jsx
new file mode 100644
index 00000000..030af3f4
--- /dev/null
+++ b/src/components/services/widgets/service/bazarr.jsx
@@ -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 ;
+ }
+
+ if (!episodesData || !moviesData) {
+ return (
+
+
+
+
+ );
+ }
+
+ return (
+
+
+
+
+ );
+}
diff --git a/src/components/widgets/search/search.jsx b/src/components/widgets/search/search.jsx
index 36b56143..c651ba92 100644
--- a/src/components/widgets/search/search.jsx
+++ b/src/components/widgets/search/search.jsx
@@ -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}
/>