ttime - electrum - Electrum Bitcoin wallet (HTM) git clone https://git.parazyd.org/electrum (DIR) Log (DIR) Files (DIR) Refs (DIR) Submodules --- (DIR) commit cb84c622926eee1acc81f872389a2f1eba3d0601 (DIR) parent 182baaca4d2eb4f1d7ecc63e5b5539b4b4da0146 (HTM) Author: ThomasV <thomasv@gitorious> Date: Thu, 10 Nov 2011 22:21:40 +0100 ttime Diffstat: M client/electrum.py | 12 ++++++++---- M client/gui.py | 13 ++++++++----- 2 files changed, 16 insertions(+), 9 deletions(-) --- (DIR) diff --git a/client/electrum.py b/client/electrum.py t@@ -254,6 +254,7 @@ class Wallet: # not saved self.message = '' self.tx_history = {} + self.rtime = 0 def new_seed(self, password): seed = "%032x"%ecdsa.util.randrange( pow(2,128) ) t@@ -404,11 +405,14 @@ class Wallet: unconf += u return conf, unconf - def request(self, request ): + def use_http(self): + return self.port in [80,8080] - use_http = self.port in [80,8080] + def request(self, request ): + import time + t1 = time.time() - if use_http: + if self.use_http(): import httplib, urllib params = urllib.urlencode({'q':request}) headers = {"Content-type": "application/x-www-form-urlencoded", "Accept": "text/plain"} t@@ -419,7 +423,6 @@ class Wallet: out = response.read() else: out = '' conn.close() - else: request += "#" s = socket.socket( socket.AF_INET, socket.SOCK_STREAM) t@@ -432,6 +435,7 @@ class Wallet: else: break s.close() + self.rtime = time.time() - t1 return out def retrieve_message(self): (DIR) diff --git a/client/gui.py b/client/gui.py t@@ -18,6 +18,7 @@ import datetime import thread, time, ast, sys +import socket, traceback import pygtk pygtk.require('2.0') import gtk, gobject t@@ -351,6 +352,7 @@ class BitcoinGUI: def __init__(self, wallet): self.error = '' self.wallet = wallet + self.period = 5 self.update_time = 0 self.window = MyWindow(gtk.WINDOW_TOPLEVEL) t@@ -433,17 +435,18 @@ class BitcoinGUI: time.sleep(0.5) def update_wallet_thread(): - import socket, traceback, sys while True: try: self.wallet.new_session() except: self.error = "Not connected" - time.sleep(5) + time.sleep(self.period) continue + self.info.set_text( self.wallet.message) while True: + self.period = 15 if self.wallet.use_http() else 5 try: u = self.wallet.update() except socket.gaierror: t@@ -459,7 +462,7 @@ class BitcoinGUI: if u: self.wallet.save() gobject.idle_add( self.update_history_tab ) - time.sleep(5) + time.sleep(self.period) thread.start_new_thread(update_wallet_thread, ()) thread.start_new_thread(update_status_bar_thread, ()) t@@ -745,9 +748,9 @@ class BitcoinGUI: def update_status_bar(self): c, u = self.wallet.get_balance() dt = time.time() - self.update_time - if dt < 15: + if dt < 2*self.period: self.status_image.set_from_stock(gtk.STOCK_YES, gtk.ICON_SIZE_MENU) - self.status_image.set_tooltip_text("Connected to %s.\n%d blocks"%(self.wallet.host, self.wallet.blocks)) + self.status_image.set_tooltip_text("Connected to %s.\n%d blocks\nrequest time: %f"%(self.wallet.host, self.wallet.blocks, self.wallet.rtime)) else: self.status_image.set_from_stock(gtk.STOCK_NO, gtk.ICON_SIZE_MENU) self.status_image.set_tooltip_text("Trying to contact %s.\n%d blocks"%(self.wallet.host, self.wallet.blocks))