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}")