Moibe commited on
Commit
640ac93
1 Parent(s): 493749a

Solving username persistance

Browse files
Files changed (2) hide show
  1. app.py +27 -22
  2. auth.py +47 -44
app.py CHANGED
@@ -11,22 +11,26 @@ import ast
11
  #Funciones
12
 
13
  #Función principal
14
- def perform(input1, input2):
15
-
16
- print("Estando en perform, la cantidad de tokens es: ", gr.State.tokens)
17
- print("Estando en perform, el usuario es: ", gr.State.usuario)
 
 
 
 
 
 
18
  #Revisaremos de nuevo:
19
- gr.State.tokens = sulkuPypi.getTokens(sulkuPypi.encripta(gr.State.usuario).decode("utf-8")) #Todo en una línea.
20
- print("Ahora tienes: ", gr.State.tokens)
21
 
22
  #Después autoriza.
23
  #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.
24
 
25
  autorizacion = sulkuPypi.authorize(gr.State.tokens, 'picswap')
26
  print("La autorización es: ", autorizacion)
27
-
28
- #info_window = ""
29
-
30
  if autorizacion is True:
31
 
32
  path = mass(input1,input2)
@@ -48,6 +52,10 @@ def perform(input1, input2):
48
  #Si el path NO tiene no-result, todo funcionó bien, por lo tanto debita.
49
  print("Se obtuvo un resultado, debitaremos.")
50
  #Y finalmente debita los tokens.
 
 
 
 
51
  gr.State.tokens = sulkuPypi.debitTokens(gr.State.capsule, "picswap")
52
  print(f"Y ahora tienes: {gr.State.tokens} tokens.")
53
  html_credits = tools.actualizar_creditos(gr.State.tokens)
@@ -64,11 +72,14 @@ def perform(input1, input2):
64
 
65
  return path, info_window, html_credits, btn_buy
66
 
67
- def display_tokens():
68
 
69
- print("Ejecutando display_tokens, tienes: ", gr.State.tokens)
70
- print("Ejecutando display_tokens, eres: ", gr.State.usuario)
 
71
  display = tools.actualizar_creditos(gr.State.tokens)
 
 
72
  return display
73
 
74
  #Inputs
@@ -76,7 +87,7 @@ source_image = gr.Image(label="Source")
76
  destination_image = gr.Image(label="Destination")
77
 
78
  #Outputs
79
- print("En éste momento estoy creando los outputs...")
80
  creditos = None
81
  result_image = gr.Image(label="Blend Result")
82
  txt_credits = gr.Textbox(label="Credits Available", value="", interactive=False)
@@ -84,19 +95,13 @@ html_credits = gr.HTML()
84
  lbl_console = gr.Label(label="AI Terminal Messages", value="AI Engine ready...", container=True)
85
  btn_buy = gr.Button("Buy More", visible=False, size='lg')
86
 
87
- #Gradio themes:
88
- # — gr.themes.Base()
89
- # — gr.themes.Default()
90
- # — gr.themes.Glass()
91
- # — gr.themes.Monochrome()
92
- # — gr.themes.Soft()
93
-
94
  #valor = gr.State.tokens
95
  valor = ""
96
 
97
  with gr.Blocks(theme=gr.themes.Base(), css="footer {visibility: hidden}") as main:
98
- #Constructor?
99
- usuario = gr.State.usuario()
 
100
  #Función, input, output
101
  main.load(display_tokens, None, html_credits)
102
 
 
11
  #Funciones
12
 
13
  #Función principal
14
+ def perform(input1, input2, request: gr.Request):
15
+
16
+ print("5.- Entré a Perform, checando persistencia...")
17
+ print("Estando en perform, la cantidad de tokens es (de gr.State): ", gr.State.tokens)
18
+ print("Estando en perform, el usuario es (de gr.State): ", gr.State.usuario)
19
+
20
+ #Probablemente a partir de aquí traeremos los datos con request y no con gr.State.
21
+
22
+ print("Y desde dentro de Perform, ésta es la impresión del request (de request):")
23
+ print(request.username)
24
  #Revisaremos de nuevo:
25
+ gr.State.tokens = sulkuPypi.getTokens(sulkuPypi.encripta(request.username).decode("utf-8")) #Todo en una línea.
26
+ print("Ahora tienes 555: ", gr.State.tokens)
27
 
28
  #Después autoriza.
29
  #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.
30
 
31
  autorizacion = sulkuPypi.authorize(gr.State.tokens, 'picswap')
32
  print("La autorización es: ", autorizacion)
33
+
 
 
34
  if autorizacion is True:
35
 
36
  path = mass(input1,input2)
 
52
  #Si el path NO tiene no-result, todo funcionó bien, por lo tanto debita.
53
  print("Se obtuvo un resultado, debitaremos.")
54
  #Y finalmente debita los tokens.
55
+ #IMPORTANTE: Tienes que reconstruir capsule ahora que ya se obtiene del request, sino, capsule sera un State para el uso...
56
+ #...de todos y es ahí donde radica el problema:
57
+ capsule = sulkuPypi.encripta(request.username).decode("utf-8") #decode es para quitarle el 'b
58
+ gr.State.capsule = capsule
59
  gr.State.tokens = sulkuPypi.debitTokens(gr.State.capsule, "picswap")
60
  print(f"Y ahora tienes: {gr.State.tokens} tokens.")
61
  html_credits = tools.actualizar_creditos(gr.State.tokens)
 
72
 
73
  return path, info_window, html_credits, btn_buy
