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

This commit is contained in:
ThomasV 2013-12-14 07:49:21 +01:00
parent 2a9c62c9b8
commit 4f78b5365b
1 changed files with 16 additions and 1 deletions

View File

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