astro-blendDEV / app.py
Moibe's picture
Custom labels
0eeaea6
raw
history blame
4.58 kB
import gradio as gr
import sulkuPypi
from funciones import mass
from data import usuarios
import encrypter
import time
import nycklar.nodes
#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)
info_window = "Welcome Usuario"
#Después ejecuta la masa.
if autorizacion is True:
path = mass(input1,input2)
else:
print("No tienes suficientes tokens...")
info_window = "Out of tokens..."
path = 'no-result.png'
return "Desde funcion", path, info_window, btn_buy
print(f"El path final fue {path}, si es no-result, no debites y controla la info window.")
print(f"El type de path es: ", type(path))
print("Convirtiendo path a string...")
path_string = str(path)
print("Path_string = ", path_string)
if "no-result" not in path_string:
#Si el path NO tiene no-result, todo funcionó bien, por lo tanto debita.
print("Se obtuvo un resultado, debitaremos.")
#Y finalmente debita los tokens.
gr.State.tokens = sulkuPypi.debitTokens(gr.State.capsule, "picswap")
print(f"Y ahora tienes: {gr.State.tokens} tokens.")
info_window = "Image ready!"
else:
print("No se detectó un rostro...")
info_window = "No face in source path detected."
print(f"Y ahora tienes: {gr.State.tokens} tokens.")
lbl_credits = "Nuevo texto..."
#No se hizo un proceso, por lo tanto no debitaremos.
#En el futuro, como regla de negocio, podría cambiar y que si debitemos.
return "Desde funcion", path, info_window, btn_buy
# print("Estoy en las declaraciones...")
# gr.State.usuario = "briggsboardman"
# #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
# gr.State.tokens = 20
lbl_msg = gr.Label("AI Engine ready...")
btn_buy = gr.Button("Buy More", visible=True, size='lg', variant='stop')
result_image = gr.Image()
textbox = gr.Textbox("Nuevo textbox", interactive=False)
texto_del_markdown = """
# Hello World! {variable}
Start typing below to see the output.
"""
def cambio():
print("Ejecutando change...")
nuevo_markdown = """
"""
return nuevo_markdown
#Gradio themes:
# — gr.themes.Base()
# — gr.themes.Default()
# — gr.themes.Glass()
# — gr.themes.Monochrome()
# — gr.themes.Soft()
with gr.Blocks(css="footer {visibility: hidden}", theme=gr.themes.Base()) as main:
with gr.Row():
mrk_title = gr.Markdown(texto_del_markdown)
nueva_label = gr.Label("Credits")
#lbl_msg.change(fn=cambio, lbl_msg)
btn_buy.click(fn=cambio, outputs=mrk_title)
with gr.Row():
demo = gr.Interface(
fn=perform,
title="",
inputs=[gr.Image(label="Source"), gr.Image(label="Destination")],
outputs=[textbox, result_image,lbl_msg, btn_buy],
)
main.launch(auth=authenticate)
#demo.launch()