Compare commits
No commits in common. "ec29b5cde0dec32d78a948bf54665143ec3ed631" and "818ec9177191320e2fe6a8ee36ca9280c310af07" have entirely different histories.
ec29b5cde0
...
818ec91771
@ -1,17 +0,0 @@
|
|||||||
#!/usr/bin/env python3
|
|
||||||
"""
|
|
||||||
Validar correo con regex
|
|
||||||
"""
|
|
||||||
|
|
||||||
import re
|
|
||||||
|
|
||||||
def validar_correo(correo):
|
|
||||||
|
|
||||||
patron = r"\b[A-Za-z0-9._+-]+@[A-Za-z0-9]+\.[A-Za-z]{2,}\b"
|
|
||||||
|
|
||||||
if re.findall(patron, correo):
|
|
||||||
return True
|
|
||||||
|
|
||||||
return False
|
|
||||||
|
|
||||||
print(validar_correo("invent@hacko.io"))
|
|
@ -1,74 +0,0 @@
|
|||||||
#!/usr/bin/env python3
|
|
||||||
|
|
||||||
import pickle
|
|
||||||
from notas import Nota
|
|
||||||
|
|
||||||
|
|
||||||
class GestorNotas:
|
|
||||||
|
|
||||||
def __init__(self, archivo_notas='notas.pkl'):
|
|
||||||
|
|
||||||
self.archivo_notas = archivo_notas
|
|
||||||
|
|
||||||
try:
|
|
||||||
|
|
||||||
with open(self.archivo_notas, 'rb') as f:
|
|
||||||
|
|
||||||
self.notas = pickle.load(f)
|
|
||||||
|
|
||||||
except FileNotFoundError:
|
|
||||||
|
|
||||||
self.notas = []
|
|
||||||
|
|
||||||
def guardar_notas(self):
|
|
||||||
|
|
||||||
with open(self.archivo_notas, 'wb') as f:
|
|
||||||
pickle.dump(self.notas, f)
|
|
||||||
|
|
||||||
def agregar_nota(self, titulo, contenido):
|
|
||||||
|
|
||||||
self.notas.append(Nota(titulo, contenido))
|
|
||||||
self.guardar_notas()
|
|
||||||
|
|
||||||
def leer_notas(self):
|
|
||||||
for i, nota in enumerate(self.notas):
|
|
||||||
print(f"- NOTA {i+1}: {nota}")
|
|
||||||
|
|
||||||
def buscar_nota(self, texto_busqueda):
|
|
||||||
|
|
||||||
notas_encontradas = []
|
|
||||||
|
|
||||||
for nota in self.notas:
|
|
||||||
|
|
||||||
if texto_busqueda in nota.titulo or texto_busqueda in nota.contenido:
|
|
||||||
|
|
||||||
notas_encontradas.append(nota)
|
|
||||||
|
|
||||||
if notas_encontradas:
|
|
||||||
|
|
||||||
print(f"\n[i] Resultado de la búsqueda\n")
|
|
||||||
|
|
||||||
for i, nota in enumerate(notas_encontradas):
|
|
||||||
|
|
||||||
print(f"- RESULTADO {i+1}: {nota}")
|
|
||||||
|
|
||||||
notas_encontradas.clear()
|
|
||||||
|
|
||||||
else:
|
|
||||||
|
|
||||||
print(f"\n[!] No se encontraron resultados\n")
|
|
||||||
|
|
||||||
def eliminar_nota(self, index):
|
|
||||||
|
|
||||||
# if index >= 1 or index <= len(self.notas):
|
|
||||||
|
|
||||||
try:
|
|
||||||
index_a_borrar = int(index - 1)
|
|
||||||
print(
|
|
||||||
f"\n[+] Eliminando nota {index}: {self.notas[index_a_borrar]}")
|
|
||||||
del self.notas[index_a_borrar]
|
|
||||||
self.guardar_notas()
|
|
||||||
|
|
||||||
except IndexError:
|
|
||||||
|
|
||||||
print(f"\n[!] Error: No existe la nota\n")
|
|
@ -1,60 +0,0 @@
|
|||||||
#!/usr/bin/env python3
|
|
||||||
|
|
||||||
import os
|
|
||||||
from gestor_notas import GestorNotas
|
|
||||||
|
|
||||||
|
|
||||||
def main():
|
|
||||||
|
|
||||||
gestor = GestorNotas()
|
|
||||||
|
|
||||||
while True:
|
|
||||||
|
|
||||||
os.system('cls' if os.name == 'nt' else 'clear')
|
|
||||||
|
|
||||||
print(f"---------------\nMENÚ PRINCIPAL\n---------------")
|
|
||||||
print(f"1. Crear nota")
|
|
||||||
print(f"2. Leer todas las notas")
|
|
||||||
print(f"3. Buscar por una nota")
|
|
||||||
print(f"4. Eliminar una nota")
|
|
||||||
print(f"5. Salir")
|
|
||||||
|
|
||||||
opcion = input("\n Elige una opción: ")
|
|
||||||
|
|
||||||
if opcion == "1":
|
|
||||||
print(f"\n[+] Crear nota\n")
|
|
||||||
titulo = input("Título: ")
|
|
||||||
contenido = input("Contenido: ")
|
|
||||||
gestor.agregar_nota(titulo, contenido)
|
|
||||||
|
|
||||||
elif opcion == "2":
|
|
||||||
print(f"\n[i] Mostrando todas las notas\n")
|
|
||||||
notas = gestor.leer_notas()
|
|
||||||
|
|
||||||
elif opcion == "3":
|
|
||||||
texto_busqueda = input(" Ingresa texto a buscar: ")
|
|
||||||
nota = gestor.buscar_nota(texto_busqueda)
|
|
||||||
|
|
||||||
elif opcion == "4":
|
|
||||||
|
|
||||||
try:
|
|
||||||
|
|
||||||
index = int(input(" Introducir índice de la nota a eliminar: "))
|
|
||||||
gestor.eliminar_nota(index)
|
|
||||||
|
|
||||||
except ValueError:
|
|
||||||
|
|
||||||
print(f"\n[!] Error: Opción no válida.\n")
|
|
||||||
|
|
||||||
elif opcion == "5":
|
|
||||||
print(f"\n[!] Saliendo... ¡Hasta pronto!\n")
|
|
||||||
break
|
|
||||||
|
|
||||||
else:
|
|
||||||
print(f"\n[!] Error: Opción no válida\n")
|
|
||||||
|
|
||||||
input(f"\n[+] Pulsa <ENTER> para continuar...\n")
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
main()
|
|
Binary file not shown.
@ -1,13 +0,0 @@
|
|||||||
#!/usr/bin/env python3
|
|
||||||
|
|
||||||
class Nota:
|
|
||||||
|
|
||||||
def __init__(self, titulo, contenido):
|
|
||||||
self.titulo = titulo
|
|
||||||
self.contenido = contenido
|
|
||||||
|
|
||||||
def __str__(self):
|
|
||||||
return f"""
|
|
||||||
Título: {self.titulo.upper()}
|
|
||||||
{self.contenido}
|
|
||||||
"""
|
|
@ -1,23 +0,0 @@
|
|||||||
#!/usr/bin/env python3
|
|
||||||
"""
|
|
||||||
Client socket
|
|
||||||
|
|
||||||
Con errores. 02_socket es la versión corregida.
|
|
||||||
"""
|
|
||||||
|
|
||||||
import socket
|
|
||||||
|
|
||||||
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
|
||||||
server_address = ('localhost', 1234)
|
|
||||||
client_socket.connect(server_address)
|
|
||||||
|
|
||||||
try:
|
|
||||||
|
|
||||||
message = b"Ola k ase servidor"
|
|
||||||
client_socket.sendall(message)
|
|
||||||
data = client_socket.recv(1024)
|
|
||||||
print(f"[i] Mensaje de {server_address}:\n\t{data.decode()}")
|
|
||||||
|
|
||||||
finally:
|
|
||||||
|
|
||||||
client_socket.close()
|
|
@ -1,39 +0,0 @@
|
|||||||
#!/usr/bin/env python3
|
|
||||||
"""
|
|
||||||
Servidor socket
|
|
||||||
|
|
||||||
Con errores. 02_socket es la versión corregida.
|
|
||||||
"""
|
|
||||||
|
|
||||||
import socket
|
|
||||||
|
|
||||||
# Crear un socket TCP/IP
|
|
||||||
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
|
||||||
# Enlazar el socket con el puerto
|
|
||||||
server_address = ("localhost", 1234)
|
|
||||||
# Asignar una dirección y un puerto al socket
|
|
||||||
server_socket.bind(server_address)
|
|
||||||
# Limitar el número de conexiones entrantes
|
|
||||||
server_socket.listen(1)
|
|
||||||
|
|
||||||
# Esperar a que lleguen conexiones
|
|
||||||
while True:
|
|
||||||
|
|
||||||
print(" Esperando conexión...")
|
|
||||||
# Aceptar una conexión
|
|
||||||
client_socket, client_address = server_socket.accept()
|
|
||||||
# Formato de datos recibidos
|
|
||||||
data = client_socket.recv(1024)
|
|
||||||
|
|
||||||
# Imprimir información de la conexión
|
|
||||||
print(f"[+] Cliente conectado desde: {client_address}")
|
|
||||||
# Imprimir datos recibidos
|
|
||||||
print(f"[i] Mensaje de {client_address}:\n\t{data.decode()}")
|
|
||||||
|
|
||||||
# Enviar datos a cliente
|
|
||||||
client_socket.sendall(f"Ola k ase client\n".encode())
|
|
||||||
|
|
||||||
print("[!] Conexión cerrada")
|
|
||||||
client_socket.close()
|
|
||||||
|
|
||||||
server_socket.close()
|
|
@ -1,27 +0,0 @@
|
|||||||
#!/usr/bin/env python3
|
|
||||||
"""
|
|
||||||
Client socket
|
|
||||||
|
|
||||||
"""
|
|
||||||
|
|
||||||
import socket
|
|
||||||
|
|
||||||
|
|
||||||
def start_client():
|
|
||||||
|
|
||||||
host = 'localhost'
|
|
||||||
port = 1234
|
|
||||||
|
|
||||||
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
|
|
||||||
|
|
||||||
s.connect((host, port))
|
|
||||||
|
|
||||||
print(f"[*] Conexión establecida con {host}:{port}")
|
|
||||||
|
|
||||||
s.sendall("Ola k ase server!\n".encode())
|
|
||||||
data = s.recv(1024)
|
|
||||||
|
|
||||||
print(f"[i] Mensaje de {host}:{port}:\n\t{data.decode()}")
|
|
||||||
|
|
||||||
|
|
||||||
start_client()
|
|
@ -1,41 +0,0 @@
|
|||||||
#!/usr/bin/env python3
|
|
||||||
"""
|
|
||||||
Server socket
|
|
||||||
"""
|
|
||||||
|
|
||||||
import socket
|
|
||||||
|
|
||||||
|
|
||||||
def start_server():
|
|
||||||
|
|
||||||
host = 'localhost'
|
|
||||||
port = 1234
|
|
||||||
|
|
||||||
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
|
|
||||||
|
|
||||||
s.bind((host, port))
|
|
||||||
s.listen(1)
|
|
||||||
print(f"[*] Servidor en escucha en {host}:{port}")
|
|
||||||
|
|
||||||
conn, addr = s.accept()
|
|
||||||
print(f"[+] {addr} Conectado.")
|
|
||||||
|
|
||||||
with conn:
|
|
||||||
|
|
||||||
print(f"[*] Conexión establecida con {addr}")
|
|
||||||
|
|
||||||
while True:
|
|
||||||
|
|
||||||
data = conn.recv(1024)
|
|
||||||
|
|
||||||
if not data:
|
|
||||||
break
|
|
||||||
|
|
||||||
conn.sendall(data)
|
|
||||||
|
|
||||||
print(f"[i] Mensaje de {addr}:\n\t{data.decode()}")
|
|
||||||
|
|
||||||
conn.sendall(f"Ola k ase client!\n".encode())
|
|
||||||
|
|
||||||
|
|
||||||
start_server()
|
|
Loading…
Reference in New Issue
Block a user