mirror of
https://github.com/LBRYFoundation/LBRY-Vault.git
synced 2025-08-23 17:47:31 +00:00
Simply some of exchange_rate plugin
This commit is contained in:
parent
7cf276c10b
commit
19e128adf0
1 changed files with 15 additions and 20 deletions
|
@ -39,21 +39,13 @@ class Exchanger(ThreadJob):
|
||||||
|
|
||||||
def __init__(self, parent):
|
def __init__(self, parent):
|
||||||
self.parent = parent
|
self.parent = parent
|
||||||
self.quote_currencies = None
|
self.quotes = {}
|
||||||
self.timeout = 0
|
self.timeout = 0
|
||||||
|
|
||||||
def get_json(self, site, get_string):
|
def get_json(self, site, get_string):
|
||||||
resp = requests.request('GET', 'https://' + site + get_string, headers={"User-Agent":"Electrum"})
|
resp = requests.request('GET', 'https://' + site + get_string, headers={"User-Agent":"Electrum"})
|
||||||
return resp.json()
|
return resp.json()
|
||||||
|
|
||||||
def exchange(self, btc_amount, quote_currency):
|
|
||||||
if self.quote_currencies is None:
|
|
||||||
return None
|
|
||||||
quote_currencies = self.quote_currencies.copy()
|
|
||||||
if quote_currency not in quote_currencies:
|
|
||||||
return None
|
|
||||||
return btc_amount * Decimal(str(quote_currencies[quote_currency]))
|
|
||||||
|
|
||||||
def update_rate(self):
|
def update_rate(self):
|
||||||
update_rates = {
|
update_rates = {
|
||||||
"BitcoinAverage": self.update_ba,
|
"BitcoinAverage": self.update_ba,
|
||||||
|
@ -76,7 +68,7 @@ class Exchanger(ThreadJob):
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
self.parent.print_error(e)
|
self.parent.print_error(e)
|
||||||
rates = {}
|
rates = {}
|
||||||
self.quote_currencies = rates
|
self.quotes = rates
|
||||||
self.parent.set_currencies(rates)
|
self.parent.set_currencies(rates)
|
||||||
self.parent.refresh_fields()
|
self.parent.refresh_fields()
|
||||||
|
|
||||||
|
@ -205,6 +197,12 @@ class Plugin(BasePlugin):
|
||||||
window.emit(SIGNAL("refresh_currencies()"))
|
window.emit(SIGNAL("refresh_currencies()"))
|
||||||
window.emit(SIGNAL("refresh_currencies_combo()"))
|
window.emit(SIGNAL("refresh_currencies_combo()"))
|
||||||
|
|
||||||
|
def exchange_rate(self):
|
||||||
|
'''Returns None, or the exchange rate as a Decimal'''
|
||||||
|
rate = self.exchanger.quotes.get(self.fiat_unit())
|
||||||
|
if rate:
|
||||||
|
return Decimal(str(rate))
|
||||||
|
|
||||||
@hook
|
@hook
|
||||||
def get_fiat_balance_text(self, btc_balance, r):
|
def get_fiat_balance_text(self, btc_balance, r):
|
||||||
# return balance as: 1.23 USD
|
# return balance as: 1.23 USD
|
||||||
|
@ -234,14 +232,13 @@ class Plugin(BasePlugin):
|
||||||
r2[0] = text
|
r2[0] = text
|
||||||
|
|
||||||
def create_fiat_balance_text(self, btc_balance):
|
def create_fiat_balance_text(self, btc_balance):
|
||||||
quote_currency = self.fiat_unit()
|
cur_rate = self.exchange_rate()
|
||||||
cur_rate = self.exchanger.exchange(Decimal("1.0"), quote_currency)
|
|
||||||
if cur_rate is None:
|
if cur_rate is None:
|
||||||
quote_text = ""
|
quote_text = ""
|
||||||
else:
|
else:
|
||||||
quote_balance = btc_balance * Decimal(cur_rate)
|
quote_balance = btc_balance * Decimal(cur_rate)
|
||||||
self.btc_rate = cur_rate
|
self.btc_rate = cur_rate
|
||||||
quote_text = "%.2f %s" % (quote_balance, quote_currency)
|
quote_text = "%.2f %s" % (quote_balance, self.fiat_unit())
|
||||||
return quote_text
|
return quote_text
|
||||||
|
|
||||||
@hook
|
@hook
|
||||||
|
@ -529,7 +526,7 @@ class Plugin(BasePlugin):
|
||||||
btc_e.setText("")
|
btc_e.setText("")
|
||||||
if fee_e: fee_e.setText("")
|
if fee_e: fee_e.setText("")
|
||||||
return
|
return
|
||||||
exchange_rate = self.exchanger.exchange(Decimal("1.0"), self.fiat_unit())
|
exchange_rate = self.exchange_rate()
|
||||||
if exchange_rate is not None:
|
if exchange_rate is not None:
|
||||||
btc_amount = fiat_amount/exchange_rate
|
btc_amount = fiat_amount/exchange_rate
|
||||||
btc_e.setAmount(int(btc_amount*Decimal(COIN)))
|
btc_e.setAmount(int(btc_amount*Decimal(COIN)))
|
||||||
|
@ -539,14 +536,12 @@ class Plugin(BasePlugin):
|
||||||
def btc_changed():
|
def btc_changed():
|
||||||
btc_e.setStyleSheet(BLACK_FG)
|
btc_e.setStyleSheet(BLACK_FG)
|
||||||
window.fx_fields[(fiat_e, btc_e)] = btc_e
|
window.fx_fields[(fiat_e, btc_e)] = btc_e
|
||||||
if self.exchanger is None:
|
|
||||||
return
|
|
||||||
btc_amount = btc_e.get_amount()
|
btc_amount = btc_e.get_amount()
|
||||||
if btc_amount is None:
|
rate = self.exchange_rate()
|
||||||
|
if rate is None or btc_amount is None:
|
||||||
fiat_e.setText("")
|
fiat_e.setText("")
|
||||||
return
|
else:
|
||||||
fiat_amount = self.exchanger.exchange(Decimal(btc_amount)/Decimal(COIN), self.fiat_unit())
|
fiat_amount = rate * Decimal(btc_amount) / Decimal(COIN)
|
||||||
if fiat_amount is not None:
|
|
||||||
pos = fiat_e.cursorPosition()
|
pos = fiat_e.cursorPosition()
|
||||||
fiat_e.setText("%.2f"%fiat_amount)
|
fiat_e.setText("%.2f"%fiat_amount)
|
||||||
fiat_e.setCursorPosition(pos)
|
fiat_e.setCursorPosition(pos)
|
||||||
|
|
Loading…
Add table
Reference in a new issue