58 lines
1.7 KiB
Python
58 lines
1.7 KiB
Python
import caldav
|
|
from sync_calendar import BAIKAL_URL, BAIKAL_USER, BAIKAL_PASS, HEADERS
|
|
|
|
def delete_all_events():
|
|
print("-> Conectando a Baïkal...")
|
|
try:
|
|
client = caldav.DAVClient(
|
|
url=BAIKAL_URL,
|
|
username=BAIKAL_USER,
|
|
password=BAIKAL_PASS,
|
|
headers=HEADERS,
|
|
ssl_verify_cert=True
|
|
)
|
|
principal = client.principal()
|
|
calendars = principal.calendars()
|
|
|
|
if not calendars:
|
|
print("!!! No se encontró ningún calendario.")
|
|
return
|
|
|
|
calendar = calendars[0]
|
|
print(f"-> Calendario encontrado: {calendar}")
|
|
|
|
print("-> Buscando eventos...")
|
|
events = calendar.events()
|
|
total_events = len(events)
|
|
|
|
if total_events == 0:
|
|
print("-> El calendario ya está vacío.")
|
|
return
|
|
|
|
print(f"-> ¡ADVERTENCIA! Se han encontrado {total_events} eventos.")
|
|
confirm = input(f"¿Estás SEGURO de que quieres BORRAR TODOS los {total_events} eventos? (s/n): ")
|
|
|
|
if confirm.lower() != 's':
|
|
print("-> Operación cancelada.")
|
|
return
|
|
|
|
print("-> Borrando eventos...")
|
|
deleted_count = 0
|
|
|
|
for i, event in enumerate(events, 1):
|
|
try:
|
|
event.delete()
|
|
deleted_count += 1
|
|
if i % 50 == 0:
|
|
print(f" Borrados {i}/{total_events}")
|
|
except Exception as e:
|
|
print(f"!!! Error borrando evento {event}: {e}")
|
|
|
|
print(f"-> ¡Limpieza completada! Se han borrado {deleted_count} eventos.")
|
|
|
|
except Exception as e:
|
|
print(f"!!! Error: {e}")
|
|
|
|
if __name__ == "__main__":
|
|
delete_all_events()
|