show the BTC value in other currency.

This commit is contained in:
Amir Taaki 2012-06-30 14:43:42 +02:00
parent 02d8d297dc
commit 8d75b68152
2 changed files with 38 additions and 7 deletions

View File

@ -1,12 +1,37 @@
import decimal
import httplib
import json
class Exchanger:
def __init__(self, quote_currencies):
self.quote_currencies = quote_currencies
def __init__(self, quote_currencies, refresh_balance):
self.refresh_balance = refresh_balance
self.quote_currencies = {}
def exchange(self, btc_amount, quote_currency):
assert quote_currency in self.quote_currencies
return btc_amount * self.quote_currencies[quote_currency]
return btc_amount * 6
def discovery(self):
connection = httplib.HTTPSConnection('intersango.com')
connection.request("GET", "/api/ticker.php")
response = connection.getresponse()
if response.status == 404:
return
response = json.loads(response.read())
# 1 = BTC:GBP
# 2 = BTC:EUR
# 3 = BTC:USD
# 4 = BTC:PLN
try:
self.quote_currencies["GBP"] = self.lookup_rate(response, 1)
self.quote_currencies["EUR"] = self.lookup_rate(response, 2)
self.quote_currencies["USD"] = self.lookup_rate(response, 3)
self.refresh_balance()
except KeyError:
pass
def lookup_rate(self, response, quote_id):
return decimal.Decimal(response[str(quote_id)]["last"])
if __name__ == "__main__":
exch = Exchanger(("EUR", "USD", "GBP"))

View File

@ -86,10 +86,12 @@ class MiniWindow(QDialog):
self.btc_balance = 0
self.quote_currencies = ("EUR", "USD", "GBP")
self.exchanger = exchange_rate.Exchanger(self.quote_currencies)
self.exchanger = exchange_rate.Exchanger(self.quote_currencies,
self.refresh_balance)
self.balance_label = BalanceLabel(self.change_quote_currency)
self.balance_label.setObjectName("balance_label")
self.exchanger.discovery()
copy_button = QPushButton(_("&Copy Address"))
copy_button.setObjectName("copy_button")
@ -163,13 +165,17 @@ class MiniWindow(QDialog):
def change_quote_currency(self):
self.quote_currencies = \
self.quote_currencies[1:] + self.quote_currencies[0:1]
self.refresh_balance()
def refresh_balance(self):
self.set_balances(self.btc_balance)
def set_balances(self, btc_balance):
self.btc_balance = btc_balance
btc_balance /= bitcoin(1)
quote_balance = "%.2f" % (btc_balance * 6)
quote_currency = self.quote_currencies[0]
quote_balance = self.exchanger.exchange(btc_balance, quote_currency)
quote_balance = "%.2f" % (quote_balance / bitcoin(1))
btc_balance = "%.2f" % (btc_balance / bitcoin(1))
self.balance_label.set_balances( \
btc_balance, quote_balance, quote_currency)
main_account_info = \