mirror of
https://github.com/aljazceru/plugins.git
synced 2025-12-19 14:14:20 +01:00
monitor: use human readable outputs
And some drive-by cleanups
This commit is contained in:
committed by
Christian Decker
parent
3532288db1
commit
2448e26618
@@ -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
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user