ProyectoPSP/backup_logic.py

44 lines
1.4 KiB
Python

import json
import os
from tkinter import messagebox
# Nombre del archivo donde se guardará la copia de seguridad
BACKUP_FILE = "app_backup.json"
def create_backup(alarms):
"""
Guarda el estado actual de las alarmas en un archivo JSON.
:param alarms: La lista de alarmas a guardar.
"""
try:
with open(BACKUP_FILE, 'w', encoding='utf-8') as f:
json.dump({'alarms': alarms}, f, indent=4)
messagebox.showinfo("Copia de Seguridad", f"Copia de seguridad creada con éxito en:\n{os.path.abspath(BACKUP_FILE)}")
return True
except Exception as e:
messagebox.showerror("Error de Copia de Seguridad", f"Error al crear la copia de seguridad: {e}")
return False
def restore_backup():
"""
Carga el estado de las alarmas desde el archivo de copia de seguridad.
:return: La lista de alarmas cargada o None si falla.
"""
if not os.path.exists(BACKUP_FILE):
messagebox.showwarning("Restauración", "No se encontró ningún archivo de copia de seguridad.")
return None
try:
with open(BACKUP_FILE, 'r', encoding='utf-8') as f:
data = json.load(f)
alarms = data.get('alarms', [])
return alarms
except Exception as e:
messagebox.showerror("Error de Restauración", f"Error al cargar la copia de seguridad: {e}")
return None