Files
Karim Khattabi 131176991c recuperación repo
recuperación del repositorio anterior ya que se ha perdido.
2026-02-18 18:43:35 +01:00

68 lines
2.7 KiB
Python

import http.server
import socketserver
from datetime import datetime
import locale
# 1. Configurar la localización a español para abreviaturas correctas
# Esto es crucial para que salgan 'Nov', 'Jue', etc., en español.
try:
locale.setlocale(locale.LC_TIME, 'es_ES.UTF-8')
except locale.Error:
# Si 'es_ES.UTF-8' falla, prueba otras configuraciones comunes para español
try:
locale.setlocale(locale.LC_TIME, 'es_ES')
except locale.Error:
print("Advertencia: No se pudo configurar la localización en español. Las abreviaturas de día/mes podrían salir en inglés.")
# 2. Definir el puerto y el manejador de peticiones
PORT = 8000
HOST = "127.0.0.1" # El servidor local
class DateHandler(http.server.SimpleHTTPRequestHandler):
"""Manejador personalizado para devolver la fecha formateada."""
def do_GET(self):
"""Maneja las peticiones GET (las que hará Unreal Engine)."""
# Patrón de formato deseado: "ma. 13 fefb. 2024"
#
# Códigos de formato en Python:
# %a : Nombre abreviado del día de la semana (e.g., 'Jue')
# %d : Día del mes (con cero inicial si es necesario)
# %b : Nombre abreviado del mes (e.g., 'Nov')
# %Y : Año con siglo
# Usamos .lower() para asegurar las minúsculas, y luego ajustamos los puntos
# La salida hoy sería: "jue. 06 nov. 2025" (la ajustamos un poco)
now = datetime.now()
# Formato base (ej: "Jue 06 Nov 2025")
formatted_date_str = now.strftime("%a. %d %b. %Y")
# Convertir a minúsculas para emular "ma." y limpiar/ajustar puntos
formatted_date_str = formatted_date_str.lower().replace('.', '').replace(' ', ' ')
# Ejemplo para hoy: "jue. 06 nov. 2025"
final_response = f"{now.strftime('%a').lower().replace('.', '')}. {now.strftime('%d').replace('0', '')} {now.strftime('%b').lower().replace('.', '')}. {now.strftime('%Y')}"
# 3. Preparar la respuesta HTTP
self.send_response(200)
self.send_header("Content-type", "text/plain; charset=utf-8")
self.end_headers()
# 4. Enviar la fecha formateada como respuesta
self.wfile.write(final_response.encode('utf-8'))
# 5. Levantar el servidor
try:
with socketserver.TCPServer((HOST, PORT), DateHandler) as httpd:
print(f"✅ Servidor local Python levantado en http://{HOST}:{PORT}")
print(f"URL de prueba para Unreal Engine: http://{HOST}:{PORT}/")
print("Presiona Ctrl+C para detener el servidor.")
httpd.serve_forever()
except KeyboardInterrupt:
print("\nServidor detenido por el usuario.")
except Exception as e:
print(f"Error al levantar el servidor: {e}")