show server type (pruning or full)
This commit is contained in:
parent
50064d20fd
commit
2385cc3ad8
|
@ -1430,11 +1430,12 @@ class ElectrumWindow(QMainWindow):
|
||||||
|
|
||||||
label = _('Active Servers') if wallet.interface.servers else _('Default Servers')
|
label = _('Active Servers') if wallet.interface.servers else _('Default Servers')
|
||||||
servers_list_widget = QTreeWidget(parent)
|
servers_list_widget = QTreeWidget(parent)
|
||||||
servers_list_widget.setHeaderLabels( [ label ] )
|
servers_list_widget.setHeaderLabels( [ label, _('Type') ] )
|
||||||
servers_list_widget.setMaximumHeight(150)
|
servers_list_widget.setMaximumHeight(150)
|
||||||
for _host, _x in servers_list:
|
servers_list_widget.setColumnWidth(0, 250)
|
||||||
servers_list_widget.addTopLevelItem(QTreeWidgetItem( [ _host ] ))
|
for _host in servers_list.keys():
|
||||||
|
_type = 'pruning' if servers_list[_host].get('pruning') else 'full'
|
||||||
|
servers_list_widget.addTopLevelItem(QTreeWidgetItem( [ _host, _type ] ))
|
||||||
|
|
||||||
def change_server(host, protocol=None):
|
def change_server(host, protocol=None):
|
||||||
pp = plist.get(host,DEFAULT_PORTS)
|
pp = plist.get(host,DEFAULT_PORTS)
|
||||||
|
|
|
@ -101,24 +101,27 @@ class Interface(threading.Thread):
|
||||||
self.server_version = result
|
self.server_version = result
|
||||||
|
|
||||||
elif method == 'server.peers.subscribe':
|
elif method == 'server.peers.subscribe':
|
||||||
servers = []
|
servers = {}
|
||||||
for item in result:
|
for item in result:
|
||||||
s = []
|
s = []
|
||||||
host = item[1]
|
host = item[1]
|
||||||
ports = []
|
ports = []
|
||||||
version = None
|
version = None
|
||||||
|
pruning = False
|
||||||
if len(item) > 2:
|
if len(item) > 2:
|
||||||
for v in item[2]:
|
for v in item[2]:
|
||||||
if re.match("[stgh]\d+", v):
|
if re.match("[stgh]\d+", v):
|
||||||
ports.append((v[0], v[1:]))
|
ports.append((v[0], v[1:]))
|
||||||
if re.match("v(.?)+", v):
|
elif re.match("v(.?)+", v):
|
||||||
version = v[1:]
|
version = v[1:]
|
||||||
|
elif v == 'p':
|
||||||
|
pruning = True
|
||||||
try:
|
try:
|
||||||
is_recent = float(version)>=float(PROTOCOL_VERSION)
|
is_recent = float(version)>=float(PROTOCOL_VERSION)
|
||||||
except:
|
except:
|
||||||
is_recent = False
|
is_recent = False
|
||||||
if ports and is_recent:
|
if ports and is_recent:
|
||||||
servers.append((host, ports))
|
servers[host] = {'ports':ports, 'pruning':pruning}
|
||||||
self.servers = servers
|
self.servers = servers
|
||||||
self.trigger_callback('peers')
|
self.trigger_callback('peers')
|
||||||
|
|
||||||
|
@ -367,7 +370,7 @@ class Interface(threading.Thread):
|
||||||
self.callbacks = {}
|
self.callbacks = {}
|
||||||
self.lock = threading.Lock()
|
self.lock = threading.Lock()
|
||||||
|
|
||||||
self.servers = [] # actual list from IRC
|
self.servers = {} # actual list from IRC
|
||||||
self.rtime = 0
|
self.rtime = 0
|
||||||
self.bytes_received = 0
|
self.bytes_received = 0
|
||||||
|
|
||||||
|
@ -494,15 +497,15 @@ class Interface(threading.Thread):
|
||||||
def get_servers_list(self):
|
def get_servers_list(self):
|
||||||
plist = {}
|
plist = {}
|
||||||
if not self.servers:
|
if not self.servers:
|
||||||
servers_list = []
|
servers_list = {}
|
||||||
for x in DEFAULT_SERVERS:
|
for x in DEFAULT_SERVERS:
|
||||||
h,port,protocol = x.split(':')
|
h,port,protocol = x.split(':')
|
||||||
servers_list.append( (h,[(protocol,port)] ) )
|
servers_list[h] = {'ports':[(protocol,port)]}
|
||||||
else:
|
else:
|
||||||
servers_list = self.servers
|
servers_list = self.servers
|
||||||
|
|
||||||
for item in servers_list:
|
for _host, v in servers_list.items():
|
||||||
_host, pp = item
|
pp = v['ports']
|
||||||
z = {}
|
z = {}
|
||||||
for item2 in pp:
|
for item2 in pp:
|
||||||
_protocol, _port = item2
|
_protocol, _port = item2
|
||||||
|
|
Loading…
Reference in New Issue