import os import time import paramiko import compiler import nycklar.nodes as nodes def conecta(): #Digital Signature. ssh = paramiko.SSHClient() ssh.load_host_keys("nycklar/itrst") #Ahora obtendremos nuestra secret key para poder entrar a ese servidor. project_dir = os.getcwd() key_filename = os.path.join(project_dir, "nycklar", "go") ssh.connect(nodes.realm, username=nodes.master, key_filename=key_filename) sftp = ssh.open_sftp() return ssh, sftp def obtenCaja(userfile): print("Esto es userfile de obtenCaja: ", userfile) time.sleep(9) # Ruta del archivo remoto ruta_remota = nodes.avaimentekijä print("Encoding...") userfile_codificado = userfile.encode("utf-8") print(f"El userfile sin la b, se decodifica y queda: {userfile_codificado} y es del tipo {type(userfile_codificado)} ...") time.sleep(3) print("Estoy afuera, enviando al compiler.") username = compiler.do(userfile_codificado) print("Username es: ", username) caja = ruta_remota + username + ".txt" print("Éste es el archivo remoto: ", caja) return caja def obtenTokens(sftp, caja): with sftp.open(caja, 'rb') as archivo: # Leer el contenido del archivo como bytes contenido_bytes = archivo.read() # Decodificar los bytes a Unicode usando la codificación UTF-8 tokens = contenido_bytes.decode('utf-8') return tokens def restaToken(sftp, caja, tokens, cuantos): #Aplica reglas de cobro de tokens. # Agregar el texto "- Revisado." al string contenido_final = int(tokens) - cuantos contenido_final = str(contenido_final) # Imprimir el contenido print(contenido_final) #Actualiza el nuevo valor en el servidor en modo escritura. with sftp.open(caja, 'w') as archivo: # Escribir el contenido final en el archivo archivo.write(contenido_final) return contenido_final def cierraConexion(ssh, sftp ): sftp.close() ssh.close()