move 'peers.subscribe' and 'server.version' calls into the interface
authorThomasV <thomasv@gitorious>
Sat, 27 Oct 2012 12:15:03 +0000 (14:15 +0200)
committerThomasV <thomasv@gitorious>
Sat, 27 Oct 2012 12:15:03 +0000 (14:15 +0200)
electrum
lib/interface.py
lib/wallet.py

index 4f25f06..ab3b367 100755 (executable)
--- a/electrum
+++ b/electrum
@@ -188,6 +188,7 @@ if __name__ == '__main__':
 
         interface = Interface(config, True)
         interface.start()
+        interface.send([('server.peers.subscribe',[])])
 
         wallet.interface = interface
         WalletSynchronizer(wallet, config).start()
index c843679..135ad1e 100644 (file)
@@ -88,6 +88,28 @@ class Interface(threading.Thread):
             with self.lock: 
                 method, params, channel = self.unanswered_requests.pop(msg_id)
             result = c.get('result')
+
+            if method == 'server.version':
+                self.server_version = result
+
+            elif method == 'server.peers.subscribe':
+                servers = []
+                for item in result:
+                    s = []
+                    host = item[1]
+                    ports = []
+                    version = None
+                    if len(item) > 2:
+                        for v in item[2]:
+                            if re.match("[stgh]\d+", v):
+                                ports.append((v[0], v[1:]))
+                            if re.match("v(.?)+", v):
+                                version = v[1:]
+                    if ports and version:
+                        servers.append((host, ports))
+                self.servers = servers
+                self.trigger_callback('peers')
+
         else:
             # notification: find the channel(s)
             method = c.get('method')
index 622e182..3e9da90 100644 (file)
@@ -873,7 +873,6 @@ class WalletSynchronizer(threading.Thread):
         self.interface.send([('server.banner',[])],'synchronizer')
 
         # subscriptions
-        self.interface.send([('server.peers.subscribe',[])],'synchronizer')
         self.subscribe_to_addresses(self.wallet.all_addresses())
 
         while True:
@@ -907,27 +906,6 @@ class WalletSynchronizer(threading.Thread):
                 self.wallet.tx_result = result
                 self.wallet.tx_event.set()
 
-            elif method == 'server.version':
-                pass
-
-            elif method == 'server.peers.subscribe':
-                servers = []
-                for item in result:
-                    s = []
-                    host = item[1]
-                    ports = []
-                    version = None
-                    if len(item) > 2:
-                        for v in item[2]:
-                            if re.match("[stgh]\d+", v):
-                                ports.append((v[0], v[1:]))
-                            if re.match("v(.?)+", v):
-                                version = v[1:]
-                    if ports and version:
-                        servers.append((host, ports))
-                self.interface.servers = servers
-                self.interface.trigger_callback('peers')
-
             elif method == 'server.banner':
                 self.wallet.banner = result
                 self.wallet.was_updated = True