wayback-fast / app.py
tx3bas's picture
Update app.py
c2d4e7d verified
raw
history blame
1.81 kB
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()