# config.py
import os
import psutil

# --- Rutas y Archivos ---
SCRIPT_NAME = "backup_script.sh" 
BASE_DIR = os.path.dirname(os.path.abspath(__file__)) 
SCRIPT_PATH = os.path.join(BASE_DIR, SCRIPT_NAME) 
archivo_registro_csv = os.path.join(BASE_DIR, "data", "registro_recursos.csv") 
PROGRESS_FILE = 'progress.tmp'

# NUEVO: Ruta de guardado de JSON y Carpeta de alarmas
ALARM_SAVE_FILE = os.path.join(BASE_DIR, "data", "alarmas.json")
ALARM_FOLDER = os.path.join(BASE_DIR, "data", "alarmas")
ALERTA_SOUND_FILE = None # Almacenará la ruta del archivo de sonido seleccionado por el usuario

# Rutas de Scraping
SCRAPING_FOLDER = os.path.join(BASE_DIR, "data", "scraping") 
SCRAPING_CONFIG_FOLDER = os.path.join(BASE_DIR, "data", "tipo_scraping") 

# NUEVO: Carpeta específica para el Bloc de Notas
NOTES_FOLDER = os.path.join(BASE_DIR, "data", "notas")

# --- Variables de Monitoreo ---
MAX_PUNTOS = 30  
tiempos = list(range(-MAX_PUNTOS + 1, 1)) 
num_cores = psutil.cpu_count(logical=True)
datos_cores = [0] * num_cores

# --- Datos Dinámicos (Inicialización) ---
datos_cpu = [0] * MAX_PUNTOS
datos_mem = [0] * MAX_PUNTOS
datos_net_sent = [0] * MAX_PUNTOS 
datos_net_recv = [0] * MAX_PUNTOS 
datos_disk_read = [0] * MAX_PUNTOS
datos_disk_write = [0] * MAX_PUNTOS

# --- Variables de Estado y UI ---
monitor_running = True 
registro_csv_activo = False
system_log = None 
progress_bar = None
editor_texto = None 
scraping_progress_bar = None # Barra de progreso de scraping
scraping_output_text = None # Área de texto de salida de scraping
scraping_url_input = None # Variable de control de la URL de scraping
scraping_selector_input = None # Entrada para el selector CSS
scraping_attr_input = None # Entrada para el atributo CSS
scraping_config_file_label = None # Label para mostrar el archivo de configuración cargado
scraping_config_data = {} # Diccionario para almacenar la configuración JSON de scraping
scraping_running = False # Bandera de estado de ejecución de scraping

# Variables de Alarma
alarmas_programadas = {} 
alarma_counter = 0 

# Control de Sonido
alarma_volumen = 0.5 
alarma_sonando = False

# Control de Juegos (NUEVO)
juego_window = None # Referencia a la ventana Toplevel del juego
juego_running = False # Bandera de estado del juego

# Control de Música Adicional (NUEVO)
current_music_file = None 
music_sonando = False 

# Variables de UI
label_hostname = None
label_os_info = None
label_cpu_model = None
label_ram_total = None
label_disk_total = None
label_net_info = None
label_uptime = None

label_1 = None # Estado Backup
label_2 = None # Estado Registro CSV
label_fecha_hora = None