From 0a10673066defdd8e068301e68d537f191cffcdd Mon Sep 17 00:00:00 2001 From: cazwacki Date: Tue, 29 Mar 2022 20:50:32 -0400 Subject: [PATCH 1/4] Fix radarr endpoint and queue bug --- dashmachine/platform/radarr.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dashmachine/platform/radarr.py b/dashmachine/platform/radarr.py index 3408c8d6..7706411f 100644 --- a/dashmachine/platform/radarr.py +++ b/dashmachine/platform/radarr.py @@ -61,7 +61,7 @@ class Radarr(object): def __init__(self, method, prefix, host, port, api_key, verify): - self.endpoint = "/api" + self.endpoint = "/api/v3" self.method = method self.prefix = prefix self.host = host @@ -178,7 +178,7 @@ def getQueue(self): self.error = f"{e}" if rawdata != None: - self.queue = len((rawdata)) + self.queue = rawdata["totalRecords"] def getDiskspace(self): verify = ( From 6fb306ada6d32298d4df4872bccb58467cee1ec3 Mon Sep 17 00:00:00 2001 From: cazwacki Date: Tue, 29 Mar 2022 20:52:03 -0400 Subject: [PATCH 2/4] Add endpoint for number of TV shows --- dashmachine/platform/sonarr.py | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/dashmachine/platform/sonarr.py b/dashmachine/platform/sonarr.py index aca722e8..69326e4e 100644 --- a/dashmachine/platform/sonarr.py +++ b/dashmachine/platform/sonarr.py @@ -130,6 +130,31 @@ def getVersion(self): if rawdata != None: self.version = rawdata["version"] + def getShows(self): + verify = ( + False + if str(self.verify).lower() == "false" + or str(self.prefix).lower() == "http://" + else True + ) + headers = {"X-Api-Key": self.api_key} + port = "" if self.port == None else ":" + self.port + + if self.method.upper() == "GET": + try: + rawdata = requests.get( + self.prefix + self.host + port + self.endpoint + "/series", + headers=headers, + verify=verify, + timeout=10, + ).json() + except Exception as e: + rawdata = None + self.error = f"{e}" + + if rawdata != None: + self.shows = len(rawdata) + def getWanted(self): verify = ( False @@ -226,6 +251,7 @@ def refresh(self): if self.error == None: self.error = "" self.getVersion() + self.getShows() self.getWanted() self.getQueue() self.getDiskspace() From b284623d54a0ac75fa92d5394c3190ef003fa488 Mon Sep 17 00:00:00 2001 From: cazwacki Date: Tue, 29 Mar 2022 22:19:56 -0400 Subject: [PATCH 3/4] Complete endpoints for lidarr --- dashmachine/platform/lidarr.py | 81 ++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) diff --git a/dashmachine/platform/lidarr.py b/dashmachine/platform/lidarr.py index 842305d6..a2633cc2 100644 --- a/dashmachine/platform/lidarr.py +++ b/dashmachine/platform/lidarr.py @@ -77,6 +77,9 @@ def __init__(self, method, prefix, host, port, api_key, api_version, verify): self.version = "?" self.wanted_missing = 0 self.wanted_cutoff = 0 + self.artists = 0 + self.albums = 0 + self.tracks = 0 self.queue = 0 self.diskspace = [ {"path": "", "total": "", "free": "", "used": ""}, @@ -134,6 +137,81 @@ def getVersion(self): if rawdata != None: self.version = rawdata["version"] + def getArtists(self): + verify = ( + False + if str(self.verify).lower() == "false" + or str(self.prefix).lower() == "http://" + else True + ) + headers = {"X-Api-Key": self.api_key} + port = "" if self.port == None else ":" + self.port + + if self.method.upper() == "GET": + try: + rawdata = requests.get( + self.prefix + self.host + port + self.endpoint + "/artist", + headers=headers, + verify=verify, + timeout=10, + ).json() + except Exception as e: + rawdata = None + self.error = f"{e}" + + if rawdata != None: + self.artists = len(rawdata) + + def getAlbums(self): + verify = ( + False + if str(self.verify).lower() == "false" + or str(self.prefix).lower() == "http://" + else True + ) + headers = {"X-Api-Key": self.api_key} + port = "" if self.port == None else ":" + self.port + + if self.method.upper() == "GET": + try: + rawdata = requests.get( + self.prefix + self.host + port + self.endpoint + "/album", + headers=headers, + verify=verify, + timeout=10, + ).json() + except Exception as e: + rawdata = None + self.error = f"{e}" + + if rawdata != None: + self.artists = len(rawdata) + + def getTracks(self): + verify = ( + False + if str(self.verify).lower() == "false" + or str(self.prefix).lower() == "http://" + else True + ) + headers = {"X-Api-Key": self.api_key} + port = "" if self.port == None else ":" + self.port + + if self.method.upper() == "GET": + try: + rawdata = requests.get( + self.prefix + self.host + port + self.endpoint + "/track", + headers=headers, + verify=verify, + timeout=10, + ).json() + except Exception as e: + rawdata = None + self.error = f"{e}" + + if rawdata != None: + self.artists = len(rawdata) + def getWanted(self, wType): verify = ( False @@ -239,6 +317,9 @@ def refresh(self): if self.error == None: self.error = "" self.getVersion() + self.getArtists() + self.getAlbums() + self.getTracks() self.getWanted("missing") self.getWanted("cutoff") self.getQueue() From df7687396542f0ca4b2a2fa3d28aa8c85fcfc6df Mon Sep 17 00:00:00 2001 From: cazwacki Date: Wed, 30 Mar 2022 15:28:19 -0400 Subject: [PATCH 4/4] Initialize shows variable --- dashmachine/platform/sonarr.py | 1 + 1 file changed, 1 insertion(+) diff --git a/dashmachine/platform/sonarr.py b/dashmachine/platform/sonarr.py index 69326e4e..8052b5f6 100644 --- a/dashmachine/platform/sonarr.py +++ b/dashmachine/platform/sonarr.py @@ -72,6 +72,7 @@ def __init__(self, method, prefix, host, port, api_key, verify): # Initialize results self.error = None self.version = "?" + self.shows = 0 self.wanted_missing = 0 self.queue = 0 self.diskspace = [