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()