File size: 4,408 Bytes
5594d1b
 
 
 
 
 
b455efa
5594d1b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
b455efa
3d87819
5594d1b
 
 
 
 
 
 
3d87819
1f42b26
7868db5
5594d1b
b1cc83b
00c6c3d
0a3f74c
5594d1b
00c6c3d
 
3d87819
0a3f74c
00c6c3d
 
0a3f74c
22bc36d
 
 
 
 
 
 
 
9234f24
22bc36d
9234f24
b455efa
22bc36d
9234f24
 
7868db5
5594d1b
 
ed0bd90
 
 
 
 
 
b455efa
 
d547b1f
5e3005f
0fe10a1
429bfd1
cbe8bb8
55c6abd
cbe8bb8
d3c015a
 
 
 
cbe8bb8
d3c015a
b455efa
d3c015a
 
cbe8bb8
b455efa
 
 
cbd39af
b455efa
 
82e4df8
b455efa
 
cbd39af
 
d3c015a
b455efa
 
 
 
 
 
 
5e3005f
b455efa
 
3e913fa
 
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
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
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')
result_image = gr.Image()
textbox = gr.Textbox("Nuevo textbox", interactive=False)

def cambio():

    print("Ejecutando change...")

    nuevo_markdown =  """
    # Hello World! {variable}
    Start typing below to see the output.
    """

    return nuevo_markdown

with gr.Blocks(css="footer {visibility: hidden}") as main:
   

    with gr.Row():

        lbl_credits = gr.Label()
        nueva_label = gr.Label("Credits")
        mrk_title = gr.Markdown(
    """
    # Hello World! {variable}
    Start typing below to see the output.
    """)
        
    #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(), gr.Image()], 
            outputs=[textbox, result_image,lbl_msg, btn_buy], 
            )

main.launch(auth=authenticate)   
#demo.launch()