File size: 1,970 Bytes
629fd46
 
 
cfb5a4a
629fd46
 
75c509f
629fd46
75c509f
629fd46
 
 
 
 
75c509f
 
 
 
629fd46
75c509f
629fd46
75c509f
629fd46
 
cfb5a4a
75c509f
 
aabe6fb
 
75c509f
aabe6fb
75c509f
aabe6fb
75c509f
 
 
 
 
 
 
 
3babe14
629fd46
72e54ff
 
3babe14
75c509f
c938d6e
 
 
20a610c
629fd46
3babe14
c938d6e
 
f61e502
aabe6fb
c938d6e
f61e502
629fd46
75c509f
6958ecb
75c509f
 
 
 
 
 
 
629fd46
 
 
75c509f
 
 
 
629fd46
f61e502
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
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}, tokens cost: {cuantos}")
    time.sleep(1)
  else:
    print("The work specified doesn't exists.")

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