Moibe commited on
Commit
056e5d9
·
verified ·
1 Parent(s): ff0a897

Update sulkuPypi.py

Browse files
Files changed (1) hide show
  1. sulkuPypi.py +143 -144
sulkuPypi.py CHANGED
@@ -1,145 +1,144 @@
1
- import requests
2
- import time
3
- import nycklar.nodes as nodes
4
- from cryptography.fernet import Fernet
5
-
6
- #Sulkupypi será el que en un futuro se volverá un paquete de python que instalarás y en el futuro quizá comercializarás.
7
-
8
- base_url = "https://moibe-sulku-fastapi-docker.hf.space/"
9
- userfile = "gAAAAABmEZA4SLBC2YczouOrjIEi9WNCNGOIvyUcqBUnzxNsftXTdy54KaX9x8mAjFkABSI6FJrdZDQKk_5lpJOgJoMChxlniw=="
10
- #Ojo, cuando el userfile termina con símbolo igual y supongo que también si empieza, causa problemas, la solución, ...
11
- #... implementar más adelante desde ser agregar un caractér delimitador y despúes quitarlo, esto para evitar problemas...
12
- #... con el símbolo =, ? y &. Dicho problema solo sucede cuando lo recibe como query params no como path params.
13
- work = "picswap"
14
-
15
- #Todas son llamadas a la API, excepto encripta, que es una herramienta para prepara precisamente, ...
16
- #lo que le vas a enviar a la API.
17
- def encripta(username):
18
-
19
- print("Estoy en encripta y ésto recibí para trabajarlo: ", username)
20
-
21
- key = nodes.key
22
- fernet = Fernet(key)
23
-
24
- string_original = username
25
- string_encriptado = fernet.encrypt(string_original.encode("utf-8"))
26
- string_desencriptado = fernet.decrypt(string_encriptado).decode("utf-8")
27
-
28
- print("String original:", string_original)
29
- print("String encriptado:", string_encriptado)
30
- print("String desencriptado:", string_desencriptado)
31
-
32
- return string_encriptado
33
-
34
- def getData():
35
-
36
- method = "getData/"
37
-
38
- api_url = base_url + method
39
- response = requests.get(api_url)
40
-
41
- if response.status_code == 200:
42
- print("Conexión a Sulku successful...")
43
- data = response.json()
44
- #IMPORTANTE: Aquí se obtuvo la lista completa de accesos.
45
- #Future, se puede optimizar eso en cuanto a seguridad?
46
- else:
47
- print("Error al obtener el elemento todo:", response.status_code)
48
-
49
- return data
50
-
51
- def getFlag(userfile):
52
-
53
- method = "getUserFlag/"
54
- params = userfile
55
-
56
- api_url = base_url + method + params
57
- print("Usando la api_url: ", api_url)
58
- response = requests.get(api_url)
59
-
60
- if response.status_code == 200:
61
- print("Conexión a Sulku successful...")
62
- flag = response.json()
63
-
64
- print("Esto es la flag obtenida: ", flag)
65
-
66
- else:
67
- print("182: Error al obtener el elemento todo:", response.status_code)
68
-
69
- return flag
70
-
71
- def getTokens(userfile):
72
-
73
- method = "getTokens/"
74
- params = userfile
75
-
76
- api_url = base_url + method + params
77
- print("En getTokens la api_url que estoy usando es: ", api_url)
78
- response = requests.get(api_url)
79
-
80
- if response.status_code == 200:
81
- print("Conexión a Sulku successful...")
82
- tokens = response.json()
83
- print("Tokens:", tokens)
84
- else:
85
- print("Error al obtener el elemento todo:", response.status_code)
86
-
87
- return tokens
88
-
89
- def authorize(tokens, work):
90
-
91
- method = "authorize/"
92
- params = str(tokens) + "/" + work
93
-
94
- api_url = base_url + method + params
95
- response = requests.get(api_url)
96
-
97
- if response.status_code == 200:
98
- print("Conexión a Sulku successful...")
99
- autorizacion = response.json()
100
- print("Autorización:", autorizacion)
101
- else:
102
- print("Error al obtener el elemento todo:", response.status_code)
103
-
104
- return autorizacion
105
-
106
- def debitTokens(userfile, work):
107
-
108
- method = "debitTokens/"
109
- params = userfile + "/" + work
110
-
111
- api_url = base_url + method + params
112
- response = requests.get(api_url)
113
-
114
- if response.status_code == 200:
115
- print("Conexión a Sulku successful...")
116
- tokens = response.json()
117
- print("Tokens:", tokens)
118
- else:
119
- print("Error al obtener el elemento todo:", response.status_code)
120
-
121
- return tokens
122
-
123
- def debitTokensQ(userfile, work):
124
-
125
- #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...
126
- #... clima por ejemplo.)
127
- method = "debitTokens?"
128
- params = "userfile=" + userfile + "&" + "work=" + work
129
-
130
- api_url = base_url + method + params
131
- response = requests.get(api_url)
132
-
133
- if response.status_code == 200:
134
- print("Conexión a Sulku successful...")
135
- tokens = response.json()
136
- print("Tokens:", tokens)
137
- else:
138
- print("Error al obtener el elemento todo:", response.status_code)
139
-
140
- return tokens
141
-
142
- if __name__ == "__main__":
143
- getTokens(userfile)
144
- authorize(18,'picswap')
145
  debitTokens(userfile, work)
 
