tebicap commited on
Commit
240402d
1 Parent(s): 99270ab

crea la app

Browse files
Files changed (1) hide show
  1. app.py +97 -0
app.py ADDED
@@ -0,0 +1,97 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/usr/bin/env python3
2
+
3
+ import gradio as gr #interface gráfica
4
+ import requests
5
+ import re
6
+
7
+ def cotiza_btc(compra_prima, venta_prima):
8
+
9
+ #compra_prima = 6 #porcentaje
10
+ #venta_prima = 6 #porcentaje
11
+ url_yadio_BTC_ARS = 'https://api.yadio.io/convert/1/BTC/ARS'
12
+ url_p2p_buy = 'https://api.yadio.io/market/ads?currency=ARS&side=buy&limit=10' #10 resultados
13
+ url_p2p_sell = 'https://api.yadio.io/market/ads?currency=ARS&side=sell&limit=25' #25 resultados
14
+
15
+ #YADIO
16
+
17
+ global yadio_BTC_ARS
18
+ yadio_BTC_ARS = requests.get(url_yadio_BTC_ARS).text
19
+ yadio_BTC_ARS = re.search(r'"result":(\d+).\d*,', yadio_BTC_ARS) #captura precio
20
+ yadio_BTC_ARS = int(yadio_BTC_ARS[1])
21
+
22
+ #COMPRA
23
+
24
+ global compra
25
+ compra = yadio_BTC_ARS + (yadio_BTC_ARS * compra_prima / 100)
26
+
27
+ #VENTA
28
+
29
+ global venta
30
+ venta = yadio_BTC_ARS - (yadio_BTC_ARS * venta_prima / 100)
31
+
32
+ #BINANCE COMPRA
33
+
34
+ binancep2p_ARS_BUY = requests.get(url_p2p_buy).text
35
+ binancep2p_ARS_BUY = re.findall(r'"price":([0-9]+)[0-9.]*,"ad_id":"[0-9]+","ad_url":"https:\/\/p2p\.binance\.com', binancep2p_ARS_BUY) #extraigo varios precios
36
+ binancep2p_ARS_BUY_promedio = 0 #para sumar y promediar precios
37
+ for x in binancep2p_ARS_BUY:
38
+ binancep2p_ARS_BUY_promedio += int(x)
39
+ if not binancep2p_ARS_BUY_promedio == 0:
40
+ binancep2p_ARS_BUY_promedio = binancep2p_ARS_BUY_promedio/len(binancep2p_ARS_BUY) #promedio
41
+
42
+ #BINANCE VENTA
43
+
44
+ binancep2p_ARS_SELL = requests.get(url_p2p_sell).text
45
+ binancep2p_ARS_SELL = re.findall(r'"price":([0-9]+)[0-9.]*,"ad_id":"[0-9]+","ad_url":"https:\/\/p2p\.binance\.com', binancep2p_ARS_SELL) #extraigo varios precios
46
+ binancep2p_ARS_SELL_promedio = 0 #para sumar y promediar precios
47
+ for x in binancep2p_ARS_SELL:
48
+ binancep2p_ARS_SELL_promedio += int(x)
49
+ if not binancep2p_ARS_SELL_promedio == 0:
50
+ binancep2p_ARS_SELL_promedio = binancep2p_ARS_SELL_promedio/len(binancep2p_ARS_SELL) #promedio
51
+
52
+ #SALIDA
53
+
54
+ #return compra, compra_prima, venta, venta_prima, yadio_BTC_ARS, binancep2p_ARS_BUY_promedio, binancep2p_ARS_SELL_promedio
55
+
56
+ #SALIDA huggingface
57
+
58
+ micotizacion = f"Compra: {compra} ARS; Venta: {venta} ARS"
59
+ cotizacionexchanges = f"Yadio: {yadio_BTC_ARS} ARS; Binance P2P compra (promedio): {binancep2p_ARS_BUY_promedio} ARS; Binance P2P venta (promedio): {binancep2p_ARS_SELL_promedio} ARS"
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
+ else:
70
+ global venta
71
+ son_pesos = str(int(monto * venta / 100000000)) + " ARS"
72
+ son_satoshis = "" #para que no se imprima a la salida
73
+
74
+ return "{}{}".format(son_satoshis, son_pesos)
75
+
76
+ ## UI
77
+
78
+ with gr.Blocks(css="#cotizamonto_txt {color: #d43100}") as cotizabtc:
79
+ cotizabtc_inp_1 = gr.Slider(label="Compra prima", minimum=0, maximum=12, value=6, step=1)
80
+ cotizabtc_inp_2 = gr.Slider(label="Venta prima", minimum=0, maximum=12, value=6, step=1)
81
+ cotizabtc_out_1 = gr.Textbox(label="Mi cotización:")
82
+ cotizabtc_out_2 = gr.Textbox(label="Cotizaciones exchanges:")
83
+
84
+ cotizabtc_btn = gr.Button("cotizaciones")
85
+ cotizabtc_btn.click(fn=cotiza_btc, inputs=[cotizabtc_inp_1, cotizabtc_inp_2], outputs=[cotizabtc_out_1, cotizabtc_out_2])
86
+
87
+ #--- cotizamonto:
88
+ cotizamonto_inp_1 = gr.Slider(label="Monto:", minimum=100, maximum=50000, value=1000, step=100)
89
+ cotizamonto_inp_2 = gr.Radio(["compra", "venta"], label="tipo")
90
+ cotizamonto_out = gr.Textbox(label="Son:", elem_id="cotizamonto_txt")
91
+
92
+ cotizamonto_btn = gr.Button("cotizar!")
93
+ cotizamonto_btn.click(fn=cotiza_monto, inputs=[cotizamonto_inp_1, cotizamonto_inp_2], outputs=[cotizamonto_out])
94
+
95
+ #---------------
96
+
97
+ cotizabtc.launch()