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() 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 = ( diff --git a/dashmachine/platform/sonarr.py b/dashmachine/platform/sonarr.py index aca722e8..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 = [ @@ -130,6 +131,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 +252,7 @@ def refresh(self): if self.error == None: self.error = "" self.getVersion() + self.getShows() self.getWanted() self.getQueue() self.getDiskspace()