From 2a2a106e62aae716e0796a92b1b657df2c96962d Mon Sep 17 00:00:00 2001 From: Trevor Date: Wed, 25 Oct 2017 04:37:08 -0500 Subject: [PATCH] Fix Sonarr and Radarr divide by zero (#10101) * Fix Sonarr and Radarr divide by zero * Fixes for hound * Clean up Radarr diskspace --- homeassistant/components/sensor/radarr.py | 12 +++++------- homeassistant/components/sensor/sonarr.py | 4 +++- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/homeassistant/components/sensor/radarr.py b/homeassistant/components/sensor/radarr.py index 33a09a51aef..3b2c818a7b3 100644 --- a/homeassistant/components/sensor/radarr.py +++ b/homeassistant/components/sensor/radarr.py @@ -133,14 +133,12 @@ class RadarrSensor(Entity): attributes[command['name']] = command['state'] elif self.type == 'diskspace': for data in self.data: + free_space = to_unit(data['freeSpace'], self._unit) + total_space = to_unit(data['totalSpace'], self._unit) + percentage_used = (0 if total_space == 0 + else free_space / total_space * 100) attributes[data['path']] = '{:.2f}/{:.2f}{} ({:.2f}%)'.format( - to_unit(data['freeSpace'], self._unit), - to_unit(data['totalSpace'], self._unit), - self._unit, ( - to_unit(data['freeSpace'], self._unit) / - to_unit(data['totalSpace'], self._unit) * 100 - ) - ) + free_space, total_space, self._unit, percentage_used) elif self.type == 'movies': for movie in self.data: attributes[to_key(movie)] = movie['downloaded'] diff --git a/homeassistant/components/sensor/sonarr.py b/homeassistant/components/sensor/sonarr.py index 4be5582b8c4..42460a83d6f 100644 --- a/homeassistant/components/sensor/sonarr.py +++ b/homeassistant/components/sensor/sonarr.py @@ -132,10 +132,12 @@ class SonarrSensor(Entity): show['seasonNumber'], show['episodeNumber']) elif self.type == 'queue': for show in self.data: + remaining = (1 if show['size'] == 0 + else show['sizeleft']/show['size']) attributes[show['series']['title'] + ' S{:02d}E{:02d}'.format( show['episode']['seasonNumber'], show['episode']['episodeNumber'] - )] = '{:.2f}%'.format(100*(1-(show['sizeleft']/show['size']))) + )] = '{:.2f}%'.format(100*(1-(remaining))) elif self.type == 'wanted': for show in self.data: attributes[show['series']['title'] + ' S{:02d}E{:02d}'.format(