Spaces:
Build error
Build 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) |