Merge branch '1.9' of git://github.com/spesmilo/electrum into 1.9
authorthomasv <thomasv@gitorious>
Mon, 2 Sep 2013 09:16:35 +0000 (11:16 +0200)
committerthomasv <thomasv@gitorious>
Mon, 2 Sep 2013 09:16:35 +0000 (11:16 +0200)
lib/interface.py
scripts/peers

index a915de5..48aa295 100644 (file)
@@ -93,6 +93,38 @@ class Interface(threading.Thread):
         self.pending_transactions_for_notifications= []
 
 
+    def parse_servers(self, result):
+        """ parse servers list into dict format"""
+
+        servers = {}
+        for item in result:
+            host = item[1]
+            out = {}
+            version = None
+            pruning_level = '-'
+            if len(item) > 2:
+                for v in item[2]:
+                    if re.match("[stgh]\d*", v):
+                        protocol, port = v[0], v[1:]
+                        if port == '': port = DEFAULT_PORTS[protocol]
+                        out[protocol] = port
+                    elif re.match("v(.?)+", v):
+                        version = v[1:]
+                    elif re.match("p\d*", v):
+                        pruning_level = v[1:]
+                    if pruning_level == '': pruning_level = '0'
+            try: 
+                is_recent = float(version)>=float(PROTOCOL_VERSION)
+            except:
+                is_recent = False
+
+            if out and is_recent:
+                out['pruning'] = pruning_level
+                servers[host] = out
+
+        return servers
+
+
     def queue_json_response(self, c):
 
         # uncomment to debug
@@ -124,35 +156,7 @@ class Interface(threading.Thread):
                 self.trigger_callback('banner')
 
             elif method == 'server.peers.subscribe':
-                servers = {}
-                for item in result:
-
-                    host = item[1]
-                    out = {}
-
-                    version = None
-                    pruning_level = '-'
-                    if len(item) > 2:
-                        for v in item[2]:
-                            if re.match("[stgh]\d*", v):
-                                protocol, port = v[0], v[1:]
-                                if port == '': port = DEFAULT_PORTS[protocol]
-                                out[protocol] = port
-                            elif re.match("v(.?)+", v):
-                                version = v[1:]
-                            elif re.match("p\d*", v):
-                                pruning_level = v[1:]
-                                if pruning_level == '': pruning_level = '0'
-                    try: 
-                        is_recent = float(version)>=float(PROTOCOL_VERSION)
-                    except:
-                        is_recent = False
-
-                    if out and is_recent:
-                        out['pruning'] = pruning_level
-                        servers[host] = out 
-
-                self.servers = servers
+                self.servers = self.parse_servers(result)
                 self.trigger_callback('peers')
 
         else:
index 38ef632..2371f30 100755 (executable)
@@ -1,11 +1,9 @@
 #!/usr/bin/env python
 
-from electrum import Interface
+from electrum import interface, Interface
 
-i = Interface({'server':'ecdsa.org:50001:t'})
+i = Interface()
 i.start()
-i.send([('server.peers.subscribe',[])])
-
-while True:
-    r = i.get_response()
-    print r.get('result')
+servers = i.synchronous_get([('server.peers.subscribe',[])])[0]
+servers = i.parse_servers( servers )
+print servers