Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 19 additions & 0 deletions python/Modulo-11-Herramientas-Nerve/101-cli-start/mi_reto.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
import time
from nerve import NexusClient

# Se conecta a la red con el nombre "estudiante_curioso"
emisor = NexusClient()

try:
emisor.connect("estudiante_curioso")

# Utilizar un bucle while para enviar 10 mensajes
i = 1
while i <= 10:
mensaje = {"mensaje": "Hola Hub", "numero_de_intento": i}
emisor.send("servidor_central", mensaje)
time.sleep(2)
i += 1

except ConnectionRefusedError:
pass
19 changes: 19 additions & 0 deletions python/Modulo-11-Herramientas-Nerve/101-cli-start/reto.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
import time
from nerve import NexusClient

# Se conecta a la red con el nombre "estudiante_curioso"
emisor = NexusClient()

try:
emisor.connect("estudiante_curioso")

# Utilizar un bucle while para enviar 10 mensajes
i = 1
while i <= 10:
mensaje = {"mensaje": "Hola Hub", "numero_de_intento": i}
emisor.send("servidor_central", mensaje)
time.sleep(2)
i += 1

except ConnectionRefusedError:
pass
14 changes: 14 additions & 0 deletions python/Modulo-11-Herramientas-Nerve/102-cli-monitor/mi_trafico.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
import time
from nerve import NexusClient

# Conectarse a Nerve bajo el nombre "robot_mascota"
robot = NexusClient()
robot.connect("robot_mascota")

# Bucle for que envíe 10,000 mensajes sin parar al destino "caja_de_arena"
for i in range(10000):
paquete = {"ping": 1}
robot.send("caja_de_arena", paquete)

# Una vez termine el bucle de 10,000, dormir por 15 segundos
time.sleep(15)
14 changes: 14 additions & 0 deletions python/Modulo-11-Herramientas-Nerve/102-cli-monitor/reto.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
import time
from nerve import NexusClient

# Conectarse a Nerve bajo el nombre "robot_mascota"
robot = NexusClient()
robot.connect("robot_mascota")

# Bucle for que envíe 10,000 mensajes sin parar al destino "caja_de_arena"
for i in range(10000):
paquete = {"ping": 1}
robot.send("caja_de_arena", paquete)

# Una vez termine el bucle de 10,000, dormir por 15 segundos
time.sleep(15)
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
from nerve import NexusClient

# Crear un cliente Nerve (lee nerve.config automáticamente)
cliente = NexusClient()
cliente.connect("caja_fuerte")

# Enviar mensaje a yo_mismo
cliente.send("yo_mismo", {"mensaje": "¡Llegamos a la nueva casa!"})
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"port": 11111,
"host": "127.0.0.1"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
from nerve import NexusClient

# Crear un cliente Nerve (lee nerve.config automáticamente)
cliente = NexusClient()
cliente.connect("caja_fuerte")

# Enviar mensaje a yo_mismo
cliente.send("yo_mismo", {"mensaje": "¡Llegamos a la nueva casa!"})
20 changes: 20 additions & 0 deletions python/Modulo-11-Herramientas-Nerve/104-cli-bridge/reto.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
import time
from nerve import NexusClient

# 2. Crea una instancia de NexusClient llamada trabajador
trabajador = NexusClient()

# 3. Conecta al trabajador a la red de Nerve bajo el nombre "procesador_web"
trabajador.connect("procesador_web")

# 4. Define una función callback llamada procesar_datos
def procesar_datos(datos):
print("¡Mensaje recibido del puente web!")
print(f"Contenido: {datos}")

# 5. Registra el callback
trabajador.listen(procesar_datos)

# 6. Crea un bucle infinito
while True:
time.sleep(1)
27 changes: 27 additions & 0 deletions python/Modulo-11-Herramientas-Nerve/105-empaquetado-basico/reto.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
import os

print("Preparando la misión...")
# 1. Crear carpeta mision
os.makedirs("mision", exist_ok=True)

# 2. Crear coordenadas.txt con el texto "Latitud 40, Longitud -3"
with open("mision/coordenadas.txt", "w") as f:
f.write("Latitud 40, Longitud -3")

print("Carpeta creada.")

# 3. Empacar con Nerve usando la clave "agente007"
print("Empacando con Nerve...")
clave = "agente007"
origen = "mision"
caja_fuerte = "paquete_seguro.nrv"
comando_pack = f'NERVE_NRV_PASSWORD="{clave}" nerve pack {origen} {caja_fuerte}'
os.system(comando_pack)

