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 perform182, la cantidad de tokens es: ", gr.State.tokens) #Revisaremos de nuevo: gr.State.tokens = sulkuPypi.getTokens(encrypter.encripta(gr.State.usuario).decode("utf-8")) #Todo en una línea. print("Ahora tienes: ", 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.capsule, "picswap") print(f"Y ahora tienes: {gr.State.tokens} tokens.") return path label = gr.Label("Hola!") demo = gr.Interface( fn=perform, title="", inputs=[gr.Image(), label, gr.Image()], outputs=[gr.Image(),label], css="footer {visibility: hidden}" ) demo.launch(auth=authenticate)