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))