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