From fe888bd27b922060c9aa75acc217c0b9ce8e08c0 Mon Sep 17 00:00:00 2001 From: Daniel Edgecumbe Date: Wed, 27 Sep 2017 20:42:19 +0100 Subject: [PATCH] [monitor] Add uptime --- main.py | 3 +++ monitor.py | 13 +++++++++++++ 2 files changed, 16 insertions(+) diff --git a/main.py b/main.py index 9eb23f2..6c3c846 100644 --- a/main.py +++ b/main.py @@ -161,6 +161,9 @@ def create_tasks(client, window): monitorview.on_estimatesmartfee, 15.0, params=[5]), poll_client(client, "estimatesmartfee", monitorview.on_estimatesmartfee, 15.0, params=[10]), + # This is a bit lazy because we could just do it once and calculate it. + poll_client(client, "uptime", + monitorview.on_uptime, 5.0, params=[10]), tick(on_tick, 1.0), handle_hotkeys(window, footerview.on_mode_change, on_window_resize) ] diff --git a/monitor.py b/monitor.py index a50a8de..542e15c 100644 --- a/monitor.py +++ b/monitor.py @@ -27,6 +27,7 @@ class MonitorView(object): self._mempoolinfo = None # raw mempoolinfo self._estimatesmartfee = {} # blocks -> feerate/kB self._dt = None + self._uptime = None # raw uptime from bitcoind (seconds) self._window_size = MIN_WINDOW_SIZE @@ -128,6 +129,9 @@ class MonitorView(object): ) self._pad.addstr(11, 1, "estimatesmartfee: {}".format(estimates)) + if self._uptime: + self._pad.addstr(13, 1, "uptime: {}".format(datetime.timedelta(seconds=self._uptime))) + self._draw_pad_to_screen() def _draw_pad_to_screen(self): @@ -193,6 +197,15 @@ class MonitorView(object): if self._visible: await self.draw() + async def on_uptime(self, key, obj): + try: + self._uptime = obj["result"] + except KeyError: + return + + if self._visible: + await self.draw() + async def on_mode_change(self, newmode): if newmode != "monitor": self._visible = False