import gradio as gr from datetime import datetime, timedelta import requests import json def wayback(website): if not website: return '😭 Error: introduce una url correcta' # Rango de tiempo fijo de 1095 días hacia atrás end_date = datetime.now() start_date = end_date - timedelta(days=1095) datefrom = start_date.strftime('%Y%m%d') dateto = end_date.strftime('%Y%m%d') # Construir la consulta a la Wayback Machine con un límite fijo de 9000 resultados query = f"?url={website}&output=json&from={datefrom}&to={dateto}&limit=9000" try: response = requests.get(f"http://web.archive.org/cdx/search/cdx{query}") if response.status_code != 200: return f'😭 Error: Respuesta no exitosa con código de estado {response.status_code}' content = json.loads(response.text) if len(content) <= 1: return '😭 Error: no hay datos para esta página web' except json.JSONDecodeError as e: return f'😭 Error al analizar JSON: {e}' except Exception as e: return f"😭 Error: {e}" # Procesar los resultados y devolverlos results = [] for row in content[1:]: date, page, status = [row[i] for i in [1, 2, 4]] formatted_date = datetime.strptime(date, '%Y%m%d%H%M%S').strftime('%d/%m/%Y') formatted_wayback_url = f"https://web.archive.org/web/{date}/{page}" results.append(f"👓 {formatted_date} {formatted_wayback_url}") return "\n".join(results) # Crear la interfaz de Gradio iface = gr.Interface( fn=wayback, inputs="text", outputs="text", title="Wayback Machine Lookup", description="Busca instantáneas de una página web en la Wayback Machine. Introduce solo la URL." ) # Lanzar la aplicación iface.launch()