# 4. Desempacar en la base base_aliada
print("Desempacando en la base...")
destino = "base_aliada"
comando_unpack = f'NERVE_NRV_PASSWORD="{clave}" nerve unpack {caja_fuerte} {destino}'
os.system(comando_unpack)

print("Misión completada.")
10 changes: 10 additions & 0 deletions python/Modulo-11-Herramientas-Nerve/106-criptografia-nrv/reto.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import os

print("¡Bienvenido a la Forja de Llaves!")
print("Generando llave de símbolos...")
os.system("nerve genpass --mode random")

print("--------------------------------")

print("Generando frase secreta fácil de recordar...")
os.system("nerve genpass --mode passphrase")
32 changes: 32 additions & 0 deletions python/Modulo-11-Herramientas-Nerve/107-desempaquetado-nrv/reto.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
import os

print("Preparando tu regalo...")
# 1. Crear carpeta regalo
os.makedirs("regalo", exist_ok=True)

# 2. Crear mensaje.txt
with open("regalo/mensaje.txt", "w") as f:
f.write("¡Feliz Cumpleaños!")

# 3. Empacar con nerve
clave = "pastel"
os.system(f'NERVE_NRV_PASSWORD="{clave}" nerve pack regalo regalo_seguro.nrv')

print("¡Regalo envuelto en regalo_seguro.nrv!")

# 4. Borrar la carpeta original regalo
os.system("rm -rf regalo")

# 5. Imprimir mensaje
print("Amigo, ¡es hora de abrir tu regalo! Por favor escribe la contraseña.")

# 6. nerve open regalo_seguro.nrv (pedira la clave interactivamente)
os.system("nerve open regalo_seguro.nrv")

print("¡Felicidades, regalo abierto!")

# 7. Desasociar
print("Limpiando configuración (desasociando)...")
os.system("nerve unassociate")

print("Terminado.")
10 changes: 10 additions & 0 deletions python/Modulo-11-Herramientas-Nerve/108-interfaz-nrv/reto.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import os

print("Iniciando Centro de Comando Local...")
print("Para salir de este modo y volver a casa, presione Ctrl + C")

# Ejecutar el comando nerve monitor
os.system("nerve monitor")

# Línea final impresa tras salir con Ctrl + C
print("Centro de comando cerrado. Buen trabajo.")
39 changes: 39 additions & 0 deletions python/Modulo-11-Herramientas-Nerve/109-generacion-pass/reto.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
import os
import re

print("Iniciando fábrica...")

# 1. Atrapamos el output de nerve genpass --mode random
output = os.popen("nerve genpass --mode random").read().strip()

# Removemos códigos de escape ANSI
ansi_escape = re.compile(r'\x1B(?:[@-Z\\-_]|\[[0-?]*[ -/]*[@-~])')
clean_output = ansi_escape.sub('', output)

# Extraemos la contraseña limpia
llave = ""
for line in clean_output.split("\n"):
if line.startswith("Password:"):
llave = line.split(":", 1)[1].strip()
break

# 2. Imprimirla en pantalla
print(f"La llave de hoy es: {llave}")

# 3. Crear carpeta produccion y poner un archivo adentro
os.system("mkdir -p produccion")
os.system("echo 'Contenido de produccion' > produccion/reporte.txt")
print("Carpeta creada.")

# Configuramos la variable de entorno de forma segura en Python
os.environ["NERVE_NRV_PASSWORD"] = llave

# 4. Empacar la carpeta produccion en producto_final.nrv
print("Empacando producto...")
os.system("nerve pack produccion producto_final.nrv")

# 5. Desempaca en control_calidad
print("Desempacando para control de calidad...")
os.system("nerve unpack producto_final.nrv control_calidad")

print("¡Todo funciona perfectamente!")
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
import os

print("--- Iniciando el Desinstalador ---")
print("Eliminando configuración de Nerve...")

# Ejecutar nerve unassociate
os.system("nerve unassociate")

# Borrar el archivo de prueba si existe
os.system("rm -f mi_caja_fuerte_de_prueba.nrv")

print("¡Limpieza completada! Gracias por usar nuestro software.")
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
import os

print("--- Iniciando el Desinstalador ---")
print("Eliminando configuración de Nerve...")

# Ejecutar nerve unassociate
os.system("nerve unassociate")

# Borrar el archivo de prueba si existe
os.system("rm -f mi_caja_fuerte_de_prueba.nrv")

print("¡Limpieza completada! Gracias por usar nuestro software.")
Loading