diff --git a/monitor/monitor.py b/monitor/monitor.py index eb9dbe0..fcd354f 100755 --- a/monitor/monitor.py +++ b/monitor/monitor.py @@ -1,17 +1,14 @@ #!/usr/bin/env python3 """ - -This is a quick hack and adopted plugin from the summary.py plugin (orinigally written by Rusty Russell - -This one is adapted by Rene Pickhardt and aimed to help you identify inactive channels quickly - +This is a quick hack and adapted plugin from the summary.py plugin (orinigally written by Rusty Russell +This one is adapted by Rene Pickhardt and aims to help you identify inactive channels quickly """ from lightning import Plugin, Millisatoshi import lightning import json -plugin = Plugin(autopatch=True) +plugin = Plugin() # __version__ was introduced in 0.0.7.1, with utf8 passthrough support. try: @@ -23,15 +20,15 @@ except Exception: @plugin.method("monitor") def monitor(plugin): """Monitors channels of this node.""" - reply = {} reply['num_connected'] = 0 reply['num_channels'] = 0 + reply['format-hint'] = 'simple' peers = plugin.rpc.listpeers() info = plugin.rpc.getinfo() nid = info["id"] - chans={} - states={} + chans = {} + states = {} for p in peers['peers']: for c in p['channels']: if p['connected']: @@ -39,35 +36,29 @@ def monitor(plugin): reply['num_channels'] += 1 state = c['state'] if state in states: - states[state]+=1 + states[state] += 1 else: - states[state]=1 - connected = "connected" - if p['connected'] != True: - connected = "disconnected" + states[state] = 1 + connected = 'connected' if p['connected'] else 'disconnected' funding = c['funding_allocation_msat'] our_funding = funding[nid] fees = "our fees" if int(our_funding) == 0: fees = "their fees" - - total = float(c['msatoshi_total']) ours = float(c['our_channel_reserve_satoshis']) + float(c['spendable_msatoshi']) - our_fraction = "{:4.2f}% owned by us".format(ours*100/total) - tmp = "\t".join([p['id'], connected, fees, our_fraction, c['short_channel_id']]) - + our_fraction = '{:4.2f}% owned by us'.format(ours * 100 / total) + tmp = "\t".join([p['id'], connected, fees, our_fraction, + c['short_channel_id'] if 'short_channel_id' in c + else 'unknown scid']) if state in chans: chans[state].append(tmp) else: chans[state] = [tmp] - - serialized_states = [] + reply['states'] = [] for key, value in states.items(): - serialized_states.append(key + ": " + str(value)) - reply['states']=serialized_states - reply['channels'] = chans#json.dumps(chans) - reply = json.dumps(reply, indent=4) + reply['states'].append(key + ": " + str(value)) + reply['channels'] = json.dumps(chans) return reply