tx3bas commited on
Commit
4626373
·
verified ·
1 Parent(s): 24c7e3c

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +62 -18
app.py CHANGED
@@ -1,3 +1,63 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  import gradio as gr
2
  from datetime import datetime, timedelta
3
  import requests
@@ -77,15 +137,7 @@ wayback_interface = gr.Interface(
77
  inputs="text",
78
  outputs="html",
79
  title="Wayback Back Fast",
80
- description="Busca instantáneas de una página web en la Wayback Machine y guarda la página actual simplemente introduciendo la URL.",
81
- live=True, # Agrega esta línea para habilitar la vista en vivo
82
- live_button_text="Enviar", # Cambia el texto del botón Submit a "Enviar"
83
- live_button_color="#00cc66", # Cambia el color del botón Submit a verde
84
- live_button_style="raised", # Cambia el estilo del botón Submit
85
- live_button_attrs={"type": "submit"}, # Añade atributos al botón Submit
86
- live_output=True, # Habilita la actualización en vivo del resultado
87
- live_output_throttle=1, # Establece la frecuencia de actualización en segundos
88
- live_output_text_color="#000000" # Cambia el color del texto del resultado
89
  )
90
 
91
  # Crear la interfaz de Gradio para la función archive_now
@@ -94,15 +146,7 @@ archive_interface = gr.Interface(
94
  inputs="text",
95
  outputs="text",
96
  title="Guardar en la Wayback Machine",
97
- description="Guarda la página web actual en la Wayback Machine.",
98
- live=True, # Agrega esta línea para habilitar la vista en vivo
99
- live_button_text="Enviar", # Cambia el texto del botón Submit a "Enviar"
100
- live_button_color="#00cc66", # Cambia el color del botón Submit a verde
101
- live_button_style="raised", # Cambia el estilo del botón Submit
102
- live_button_attrs={"type": "submit"}, # Añade atributos al botón Submit
103
- live_output=True, # Habilita la actualización en vivo del resultado
104
- live_output_throttle=1, # Establece la frecuencia de actualización en segundos
105
- live_output_text_color="#000000" # Cambia el color del texto del resultado
106
  )
107
 
108
  # Combinar ambas interfaces en una
 
1
+ import gradio as gr
2
+ from datetime import datetime, timedelta
3
+ import requests
4
+ import json
5
+
6
+ def wayback(website):
7
+ if not website:
8
+ return '😭 Error: introduce una url correcta'
9
+
10
+ # Rango de tiempo fijo de 365 días hacia atrás
11
+ end_date = datetime.now()
12
+ start_date = end_date - timedelta(days=365)
13
+ datefrom = start_date.strftime('%Y%m%d')
14
+ dateto = end_date.strftime('%Y%m%d')
15
+
16
+ # Construir la consulta a la Wayback Machine con un límite fijo de 3000 resultados
17
+ query = f"?url={website}&output=json&from={datefrom}&to={dateto}&limit=3000"
18
+
19
+ try:
20
+ response = requests.get(f"http://web.archive.org/cdx/search/cdx{query}")
21
+ if response.status_code != 200:
22
+ return f'😭 Error: Respuesta no exitosa con código de estado {response.status_code}'
23
+ content = json.loads(response.text)
24
+ if len(content) <= 1:
25
+ return '😭 Error: no hay datos para esta página web'
26
+ except json.JSONDecodeError as e:
27
+ return f'😭 Error al analizar JSON: {e}'
28
+ except Exception as e:
29
+ return f"😭 Error: {e}"
30
+
31
+ # Procesar los resultados, ordenarlos y devolverlos
32
+ results = []
33
+ for row in content[1:]:
34
+ date, page, status = [row[i] for i in [1, 2, 4]]
35
+ formatted_date = datetime.strptime(date, '%Y%m%d%H%M%S').strftime('%d/%m/%Y')
36
+ formatted_wayback_url = f"https://web.archive.org/web/{date}/{page}"
37
+ results.append({'date': date, 'formatted_date': formatted_date, 'link': formatted_wayback_url})
38
+
39
+ # Ordenar los resultados por fecha de manera descendente
40
+ results.sort(key=lambda x: x['date'], reverse=True)
41
+
42
+ # Formatear los resultados para mostrar en HTML
43
+ formatted_results = [f"👓 {item['formatted_date']} <a href='{item['link']}' target='_blank'>{item['link']}</a>" for item in results]
44
+ return "<br>".join(formatted_results)
45
+
46
+ # Crear la interfaz de Gradio
47
+ iface = gr.Interface(
48
+ fn=wayback,
49
+ inputs="text",
50
+ outputs="html",
51
+ title="Wayback Machine Lookup",
52
+ description="Busca instantáneas de una página web en la Wayback Machine. Introduce solo la URL."
53
+ )
54
+
55
+ # Lanzar la aplicación
56
+ iface.launch()
57
+
58
+
59
+
60
+
61
  import gradio as gr
62
  from datetime import datetime, timedelta
63
  import requests
 
137
  inputs="text",
138
  outputs="html",
139
  title="Wayback Back Fast",
140
+ description="Busca instantáneas de una página web en la Wayback Machine y guarda la página actual simlemente introduciendo la url."
 
 
 
 
 
 
 
 
141
  )
142
 
143
  # Crear la interfaz de Gradio para la función archive_now
 
146
  inputs="text",
147
  outputs="text",
148
  title="Guardar en la Wayback Machine",
149
+ description="Guarda la página web actual en la Wayback Machine."
 
 
 
 
 
 
 
 
150
  )
151
 
152
  # Combinar ambas interfaces en una