1
+ import requests
2
+ import time
3
+ import nycklar.nodes as nodes
4
+ from cryptography.fernet import Fernet
5
+
6
+ #Sulkupypi será el que en un futuro se volverá un paquete de python que instalarás y en el futuro quizá comercializarás.
7
+
8
+ base_url = "https://moibe-sulku-fastapi-docker.hf.space/"
9
+ userfile = "gAAAAABmEZA4SLBC2YczouOrjIEi9WNCNGOIvyUcqBUnzxNsftXTdy54KaX9x8mAjFkABSI6FJrdZDQKk_5lpJOgJoMChxlniw=="
10
+ #Ojo, cuando el userfile termina con símbolo igual y supongo que también si empieza, causa problemas, la solución, ...
11
+ #... implementar más adelante desde ser agregar un caractér delimitador y despúes quitarlo, esto para evitar problemas...
12
+ #... con el símbolo =, ? y &. Dicho problema solo sucede cuando lo recibe como query params no como path params.
13
+ work = "picswap"
14
+
15
+ #Todas son llamadas a la API, excepto encripta, que es una herramienta para prepara precisamente, ...
16
+ #lo que le vas a enviar a la API.
17
+ def encripta(username):
18
+
19
+ print("Estoy en encripta y ésto recibí para trabajarlo: ", username)
20
+
21
+ key = nodes.key
22
+ fernet = Fernet(key)
23
+
24
+ string_original = username
25
+ string_encriptado = fernet.encrypt(string_original.encode("utf-8"))
26
+ string_desencriptado = fernet.decrypt(string_encriptado).decode("utf-8")
27
+ print("String original:", string_original)
28
+ print("String encriptado:", string_encriptado)
29
+ print("String desencriptado:", string_desencriptado)
30
+
31
+ return string_encriptado
32
+
33
+ def getData():
34
+
35
+ method = "getData/"
36
+
37
+ api_url = base_url + method
38
+ response = requests.get(api_url)
39
+
40
+ if response.status_code == 200:
41
+ print("Conexión a Sulku successful...")
42
+ data = response.json()
43
+ #IMPORTANTE: Aquí se obtuvo la lista completa de accesos.
44
+ #Future, se puede optimizar eso en cuanto a seguridad?
45
+ else:
46
+ print("Error al obtener el elemento todo:", response.status_code)
47
+
48
+ return data
49
+
50
+ def getFlag(userfile):
51
+
52
+ method = "getUserFlag/"
53
+ params = userfile
54
+
55
+ api_url = base_url + method + params
56
+ print("Usando la api_url: ", api_url)
57
+ response = requests.get(api_url)
58
+
59
+ if response.status_code == 200:
60
+ print("Conexión a Sulku successful...")
61
+ flag = response.json()
62
+
63
+ print("Esto es la flag obtenida: ", flag)
64
+
65
+ else:
66
+ print("182: Error al obtener el elemento todo:", response.status_code)
67
+
68
+ return flag
69
+
70
+ def getTokens(userfile):
71
+
72
+ method = "getTokens/"
73
+ params = userfile
74
+
75
+ api_url = base_url + method + params
76
+ print("En getTokens la api_url que estoy usando es: ", api_url)
77
+ response = requests.get(api_url)
78
+
79
+ if response.status_code == 200:
80
+ print("Conexión a Sulku successful...")
81
+ tokens = response.json()
82
+ print("Tokens:", tokens)
83
+ else:
84
+ print("Error al obtener el elemento todo:", response.status_code)
85
+
86
+ return tokens
87
+
88
+ def authorize(tokens, work):
89
+
90
+ method = "authorize/"
91
+ params = str(tokens) + "/" + work
92
+
93
+ api_url = base_url + method + params
94
+ response = requests.get(api_url)
95
+
96
+ if response.status_code == 200:
97
+ print("Conexión a Sulku successful...")
98
+ autorizacion = response.json()
99
+ print("Autorización:", autorizacion)
100
+ else:
101
+ print("Error al obtener el elemento todo:", response.status_code)
102
+
103
+ return autorizacion
104
+
105
+ def debitTokens(userfile, work):
106
+
107
+ method = "debitTokens/"
108
+ params = userfile + "/" + work
109
+
110
+ api_url = base_url + method + params
111
+ response = requests.get(api_url)
112
+
113
+ if response.status_code == 200:
114
+ print("Conexión a Sulku successful...")
115
+ tokens = response.json()
116
+ print("Tokens:", tokens)
117
+ else:
118
+ print("Error al obtener el elemento todo:", response.status_code)
119
+
120
+ return tokens
121
+
122
+ def debitTokensQ(userfile, work):
123
+
124
+ #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...
125
+ #... clima por ejemplo.)
126
+ method = "debitTokens?"
127
+ params = "userfile=" + userfile + "&" + "work=" + work
128
+
129
+ api_url = base_url + method + params
130
+ response = requests.get(api_url)
131
+
132
+ if response.status_code == 200:
133
+ print("Conexión a Sulku successful...")
134
+ tokens = response.json()
135
+ print("Tokens:", tokens)
136
+ else:
137
+ print("Error al obtener el elemento todo:", response.status_code)
138
+
139
+ return tokens
140
+
141
+ if __name__ == "__main__":
142
+ getTokens(userfile)
143
+ authorize(18,'picswap')
 
144
  debitTokens(userfile, work)