Spaces:
Sleeping
Sleeping
versión final, con estilos aplicados
Browse files
app.py
CHANGED
@@ -1,4 +1,4 @@
|
|
1 |
-
import gradio as gr
|
2 |
import requests
|
3 |
import re
|
4 |
|
@@ -60,32 +60,54 @@ def cotiza_btc(compra_prima, venta_prima):
|
|
60 |
|
61 |
return micotizacion, cotizacionexchanges
|
62 |
|
63 |
-
def cotiza_monto(monto, tipo): #tipo es compra o venta
|
64 |
|
65 |
if tipo == "compra":
|
66 |
global compra
|
67 |
son_satoshis = str(int(monto / compra * 100000000)) + " SATS"
|
68 |
son_pesos = "" #para que no se imprima a la salida
|
69 |
monto_en = "ARS"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
70 |
else:
|
71 |
global venta
|
72 |
son_pesos = str(int(monto * venta / 100000000)) + " ARS"
|
73 |
son_satoshis = "" #para que no se imprima a la salida
|
74 |
monto_en = "SATS"
|
75 |
-
|
76 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
77 |
clases_css = "text-gray-500 text-[0.855rem] mb-2 block dark:text-gray-200 relative z-40 scroll-hide block gr-box gr-input w-full gr-text-input"
|
|
|
78 |
cotizamonto_out_style = "style='font-size: larger; background-color: #ffa500; color: #461000; text-align: center'"
|
79 |
salida_html = f"<div class='cotizamonto_out {clases_css}' {cotizamonto_out_style}>{monto} {monto_en} -> {son_satoshis}{son_pesos}</div>"
|
80 |
salida = salida_html
|
81 |
|
82 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
83 |
|
84 |
## UI
|
85 |
|
86 |
with gr.Blocks() as cotizabtc:
|
87 |
-
|
88 |
-
|
|
|
89 |
cotizabtc_out_1 = gr.Textbox(label="Mi cotización:")
|
90 |
cotizabtc_out_2 = gr.Textbox(label="Cotizaciones exchanges:")
|
91 |
|
@@ -93,13 +115,17 @@ with gr.Blocks() as cotizabtc:
|
|
93 |
cotizabtc_btn.click(fn=cotiza_btc, inputs=[cotizabtc_inp_1, cotizabtc_inp_2], outputs=[cotizabtc_out_1, cotizabtc_out_2])
|
94 |
|
95 |
#--- cotizamonto:
|
96 |
-
cotizamonto_inp_1 = gr.Slider(label="Monto (ars/sats):", minimum=
|
97 |
cotizamonto_inp_2 = gr.Radio(["compra", "venta"], label="tipo")
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
|
|
|
|
|
|
|
|
103 |
|
104 |
#---------------
|
105 |
|
|
|
1 |
+
import gradio as gr #interface gráfica
|
2 |
import requests
|
3 |
import re
|
4 |
|
|
|
60 |
|
61 |
return micotizacion, cotizacionexchanges
|
62 |
|
63 |
+
def cotiza_monto(monto, tipo, compra_prima, venta_prima): #tipo es compra o venta
|
64 |
|
65 |
if tipo == "compra":
|
66 |
global compra
|
67 |
son_satoshis = str(int(monto / compra * 100000000)) + " SATS"
|
68 |
son_pesos = "" #para que no se imprima a la salida
|
69 |
monto_en = "ARS"
|
70 |
+
son_satoshis_noprima = round(int(monto / yadio_BTC_ARS * 100000000)) #cambio sin prima
|
71 |
+
ganancia_compraSATS = round((monto / yadio_BTC_ARS * 100000000) -int(son_satoshis[:-5])) #ganancia en satoshis
|
72 |
+
ganancia_compraARS = round(ganancia_compraSATS / 100000000 * yadio_BTC_ARS, 0) #ganancia en ARS
|
73 |
+
ganancia_compraARS = str(ganancia_compraARS) + " ARS"
|
74 |
+
ganancia_ARS = ganancia_compraARS
|
75 |
+
detalles = f"Gano en sats: {ganancia_compraSATS} SATS; (+{compra_prima}%). Cambio sin prima: {son_satoshis_noprima} SATS"
|
76 |
+
|
77 |
else:
|
78 |
global venta
|
79 |
son_pesos = str(int(monto * venta / 100000000)) + " ARS"
|
80 |
son_satoshis = "" #para que no se imprima a la salida
|
81 |
monto_en = "SATS"
|
82 |
+
#son_pesos_noprima = int(monto * venta / 100000000) #cambio sin prima
|
83 |
+
son_pesos_noprima = round(monto / 100000000 * yadio_BTC_ARS) #cambio sin prima
|
84 |
+
ganancia_venta_ARS = round(son_pesos_noprima - int(son_pesos[:-4]), 0) #ganancia en ARS
|
85 |
+
ganancia_ventaSATS = round(monto * venta_prima /100)
|
86 |
+
ganancia_ARS = str(ganancia_venta_ARS) + " ARS"
|
87 |
+
detalles = f"Gano en sats: {ganancia_ventaSATS} SATS; (+{venta_prima}%). Cambio sin prima: {son_pesos_noprima} ARS"
|
88 |
+
|
89 |
+
#estilos y html para las salidas:
|
90 |
clases_css = "text-gray-500 text-[0.855rem] mb-2 block dark:text-gray-200 relative z-40 scroll-hide block gr-box gr-input w-full gr-text-input"
|
91 |
+
|
92 |
cotizamonto_out_style = "style='font-size: larger; background-color: #ffa500; color: #461000; text-align: center'"
|
93 |
salida_html = f"<div class='cotizamonto_out {clases_css}' {cotizamonto_out_style}>{monto} {monto_en} -> {son_satoshis}{son_pesos}</div>"
|
94 |
salida = salida_html
|
95 |
|
96 |
+
cotizamonto_ganancia_style = "style='font-size: larger; background-color: #c8ff00; color: #334600; text-align: center'"
|
97 |
+
ganancia_ARS_HTML = f"<div class='{clases_css}'{cotizamonto_ganancia_style}>gano:<br>{ganancia_ARS}</div>"
|
98 |
+
ganancia_ARS = ganancia_ARS_HTML
|
99 |
+
|
100 |
+
detalles_HTML = f"<div class='{clases_css}'>{detalles}</div>"
|
101 |
+
detalles = detalles_HTML
|
102 |
+
|
103 |
+
return salida, ganancia_ARS, detalles
|
104 |
|
105 |
## UI
|
106 |
|
107 |
with gr.Blocks() as cotizabtc:
|
108 |
+
with gr.Row():
|
109 |
+
cotizabtc_inp_1 = gr.Slider(label="Compra prima", minimum=0, maximum=12, value=6, step=1)
|
110 |
+
cotizabtc_inp_2 = gr.Slider(label="Venta prima", minimum=0, maximum=12, value=6, step=1)
|
111 |
cotizabtc_out_1 = gr.Textbox(label="Mi cotización:")
|
112 |
cotizabtc_out_2 = gr.Textbox(label="Cotizaciones exchanges:")
|
113 |
|
|
|
115 |
cotizabtc_btn.click(fn=cotiza_btc, inputs=[cotizabtc_inp_1, cotizabtc_inp_2], outputs=[cotizabtc_out_1, cotizabtc_out_2])
|
116 |
|
117 |
#--- cotizamonto:
|
118 |
+
cotizamonto_inp_1 = gr.Slider(label="Monto (ars/sats):", minimum=500, maximum=100000, value=1000, step=500)
|
119 |
cotizamonto_inp_2 = gr.Radio(["compra", "venta"], label="tipo")
|
120 |
+
with gr.Row():
|
121 |
+
with gr.Column():
|
122 |
+
with gr.Row():
|
123 |
+
cotizamonto_out = gr.HTML()
|
124 |
+
cotizamonto_ganancia_out = gr.HTML()
|
125 |
+
cotizamonto_detalle_out = gr.HTML()
|
126 |
+
cotizamonto_btn = gr.Button("cotizar!")
|
127 |
+
|
128 |
+
cotizamonto_btn.click(fn=cotiza_monto, inputs=[cotizamonto_inp_1, cotizamonto_inp_2, cotizabtc_inp_1, cotizabtc_inp_2], outputs=[cotizamonto_out, cotizamonto_ganancia_out, cotizamonto_detalle_out])
|
129 |
|
130 |
#---------------
|
131 |
|