chore: initial commit del proyecto SCAII_Sync_Client
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
59
main.py
Executable file
59
main.py
Executable file
@@ -0,0 +1,59 @@
|
||||
#!/usr/bin/env python3
|
||||
import sys
|
||||
from config import ConfiguracionApp
|
||||
from gestor_base_datos import GestorBaseDatos
|
||||
from motor_sincronizacion import MotorSincronizacion
|
||||
from cliente_api import ClienteAPI
|
||||
from interfaz import lanzar_interfaz
|
||||
from logger_utils import log
|
||||
|
||||
class ClienteSincronizacionSCAII:
|
||||
def __init__(self):
|
||||
self.config = ConfiguracionApp()
|
||||
self.config.cargar()
|
||||
|
||||
self.db = GestorBaseDatos(self.config.datos)
|
||||
|
||||
# Cliente API con sistema correcto para Login
|
||||
self.api = ClienteAPI(self.config.datos)
|
||||
|
||||
# Motor vinculado al API
|
||||
self.motor = MotorSincronizacion(self.db, self.api)
|
||||
self.gui = None
|
||||
|
||||
def iniciar(self):
|
||||
# 1. Conexión a la DB
|
||||
if not self.db.conectar():
|
||||
log.error("No se pudo conectar a la base de datos al iniciar.")
|
||||
return
|
||||
|
||||
# 2. Lanzar la Interfaz (Flet)
|
||||
log.info("Lanzando Interfaz gráfica (Flet)...")
|
||||
self.gui = lanzar_interfaz(self)
|
||||
|
||||
def proceso_principal(self):
|
||||
"""Orquestación delegada al Motor"""
|
||||
# Vincular callbacks a la UI
|
||||
if self.gui:
|
||||
self.motor.callback_progreso = self.gui.actualizar_progreso
|
||||
self.motor.callback_fila = self.gui.agregar_fila
|
||||
self.motor.callback_actualizar_fila = self.gui.actualizar_estado_fila
|
||||
self.motor.callback_estado_texto = self.gui.actualizar_estado_texto
|
||||
|
||||
# Ejecutar la lógica robusta del motor (que ya tiene el debug)
|
||||
exito = self.motor.proceso_principal()
|
||||
|
||||
if exito:
|
||||
if self.gui:
|
||||
self.gui.status_label.value = "¡Sincronización Exitosa!"
|
||||
self.gui.page.update()
|
||||
else:
|
||||
log.error("El proceso de sincronización falló.")
|
||||
if self.gui:
|
||||
self.gui.status_label.value = "Error en Proceso (Ver debug_sync.log)"
|
||||
self.gui.page.update()
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
app = ClienteSincronizacionSCAII()
|
||||
app.iniciar()
|
||||
Reference in New Issue
Block a user