From b7188a515a5b7505dd2dc5bea185e1f04b66eb47 Mon Sep 17 00:00:00 2001 From: Vxrtrauter <101264710+Vxrtrauter@users.noreply.github.com> Date: Sat, 7 Feb 2026 01:42:05 +0100 Subject: [PATCH] feat: add flush_log_buffer function and update consoleLog to handle log entries --- core/interface/gui.py | 4 +++- core/utils/general/logs.py | 21 ++++++++++++++++++--- main.py | 3 ++- 3 files changed, 23 insertions(+), 5 deletions(-) diff --git a/core/interface/gui.py b/core/interface/gui.py index 63ca54a..7ee5a2d 100644 --- a/core/interface/gui.py +++ b/core/interface/gui.py @@ -29,7 +29,7 @@ import libtorrent as lt import time import sys import json -from core.utils.general.logs import consoleLog, remove_download_log +from core.utils.general.logs import consoleLog, remove_download_log, flush_log_buffer from core.utils.general.wrappers import run_thread from core.utils.data.state import state from core.utils.network.download import download_selected @@ -150,6 +150,8 @@ class MainWindow(QtWidgets.QMainWindow, QWidget): self.consoleLog = QTextEdit() self.progressbar = QProgressBar() + flush_log_buffer() + # Table Widget for Item List self.qtablewidget = QTableWidget() diff --git a/core/utils/general/logs.py b/core/utils/general/logs.py index 48afec8..2c75d0a 100644 --- a/core/utils/general/logs.py +++ b/core/utils/general/logs.py @@ -6,6 +6,8 @@ import json import os import re +_log_buffer = [] + def add_download_log(title, url, magnet_uri, completed) -> DownloadList: downloads_file = os.path.join(state.settings_path, "downloads.json") @@ -189,15 +191,28 @@ def set_main_window(window): global _main_window _main_window = window +def flush_log_buffer(): # credits to claude + global _log_buffer + if _log_buffer: + try: + from core.interface.gui import MainWindow + for log_entry in _log_buffer: + MainWindow.add_log(log_entry) + _log_buffer = [] + except Exception: + pass + def consoleLog(text, printAnyways = False): now = datetime.now() current_time = now.strftime("%H:%M:%S") + formatted_text = f"[{current_time}] {text}" try: from core.interface.gui import MainWindow - MainWindow.add_log(f"[{current_time}] {text}") + MainWindow.add_log(formatted_text) except Exception: - pass + global _log_buffer + _log_buffer.append(formatted_text) if state.debug or printAnyways: - print(f"[{current_time}] {text}") + print(formatted_text) diff --git a/main.py b/main.py index d5bd4b3..dfee675 100644 --- a/main.py +++ b/main.py @@ -47,7 +47,7 @@ if __name__ == "__main__": if args.debug: state.debug = args.debug # override of read_config signal.signal(signal.SIGINT, keyboardinterrupthandler) - consoleLog("Started check_completed thread") + consoleLog("Starting SoftwareManager...") consoleLog("Fetching Network Interfaces...") list_interfaces() consoleLog("Initialiting Interface variables...") @@ -58,6 +58,7 @@ if __name__ == "__main__": run_thread(threading.Thread(target=update_log, args=(shutdown_event,), daemon=True)) consoleLog("Started Thread: update_log") run_thread(threading.Thread(target=check_completed, args=(downloads, state.autoresume))) + consoleLog("Started Thread: check_completed") consoleLog("Launching GUI") run_gui()