74
 
75
+ def display_tokens(request: gr.Request):
76
 
77
+ print("182: Checando la persistencia de la información cada vez...")
78
+ print("Ejecutando display_tokens, tienes (de gr.State): ", gr.State.tokens)
79
+ print("Ejecutando display_tokens, eres (de gr.State): ", gr.State.usuario)
80
  display = tools.actualizar_creditos(gr.State.tokens)
81
+ print("Y ésta es la impresión del request (de request):")
82
+ print(request.username)
83
  return display
84
 
85
  #Inputs
 
87
  destination_image = gr.Image(label="Destination")
88
 
89
  #Outputs
90
+ print("1.- Entré en app.py...")
91
  creditos = None
92
  result_image = gr.Image(label="Blend Result")
93
  txt_credits = gr.Textbox(label="Credits Available", value="", interactive=False)
 
95
  lbl_console = gr.Label(label="AI Terminal Messages", value="AI Engine ready...", container=True)
96
  btn_buy = gr.Button("Buy More", visible=False, size='lg')
97
 
 
 
 
 
 
 
 
98
  #valor = gr.State.tokens
99
  valor = ""
100
 
101
  with gr.Blocks(theme=gr.themes.Base(), css="footer {visibility: hidden}") as main:
102
+
103
+ print("2.- Estoy imprimiendo desde blocks...")
104
+
105
  #Función, input, output
106
  main.load(display_tokens, None, html_credits)
107
 
auth.py CHANGED
@@ -1,45 +1,48 @@
1
- #from data import usuarios
2
- import gradio as gr
3
- import sulkuPypi
4
- import time
5
- import ast
6
-
7
- def authenticate(username, password):
8
-
9
- #Future: Obten el dict usuarios desde la API no localmente en ésta app.
10
- cadena_usuarios = sulkuPypi.getData()
11
-
12
- # Convertir la cadena en una lista de tuplas
13
- print("Ahora voy a convertir la cadena de usuarios en una lista: ")
14
- lista_usuarios = ast.literal_eval(cadena_usuarios)
15
-
16
-
17
- for u, p, f in lista_usuarios:
18
- #Si el usuario y la contraseña son correctas...
19
- if username == u and password == p:
20
- #Agrego el nombre del usuario al estado general.
21
- gr.State.usuario = username
22
- #Bienvenida al usuario...
23
- print("Welcome ", gr.State.usuario)
24
- if f == "new":
25
- print("Usuario Nuevo...")
26
- else:
27
- print("Usuario Normal...")
28
-
29
- #Capsule es el usuario encriptado que enviarás a la API de Sulku.
30
- #El encriptador ahora será parte de Sulku, porque es una herramienta que se requiere para...
31
- #...las comunicaciones con Sulku.
32
-
33
- capsule = sulkuPypi.encripta(gr.State.usuario).decode("utf-8") #decode es para quitarle el 'b
34
- gr.State.capsule = capsule
35
-
36
- #Checa cuantos tokens tiene ese usuario via la API de Sulku:
37
- gr.State.tokens = sulkuPypi.getTokens(capsule)
38
-
39
- print(f"Tienes: {gr.State.tokens} tokens. ")
40
- creditos = gr.State.tokens
41
- print(f"Ésta es la cantidad guardada en creditos: {creditos}")
42
-
43
- return True
44
- #Si no hubo coincidencia regresas un false.
 
 
 
45
  return False
 
1
+ #from data import usuarios
2
+ import gradio as gr
3
+ import sulkuPypi
4
+ import time
5
+ import ast
6
+
7
+ def authenticate(username, password, request: gr.Request) :
8
+
9
+ print("3.- Entré a authenticate...")
10
+
11
+ #Future: Obten el dict usuarios desde la API no localmente en ésta app.
12
+ cadena_usuarios = sulkuPypi.getData()
13
+
14
+ # Convertir la cadena en una lista de tuplas
15
+ print("Ahora voy a convertir la cadena de usuarios en una lista: ")
16
+ lista_usuarios = ast.literal_eval(cadena_usuarios)
17
+
18
+ for u, p, f in lista_usuarios:
19
+ #Si el usuario y la contraseña son correctas...
20
+ if username == u and password == p:
21
+ #Agrego el nombre del usuario al estado general.
22
+ gr.State.usuario = username
23
+ #Bienvenida al usuario...
24
+ print("Welcome 182:", gr.State.usuario)
25
+ if f == "new":
26
+ print("Usuario Nuevo...")
27
+ else:
28
+ print("Usuario Normal...")
29
+
30
+ #Capsule es el usuario encriptado que enviarás a la API de Sulku.
31
+ #El encriptador ahora será parte de Sulku, porque es una herramienta que se requiere para...
32
+ #...las comunicaciones con Sulku.
33
+
34
+ capsule = sulkuPypi.encripta(gr.State.usuario).decode("utf-8") #decode es para quitarle el 'b
35
+ gr.State.capsule = capsule
36
+
37
+ #Checa cuantos tokens tiene ese usuario via la API de Sulku:
38
+ #FUTURE: Checa si vale la pena guardar éstos estados.
39
+ gr.State.tokens = sulkuPypi.getTokens(capsule)
40
+
41
+ print(f"Tienes: {gr.State.tokens} tokens. ")
42
+ creditos = gr.State.tokens
43
+ print(f"Ésta es la cantidad guardada en creditos: {creditos}")
44
+
45
+ return True
46
+
47
+ #Si no hubo coincidencia regresas un false.
48
  return False