import requests
import json
from tkinter import *

root = Tk()
usd = StringVar()
btc = StringVar()
currency = StringVar()
currency.set("USD")

def tobtc(x):
    # Parameters to pass
    x = float(x)
    payload = {'currency': 'USD', 'value': x}
    url = requests.get("https://blockchain.info/tobtc", params=payload)
    price = url.json()
    btc.set(price)
    return

def tousd(x, y):
    x = float(x)
    url = requests.get("http://blockchain.info/ticker")
    price = url.json()[y]['buy']
    price = price * x
    price = ("%.2f" % round(price,2))
    usd.set(price)
    label1.config(text=y)
    labeltext = ['To ',y]
    labeltext = ''.join(str(v) for v in labeltext)
    to_usd.config(text=labeltext)
    return

root.wm_title("Bitcoin Price")

# This allows two buttons to be side by side later

top = Frame(root)
top.pack(side=TOP, fill=BOTH, expand=True)

middle = Frame(root)
middle.pack(side=TOP, fill=BOTH, expand=True)

bottom = Frame(root)
bottom.pack(side=BOTTOM, fill=BOTH, expand=True)

filler1 = Label(root, text="")
filler1.pack(in_=top)

label1 = Label(root, text="USD:")
label1.place(in_=top, relx=0.25, rely=0.5, anchor=CENTER)

label2 = Label(root, text="BTC:")
label2.place(in_=top, relx=0.75, rely=0.5, anchor=CENTER)

usd_entry = Entry(root, textvariable=usd)
usd_entry.pack(in_=middle, side=LEFT)

btc_entry = Entry(root, textvariable=btc)
btc_entry.pack(in_=middle, side=RIGHT)

filler2 = Label(root, text="", height=2)
filler2.pack(in_=bottom)

to_btc = Button(root, text="To BTC", command= lambda: tobtc(usd.get()))
to_btc.place(in_=bottom, relx=0.25, rely=0.5, anchor=CENTER)

to_usd = Button(root, text="To USD", command= lambda: tousd(btc.get(), \
                                                            currency.get()))
to_usd.place(in_=bottom, relx=0.75, rely=0.5, anchor=CENTER)

currency_select = OptionMenu(root, currency, "USD", "EUR", "CAD")
currency_select.place(in_=bottom, relx=0.5, rely=0.5, anchor=CENTER)

mainloop()