From db1804b4a7d5ddf43e3b863d880833d4c919ea2a Mon Sep 17 00:00:00 2001 From: Jason Fischer Date: Thu, 20 Oct 2022 11:43:24 -0700 Subject: [PATCH 1/4] Fix incorrect wanted value in Radarr widget fixes #397 --- src/widgets/radarr/widget.js | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/widgets/radarr/widget.js b/src/widgets/radarr/widget.js index da3f2a6b9..d57f1b18d 100644 --- a/src/widgets/radarr/widget.js +++ b/src/widgets/radarr/widget.js @@ -1,6 +1,18 @@ import genericProxyHandler from "utils/proxy/handlers/generic"; import { jsonArrayFilter } from "utils/proxy/api-helpers"; +function isAvailable(item) { + // isAvailable means that a digital image exists + // E.g. it's available to stream or on DVD, etc + if (item.isAvailable === false) { + return false; + } + + // sizeOnDisk is how much of that digital image you currently have + // movieFile.size is how large the requested digital image is + return item.sizeOnDisk === item.movieFile?.size; +} + const widget = { api: "{url}/api/v3/{endpoint}?apikey={key}", proxyHandler: genericProxyHandler, @@ -9,8 +21,8 @@ const widget = { movie: { endpoint: "movie", map: (data) => ({ - wanted: jsonArrayFilter(data, (item) => item.isAvailable === false).length, - have: jsonArrayFilter(data, (item) => item.isAvailable === true).length, + wanted: jsonArrayFilter(data, (item) => !isAvailable(item)).length, + have: jsonArrayFilter(data, (item) => isAvailable(item)).length, }), }, "queue/status": { From 1286466669963e1956721404fe3db6f7884580db Mon Sep 17 00:00:00 2001 From: Michael Shamoon <4887959+shamoon@users.noreply.github.com> Date: Thu, 20 Oct 2022 15:02:57 -0700 Subject: [PATCH 2/4] Use Radarr wanted logic See https://github.com/Radarr/Radarr/blob/9b3770a018a2fd9f6a5af71930bbb2a2180c2cce/frontend/src/Store/Actions/movieActions.js#L67 --- src/widgets/radarr/component.jsx | 2 +- src/widgets/radarr/widget.js | 16 ++-------------- 2 files changed, 3 insertions(+), 15 deletions(-) diff --git a/src/widgets/radarr/component.jsx b/src/widgets/radarr/component.jsx index 4b16f75f2..9a95f1b7a 100644 --- a/src/widgets/radarr/component.jsx +++ b/src/widgets/radarr/component.jsx @@ -30,7 +30,7 @@ export default function Component({ service }) { - + ); } diff --git a/src/widgets/radarr/widget.js b/src/widgets/radarr/widget.js index d57f1b18d..7bc492c7e 100644 --- a/src/widgets/radarr/widget.js +++ b/src/widgets/radarr/widget.js @@ -1,18 +1,6 @@ import genericProxyHandler from "utils/proxy/handlers/generic"; import { jsonArrayFilter } from "utils/proxy/api-helpers"; -function isAvailable(item) { - // isAvailable means that a digital image exists - // E.g. it's available to stream or on DVD, etc - if (item.isAvailable === false) { - return false; - } - - // sizeOnDisk is how much of that digital image you currently have - // movieFile.size is how large the requested digital image is - return item.sizeOnDisk === item.movieFile?.size; -} - const widget = { api: "{url}/api/v3/{endpoint}?apikey={key}", proxyHandler: genericProxyHandler, @@ -21,8 +9,8 @@ const widget = { movie: { endpoint: "movie", map: (data) => ({ - wanted: jsonArrayFilter(data, (item) => !isAvailable(item)).length, - have: jsonArrayFilter(data, (item) => isAvailable(item)).length, + wanted: jsonArrayFilter(data, (item) => item.monitored && !item.hasFile && item.isAvailable).length, + all: jsonArrayFilter(data, (item) => item.isAvailable).length, }), }, "queue/status": { From f022315d11645bb624da1765709bbbf9e5a0c255 Mon Sep 17 00:00:00 2001 From: Jason Fischer Date: Thu, 20 Oct 2022 16:33:02 -0700 Subject: [PATCH 3/4] Snap to Radarr's native filter logic --- public/locales/en/common.json | 1 + src/widgets/radarr/component.jsx | 2 ++ src/widgets/radarr/widget.js | 3 ++- 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/public/locales/en/common.json b/public/locales/en/common.json index d53d480c7..695059ca4 100644 --- a/public/locales/en/common.json +++ b/public/locales/en/common.json @@ -100,6 +100,7 @@ }, "radarr": { "wanted": "Wanted", + "missing": "Missing", "queued": "Queued", "movies": "Movies" }, diff --git a/src/widgets/radarr/component.jsx b/src/widgets/radarr/component.jsx index 9a95f1b7a..256092a4c 100644 --- a/src/widgets/radarr/component.jsx +++ b/src/widgets/radarr/component.jsx @@ -20,6 +20,7 @@ export default function Component({ service }) { return ( + @@ -29,6 +30,7 @@ export default function Component({ service }) { return ( + diff --git a/src/widgets/radarr/widget.js b/src/widgets/radarr/widget.js index 7bc492c7e..5a457ea75 100644 --- a/src/widgets/radarr/widget.js +++ b/src/widgets/radarr/widget.js @@ -10,7 +10,8 @@ const widget = { endpoint: "movie", map: (data) => ({ wanted: jsonArrayFilter(data, (item) => item.monitored && !item.hasFile && item.isAvailable).length, - all: jsonArrayFilter(data, (item) => item.isAvailable).length, + have: jsonArrayFilter(data, (item) => item.hasFile).length, + missing: jsonArrayFilter(data, (item) => item.monitored && !item.hasFile).length, }), }, "queue/status": { From cec193b93aabdcc83df749ecadee4846b4fa11cf Mon Sep 17 00:00:00 2001 From: Jason Fischer Date: Thu, 20 Oct 2022 16:37:09 -0700 Subject: [PATCH 4/4] Fix merge conflict --- src/widgets/radarr/component.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/widgets/radarr/component.jsx b/src/widgets/radarr/component.jsx index 256092a4c..fe5a69684 100644 --- a/src/widgets/radarr/component.jsx +++ b/src/widgets/radarr/component.jsx @@ -32,7 +32,7 @@ export default function Component({ service }) { - + ); }