Spaces:
Sleeping
Sleeping
File size: 4,534 Bytes
677bddc af7e87c e64103c af7e87c c92c00c e64103c af7e87c e64103c 9deaf74 7fb5605 9deaf74 e64103c 9deaf74 e64103c 9deaf74 e64103c 9deaf74 e64103c 9deaf74 e64103c 9deaf74 e64103c 7fb10be af7e87c e64103c 0600287 296cefc e64103c 7fdea9e 296cefc e64103c 296cefc e64103c 296cefc 9deaf74 7fdea9e 677bddc e64103c 3f0e8e5 e64103c 42770c3 3ea2bff e64103c f8c3a1f 3ea2bff e64103c 7fb5605 3f0e8e5 9deaf74 a107ccd 7c4ec8d e64103c 7c4ec8d af7e87c e64103c 19c25ff af7e87c 9deaf74 e43c0da |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 |
import gradio as gr
get_local_storage = """
function() {
globalThis.setStorage = (key, value)=>{
localStorage.setItem(key, value)
}
globalThis.getStorage = (key, value)=>{
obtencion = localStorage.getItem(key)
console.log("Dentro de getStorage:", obtencion)
return obtencion
}
globalThis.cleanCred = (key, value)=>{
localStorage.setItem(key, value)
}
//Todo ésto lo hará al cargarse el load.
//El token se deberá obtener de todas formas:
// Obtener la URL actual
const urlActual = window.location;
console.log("Hola")
console.log(urlActual)
// Buscar el parámetro "tkn"
const urlParams = new URLSearchParams(window.location.search);
console.log("Ésto es urlParams: ", urlParams)
const token = urlParams.get('tkn');
console.log("El token enviado es: ", token)
if (!localStorage.getItem('tokens')) {
console.log("Primera vez en el sistema, se le dan 5 tokens")
localStorage.setItem('tokens', 5);
//Para llegar a éste punto significa que no habían entrado sin embargo traían tokens, lo cual no se puede y está trucado.
if(token){
localStorage.setItem('trp', 'Ok')
localStorage.setItem('tokens', 0)
console.log("El usuario cargo la url sin haber usado el sitio, queda flagged como trampa y se le otorgan 0 tokens.")
}
}
else
{
console.log("Ya tiene hecho el espacio para tokens, no es la primera vez que visita. Si podemos recargar, solo aquí:")
console.log("token es: ", token)
trap = localStorage.getItem('trp')
console.log("trap es: ", trap)
credused = localStorage.getItem('credused')
console.log("credused es: ", credused)
if (token && trap === null && credused === null || token && trap === null && credused === "0") {
console.log('Token encontrado hoy:', token);
tokens_actuales = localStorage.getItem('tokens');
console.log("Los tokens actuales que tienes son: ", tokens_actuales)
nueva_cantidad = parseInt(tokens_actuales) + parseInt(token)
localStorage.setItem('tokens', nueva_cantidad);
localStorage.setItem('credused', 1)
console.log("El usuario cargo sus tokens, se marca que ya usó ese crédito.")
}
else { console.log('No se encontró el token'); }
}
//Al final obten cuantos tokens tiene.
const legado = localStorage.getItem('tokens');
return legado;
}
"""
def predict(text_input, tokens_label):
print("Tokens_label es: ", tokens_label)
tokens_actualizados = int(tokens_label) - 1
resultado_texto = "Hola " + text_input + ", éste es el resultado."
print("Tokens_Label:", tokens_label)
if tokens_actualizados > 0:
print("Saldo Positivo")
return tokens_actualizados, resultado_texto, gr.Button(interactive=True), gr.Button(visible=False)
else:
print("Saldo negativo")
return tokens_actualizados, resultado_texto, gr.Button(interactive=False), gr.Button(visible=True)
with gr.Blocks() as block:
tokens_label = gr.Text(label="Tokens Disponibles", interactive = True)
text_input = gr.Text(label="Tu Nombre:")
resultadoFinal = gr.Text(label="Resultado")
alonzo = "texto_random"
#text_input.change(None, tokens_label, tokens_label, js="(v)=>{ getStorage('text_input',v) }")
#tokens_label.change(None, tokens_label, None, _js="(v)=>{ setStorage('otro',v) }")
resultadoFinal.change(None, tokens_label, None, _js="(v, alonzo)=>{ setStorage('tokens', alonzo) }")
#resultadoFinal.change(None, text_input, resultadoFinal, js="(v)=>{ getStorage('text_input') }")
btn = gr.Button("Enviar", icon="aiicon.png")
payBtn = gr.Button("Buy Tokens", icon="aiicon.png", interactive = True, visible = True)
btn.click(fn=predict, inputs=[text_input, tokens_label], outputs=[tokens_label, resultadoFinal, btn, payBtn])
payBtn.click(None, inputs=None, outputs=None, _js="(v)=>{ cleanCred('credused',0) }" )
block.load(
None,
inputs=None,
outputs=[tokens_label],
_js=get_local_storage,
)
block.launch(debug=True) |