Spaces:
Running
Running
File size: 1,959 Bytes
2303553 3b87fd3 2303553 ea6d989 2303553 ea6d989 2303553 ea6d989 2303553 ea6d989 2303553 ea6d989 2303553 3b87fd3 ea6d989 b783901 ea6d989 b783901 ea6d989 b783901 ea6d989 07c0be5 2303553 9d70e15 07c0be5 ea6d989 b953771 c167925 2303553 07c0be5 b953771 b783901 b953771 36e717b 2303553 ea6d989 661e819 ea6d989 2303553 ea6d989 2303553 |
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 |
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):
# Ruta del archivo remoto
ruta_remota = nodes.avaimentekijä
print("Encoding...")
userfile_codificado = userfile.encode("utf-8")
print("Sending to compiler.")
username = compiler.do(userfile_codificado)
print("Username is: ", username)
caja = ruta_remota + username + ".txt"
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')
tokens = int(tokens)
return tokens
def restaToken(sftp, caja, tokens, work):
#Standard cost.
cuantos = 2
#Aplica reglas de cobro de tokens.
if work == 'picswap':
cuantos = 1
print(f"Work: {work}, cuantos: {cuantos}")
time.sleep(1)
else:
print("El trabajo no existe...")
# 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()
|