Spaces:
Running
Running
import ast | |
import tools | |
import avaimet | |
import globales | |
import nycklar.nodes as nodes | |
#Aqu铆 van las funciones principales, las que son llamadas directo por la API. | |
#Las que interactuan con el servidor est谩n en el m贸dulo avaimet. | |
#Y las herramientas adicionales est谩n en tools. | |
def getData(aplicacion): | |
sshListo, sftpListo = avaimet.conecta() | |
#dir_data = avaimet.obtenDireccionArchivo() #Coment茅 茅ste pq me estar铆a ahorrando 茅sta funci贸n as铆: | |
dir_data = nodes.users_data + aplicacion + globales.data | |
#Obtiene el json con los datos. | |
data = avaimet.obtenContenidoArchivo(sftpListo, dir_data) | |
#Cierra la conexi贸n. | |
avaimet.cierraConexion(sshListo, sftpListo) | |
return data | |
def getTokens(userfile, env): | |
#Genera conexi贸n inicial. | |
sshListo, sftpListo = avaimet.conecta() | |
#Obtiene la caja donde est谩 guardados los tokens. | |
caja = avaimet.obtenCaja(userfile, env) | |
#Obtiene los tokens que hay en esa caja. | |
tokens = avaimet.obtenTokens(sftpListo, caja) | |
#Cierra la conexi贸n. | |
avaimet.cierraConexion(sshListo, sftpListo) | |
return tokens | |
def authorize(tokens, work): | |
#print(f"Task received : {work}, type: {type(work)} ...") | |
##脡sta secci贸n se reutilizar谩 si en lugar de pasar el par谩metro token, se pasa el par谩metro userfile. | |
#Actualmente no lo pedimos porque es el developer el que pone la cantidad de tokens que el usuario tiene para... | |
#...evitar otra vuelta al server, por mayor certeza o seguridad se puede hacer esa ida. | |
#En un futuro incluso se pueden hacer los dos tipos de autorizaci贸n en dos endpoints distintos. O en un solo endpoint con... | |
#...las dos opciones. | |
#Genera conexi贸n inicial. | |
#sshListo, sftpListo = avaimet.conecta() | |
#Obtiene la caja donde est谩 guardados los tokens. | |
#caja = avaimet.obtenCaja(userfile) | |
#Obtiene los tokens que hay en esa caja. | |
#tokens = avaimet.obtenTokens(sftpListo, caja) | |
#True si autoriza o false si no autoriza. | |
result = avaimet.autoriza(tokens, work) | |
#Cierra la conexi贸n. | |
#avaimet.cierraConexion(sshListo, sftpListo) | |
return result | |
def debitTokens(userfile, work, env): | |
#Genera conexi贸n inicial. | |
sshListo, sftpListo = avaimet.conecta() | |
#Obtiene la caja donde est谩 guardados los tokens. | |
caja = avaimet.obtenCaja(userfile, env) | |
#Obtiene los tokens que hay en esa caja. | |
tokens = avaimet.obtenTokens(sftpListo, caja) | |
#Aplica las reglas de 茅sta app para debitar lo correspondiente. | |
resultado_debitado = avaimet.restaToken(sftpListo, caja, tokens, work) | |
#Cierra la conexi贸n. | |
avaimet.cierraConexion(sshListo, sftpListo) | |
return resultado_debitado | |
def getQuota(): | |
#Genera conexi贸n inicial. | |
sshListo, sftpListo = avaimet.conecta() | |
dir_quota = nodes.quota + globales.quota | |
#Obtiene el json con los datos. | |
data = avaimet.obtenContenidoArchivo(sftpListo, dir_quota) | |
#Cierra la conexi贸n. | |
avaimet.cierraConexion(sshListo, sftpListo) | |
return int(data) | |
def updateQuota(costo_proceso): | |
#Genera conexi贸n inicial. | |
sshListo, sftpListo = avaimet.conecta() | |
dir_quota = nodes.quota + globales.quota | |
#Obtiene el json con los datos. | |
quota_actual = avaimet.obtenContenidoArchivo(sftpListo, dir_quota) | |
#Aplica las reglas de 茅sta app para debitar lo correspondiente. | |
quota_modificada = avaimet.modificaQuota(sftpListo, dir_quota, quota_actual, costo_proceso) | |
#Cierra la conexi贸n. | |
avaimet.cierraConexion(sshListo, sftpListo) | |
return quota_modificada | |
def getUserNovelty(userfile, aplicacion): | |
usuario = tools.decompileUser(userfile) | |
#Genera conexi贸n inicial (general para cualquier funci贸n.) | |
sshListo, sftpListo = avaimet.conecta() | |
#Obtiene la caja donde est谩 guardados las flags de novelty. | |
#dir_data = avaimet.obtenDireccionArchivo(globales.novelty) | |
dir_data = nodes.users_data + aplicacion + globales.novelty | |
#Obtiene el json con los datos. | |
data = avaimet.obtenContenidoArchivo(sftpListo, dir_data) | |
# Convertir el string a una lista de tuplas utilizando ast.literal_eval() | |
lista_tuplas = ast.literal_eval(data) | |
tupla_encontrada = None # Inicializamos una variable para almacenar la tupla encontrada | |
avaimet.cierraConexion(sshListo, sftpListo) | |
#Future, 驴se puede acaso que se cierre el contenido y que haga la conversi贸n al mismo tiempo? (threads) | |
#Repasa todas las tuplas | |
for tupla in lista_tuplas: | |
if tupla[0] == usuario: | |
tupla_encontrada = tupla | |
break | |
if tupla_encontrada: | |
#print("Usuario encontrado:", tupla_encontrada) | |
novelty = tupla_encontrada[1] | |
return novelty | |
else: | |
print("No se encontr贸 ese usuario.") | |
return "no user" |