From 3615e60e5b91903f374f20e77a82e1918cd40468 Mon Sep 17 00:00:00 2001 From: Tobias Witek Date: Thu, 11 Jan 2018 20:29:45 +0100 Subject: [PATCH] [modules/getcrypto] Deal with kraken service downtime see #222 --- bumblebee/engine.py | 8 +++++++- bumblebee/modules/getcrypto.py | 2 ++ bumblebee/output.py | 2 +- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/bumblebee/engine.py b/bumblebee/engine.py index df5b0da..9f31e06 100644 --- a/bumblebee/engine.py +++ b/bumblebee/engine.py @@ -40,6 +40,7 @@ class Module(object): self.id = self.name self._next = int(time.time()) self._default_interval = 0 + self.success = True self._configFile = None for cfg in [os.path.expanduser("~/.bumblebee-status.conf"), os.path.expanduser("~/.config/bumblebee-status.conf")]: @@ -80,7 +81,12 @@ class Module(object): def update_wrapper(self, widgets): if self._next > int(time.time()): return - self.update(self._widgets) + try: + self.update(self._widgets) + self.success = True + except Exception as e: + log.error("failed to update module {}: {}".format(self.name, str(e))) + self.success = False self._next += int(self.parameter("interval", self._default_interval))*60 def interval(self, intvl): diff --git a/bumblebee/modules/getcrypto.py b/bumblebee/modules/getcrypto.py index 502e100..d75b373 100644 --- a/bumblebee/modules/getcrypto.py +++ b/bumblebee/modules/getcrypto.py @@ -34,6 +34,8 @@ def getfromkrak(coin, currency): krakenget = requests.get('https://api.kraken.com/0/public/Ticker?pair='+epair).json() except (RequestException, Exception): return "No connection" + if not 'result' in krakenget: + return "No data" kethusdask = float(krakenget['result'][tickname]['a'][0]) kethusdbid = float(krakenget['result'][tickname]['b'][0]) return coin+": "+str((kethusdask+kethusdbid)/2)[0:6] diff --git a/bumblebee/output.py b/bumblebee/output.py index 99dadc3..af6fcc4 100644 --- a/bumblebee/output.py +++ b/bumblebee/output.py @@ -117,7 +117,7 @@ class I3BarOutput(object): }) width = self._theme.minwidth(widget) self._widgets.append({ - u"full_text": full_text, + u"full_text": full_text "color": self._theme.fg(widget), "background": self._theme.bg(widget), "separator_block_width": self._theme.separator_block_width(widget),