astro-blendDEV / app.py
Moibe's picture
Tokens se actualizan en tiempo real
f4d528b
raw
history blame
2.07 kB
import gradio as gr
import sulkuPypi
from funciones import mass
from data import usuarios
import encrypter
import time
#Funciones adicionales
def authenticate(username, password):
for u, p in usuarios:
#Si el usuario y la contraseña son correctas...
if username == u and password == p:
#Agrego el nombre del usuario al estado general.
gr.State.usuario = username
#Bienvenida al usuario...
print("Welcome ", gr.State.usuario)
#Capsule es el usuario encriptado que enviarás a la API de Sulku.
capsule = encrypter.encripta(gr.State.usuario).decode("utf-8") #decode es para quitarle el 'b
gr.State.capsule = capsule
#Checa cuantos tokens tiene ese usuario via la API de Sulku:
gr.State.tokens = sulkuPypi.getTokens(capsule)
print(f"Tienes: {gr.State.tokens} tokens. ")
return True
#Si no hubo coincidencia regresas un false.
return False
#Función principal
def perform(input1, input2):
print("Estando en perform, la cantidad de tokens es: ", gr.State.tokens)
#Después autoriza.
#Si está autorizada puede ejecutar la tarea, ésta lógica si está a cargo aquí, por parte de la app y su desarrollador, no de Sulku.
autorizacion = sulkuPypi.authorize(gr.State.tokens, 'picswap')
print("La autorización es: ", autorizacion)
#Después ejecuta la masa.
if autorizacion is True:
path = mass(input1,input2)
else:
print("No tienes suficientes tokens...")
return "No tienes suficientes tokens"
print("Después de mass imprimo ésto.")
#Y finalmente debita los tokens.
gr.State.tokens = sulkuPypi.debitTokens(gr.State.decoded_capsule, "picswap")
print(f"Y ahora tienes: {gr.State.tokens} tokens.")
return path
#Así para imagenes
demo = gr.Interface(
fn=perform, inputs=[gr.Image(), gr.Image()], outputs=[gr.Image()]
)
#demo.launch()
demo.launch(auth=authenticate)