URI: 
       tsave recent_servers in separate file - electrum - Electrum Bitcoin wallet
  HTML git clone https://git.parazyd.org/electrum
   DIR Log
   DIR Files
   DIR Refs
   DIR Submodules
       ---
   DIR commit a805afa900c1c135ed7b179f854077bb6c1c15c9
   DIR parent 881e15ae12bc2a0a39e20b22485d40031b991345
  HTML Author: ThomasV <thomasv@gitorious>
       Date:   Thu,  2 Apr 2015 10:12:51 +0200
       
       save recent_servers in separate file
       
       Diffstat:
         M lib/network.py                      |      28 +++++++++++++++++++++++++---
       
       1 file changed, 25 insertions(+), 3 deletions(-)
       ---
   DIR diff --git a/lib/network.py b/lib/network.py
       t@@ -8,6 +8,7 @@ import traceback
        
        import socks
        import socket
       +import json
        
        import util
        from bitcoin import *
       t@@ -147,7 +148,7 @@ class Network(util.DaemonThread):
        
                self.disconnected_servers = set([])
        
       -        self.recent_servers = self.config.get('recent_servers',[]) # successful connections
       +        self.recent_servers = self.read_recent_servers()
                self.pending_servers = set()
        
                self.banner = ''
       t@@ -166,6 +167,28 @@ class Network(util.DaemonThread):
                self.requests_queue = Queue.Queue()
                self.set_proxy(deserialize_proxy(self.config.get('proxy')))
        
       +    def read_recent_servers(self):
       +        if not self.config.path:
       +            return []
       +        path = os.path.join(self.config.path, "recent_servers")
       +        try:
       +            with open(path, "r") as f:
       +                data = f.read()
       +                return json.loads(data)
       +        except:
       +            return []
       +
       +    def save_recent_servers(self):
       +        if not self.config.path:
       +            return
       +        path = os.path.join(self.config.path, "recent_servers")
       +        s = json.dumps(self.recent_servers, indent=4, sort_keys=True)
       +        try:
       +            with open(path, "w") as f:
       +                f.write(s)
       +        except:
       +            pass
       +
            def get_server_height(self):
                return self.heights.get(self.default_server, 0)
        
       t@@ -370,8 +393,7 @@ class Network(util.DaemonThread):
                    self.recent_servers.remove(s)
                self.recent_servers.insert(0,s)
                self.recent_servers = self.recent_servers[0:20]
       -        self.config.set_key('recent_servers', self.recent_servers)
       -
       +        self.save_recent_servers()
        
            def add_interface(self, i):
                self.interfaces[i.server] = i