electrum

Electrum Bitcoin wallet
git clone https://git.parazyd.org/electrum
Log | Files | Refs | Submodules

commit 4f78b5365b03b1a108bc3678473cfeb39c9ae47d
parent 2a9c62c9b80ff0d679bd09e75601a5198a493d1e
Author: ThomasV <thomasv@gitorious>
Date:   Sat, 14 Dec 2013 07:49:21 +0100

exchange rate plugin: keep thread running (fixes #494)

Diffstat:
Mplugins/exchange_rate.py | 17++++++++++++++++-
1 file changed, 16 insertions(+), 1 deletion(-)

diff --git a/plugins/exchange_rate.py b/plugins/exchange_rate.py @@ -20,6 +20,7 @@ class Exchanger(threading.Thread): self.parent = parent self.quote_currencies = None self.lock = threading.Lock() + self.is_running = False def exchange(self, btc_amount, quote_currency): with self.lock: @@ -30,7 +31,16 @@ class Exchanger(threading.Thread): return None return btc_amount * quote_currencies[quote_currency] + def stop(self): + self.is_running = False + def run(self): + self.is_running = True + while self.is_running: + self.update() + time.sleep(120) + + def update(self): try: connection = httplib.HTTPConnection('blockchain.info') connection.request("GET", "/ticker") @@ -49,9 +59,10 @@ class Exchanger(threading.Thread): quote_currencies[r] = self._lookup_rate(response, r) with self.lock: self.quote_currencies = quote_currencies - self.parent.set_currencies(quote_currencies) except KeyError: pass + self.parent.set_currencies(quote_currencies) + # print "updating exchange rate", self.quote_currencies["USD"] def get_currencies(self): @@ -110,6 +121,10 @@ class Plugin(BasePlugin): return out + def close(self): + self.exchanger.stop() + + def settings_widget(self, window): combo = QComboBox()