from collections import deque, OrderedDict class AppState: def __init__(self): # --- Logs do Sistema --- self.logs = deque(maxlen=1000) # --- Referência ao Watcher --- self.watcher = None # --- Lista de Tarefas --- self.tasks = OrderedDict() # --- Variáveis de Estado --- self.current_file = "" def log(self, message): """Adiciona log e printa no console""" print(message) self.logs.append(message) def update_task(self, filename, status, progress=0, label=None, file_progress=0, speed=''): """ Atualiza o status de um arquivo. progress: Progresso Global da Tarefa (0-100) file_progress: Progresso da Conversão do Arquivo (0-100) speed: Velocidade de conversão (ex: 8.5x) """ # Se não existe, cria if filename not in self.tasks: self.tasks[filename] = { 'status': 'pending', 'progress': 0, 'file_progress': 0, 'speed': '', 'label': label or filename } # Limita a 20 itens if len(self.tasks) > 20: self.tasks.popitem(last=False) # Atualiza dados self.tasks[filename]['status'] = status self.tasks[filename]['progress'] = progress self.tasks[filename]['file_progress'] = file_progress self.tasks[filename]['speed'] = speed if label: self.tasks[filename]['label'] = label def get_logs(self): return list(self.logs) # --- INSTÂNCIA GLOBAL --- state = AppState()