Spaces:
Runtime error
Runtime error
import requests | |
import time | |
import nycklar.nodes as nodes | |
from cryptography.fernet import Fernet | |
#Sulkupypi será el que en un futuro se volverá un paquete de python que instalarás y en el futuro quizá comercializarás. | |
base_url = "https://moibe-sulku-fastapi-docker.hf.space/" | |
userfile = "gAAAAABmEZA4SLBC2YczouOrjIEi9WNCNGOIvyUcqBUnzxNsftXTdy54KaX9x8mAjFkABSI6FJrdZDQKk_5lpJOgJoMChxlniw==" | |
#Ojo, cuando el userfile termina con símbolo igual y supongo que también si empieza, causa problemas, la solución, ... | |
#... implementar más adelante desde ser agregar un caractér delimitador y despúes quitarlo, esto para evitar problemas... | |
#... con el símbolo =, ? y &. Dicho problema solo sucede cuando lo recibe como query params no como path params. | |
work = "picswap" | |
#Todas son llamadas a la API, excepto encripta, que es una herramienta para prepara precisamente, ... | |
#lo que le vas a enviar a la API. | |
def encripta(username): | |
print("Estoy en encripta y ésto recibí para trabajarlo: ", username) | |
key = nodes.key | |
fernet = Fernet(key) | |
string_original = username | |
string_encriptado = fernet.encrypt(string_original.encode("utf-8")) | |
string_desencriptado = fernet.decrypt(string_encriptado).decode("utf-8") | |
print("String original:", string_original) | |
print("String encriptado:", string_encriptado) | |
print("String desencriptado:", string_desencriptado) | |
return string_encriptado | |
def getData(): | |
method = "getData/" | |
api_url = base_url + method | |
response = requests.get(api_url) | |
if response.status_code == 200: | |
print("Conexión a Sulku successful...") | |
data = response.json() | |
#IMPORTANTE: Aquí se obtuvo la lista completa de accesos. | |
#Future, se puede optimizar eso en cuanto a seguridad? | |
else: | |
print("Error al obtener el elemento todo:", response.status_code) | |
return data | |
def getFlag(userfile): | |
method = "getUserFlag/" | |
params = userfile | |
api_url = base_url + method + params | |
print("Usando la api_url: ", api_url) | |
response = requests.get(api_url) | |
if response.status_code == 200: | |
print("Conexión a Sulku successful...") | |
flag = response.json() | |
print("Esto es la flag obtenida: ", flag) | |
else: | |
print("182: Error al obtener el elemento todo:", response.status_code) | |
return flag | |
def getTokens(userfile): | |
method = "getTokens/" | |
params = userfile | |
api_url = base_url + method + params | |
print("En getTokens la api_url que estoy usando es: ", api_url) | |
response = requests.get(api_url) | |
if response.status_code == 200: | |
print("Conexión a Sulku successful...") | |
tokens = response.json() | |
print("Tokens:", tokens) | |
else: | |
print("Error al obtener el elemento todo:", response.status_code) | |
return tokens | |
def authorize(tokens, work): | |
method = "authorize/" | |
params = str(tokens) + "/" + work | |
api_url = base_url + method + params | |
response = requests.get(api_url) | |
if response.status_code == 200: | |
print("Conexión a Sulku successful...") | |
autorizacion = response.json() | |
print("Autorización:", autorizacion) | |
else: | |
print("Error al obtener el elemento todo:", response.status_code) | |
return autorizacion | |
def debitTokens(userfile, work): | |
method = "debitTokens/" | |
params = userfile + "/" + work | |
api_url = base_url + method + params | |
response = requests.get(api_url) | |
if response.status_code == 200: | |
print("Conexión a Sulku successful...") | |
tokens = response.json() | |
print("Tokens:", tokens) | |
else: | |
print("Error al obtener el elemento todo:", response.status_code) | |
return tokens | |
def debitTokensQ(userfile, work): | |
#debitTokens pero con QueryParams, (los query params sirve para ocasiones en los que usas dos de un mismo query param para abtener el resultado de un AND o rangos como... | |
#... clima por ejemplo.) | |
method = "debitTokens?" | |
params = "userfile=" + userfile + "&" + "work=" + work | |
api_url = base_url + method + params | |
response = requests.get(api_url) | |
if response.status_code == 200: | |
print("Conexión a Sulku successful...") | |
tokens = response.json() | |
print("Tokens:", tokens) | |
else: | |
print("Error al obtener el elemento todo:", response.status_code) | |
return tokens | |
if __name__ == "__main__": | |
getTokens(userfile) | |
authorize(18,'picswap') | |
debitTokens(userfile, work) |