File size: 4,658 Bytes
6df8572
 
 
 
 
 
 
 
37cc54c
6df8572
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
0cb4517
6df8572
 
 
 
 
 
 
e51b03a
6df8572
9cf886b
6df8572
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9cf886b
6df8572
4a98800
c95ae24
 
 
 
 
 
6df8572
c95ae24
 
 
6df8572
c95ae24
6df8572
 
 
9da0de8
 
 
 
 
 
 
fd9a123
6f62fc6
8bcf406
0d2bada
4a98800
6df8572
 
 
 
 
 
 
 
c6c6903
7a36360
0f8f469
3bdcdd9
6df8572
55f43c5
 
 
 
 
 
6df8572
 
 
 
 
 
9da0de8
9cf886b
6df8572
 
3bdcdd9
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
137
138
139
140
141
142
143
import gradio as gr
import sulkuPypi
from funciones import mass
from data import usuarios
import encrypter
import time
import nycklar.nodes

#Funciones
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 = ""

    #Después ejecuta la masa.
    if autorizacion is True: 
    
        path = mass(input1,input2)

    else:
        info_window = "Out of credits..."
        path = 'no-result.png'
        return 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 path, info_window, btn_buy

def click_buy():

    print("Ejecutando change...")

    nuevo_markdown =  """
    
    """

    return nuevo_markdown

#LOCAL VARIABLES
# 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


#Inputs
source_image = gr.Image(label="Source")
destination_image = gr.Image(label="Destination")

#Outputs
result_image = gr.Image(label="Blend Result")
#txt_console = gr.Textbox(label="Console", value="AI Engine Ready...", interactive=False)
lbl_console = gr.Label(label="AI Terminal Messages", value="AI Engine ready...", container=True)
btn_buy = gr.Button("Buy More", visible=True, size='lg')
#btn_buy.click(fn=click_buy, outputs=mrk_title)

#Gradio themes: 
# — gr.themes.Base()
# — gr.themes.Default()
# — gr.themes.Glass()
# — gr.themes.Monochrome()
# — gr.themes.Soft()

#valor = gr.State.tokens
valor = "205"

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

    with gr.Row():        
        gr.Label(visible=True, scale=5)
        lbl_credits = gr.Label(label="Credits Available", value=valor, scale=1)
    with gr.Row():        
        gr.Label(visible=True, scale=5)
        lbl_credits = gr.Label(label="Credits Available", value=valor, scale=1)         

    with gr.Row():

        demo = gr.Interface(
            fn=perform,
            title="", 
            inputs=[source_image, destination_image], 
            outputs=[result_image, lbl_console, btn_buy], 
            )

main.launch(auth=authenticate)