summaryrefslogtreecommitdiff
path: root/tidal_dl_ng/gui.py
diff options
context:
space:
mode:
authorRobert Honz <exislow+github@gmail.com>2025-10-21 07:58:00 +0200
committerRobert Honz <exislow+github@gmail.com>2025-10-21 07:58:00 +0200
commitd3ec0398b41e750de7358c6a23ceee66d2917fb4 (patch)
tree7ce3a5668a1d587b9ec9cfdc0d3233c6cf4d60dd /tidal_dl_ng/gui.py
parent5c09b6594cc5ebe6f6a5a19cc68766f47f35ddac (diff)
downloadtidal-dl-ng-d3ec0398b41e750de7358c6a23ceee66d2917fb4.tar.gz
fix(gui): 🐛 integrate `ansi2html` for improved log message formatting
* Added `Ansi2HTMLConverter` to convert ANSI color codes in log messages to HTML. * Updated the `MainWindow` class to utilize the new converter for displaying logs. * Removed dependency on `coloredlogs.converter` for log message display.
Diffstat (limited to 'tidal_dl_ng/gui.py')
-rw-r--r--tidal_dl_ng/gui.py12
1 files changed, 7 insertions, 5 deletions
diff --git a/tidal_dl_ng/gui.py b/tidal_dl_ng/gui.py
index d0ee637..9ffc444 100644
--- a/tidal_dl_ng/gui.py
+++ b/tidal_dl_ng/gui.py
@@ -89,7 +89,8 @@ except ImportError as e:
print("Qt dependencies missing. Cannot start GUI. Please read the 'README.md' carefully.")
sys.exit(1)
-import coloredlogs.converter
+
+from ansi2html import Ansi2HTMLConverter
from rich.progress import Progress
from tidalapi import Album, Mix, Playlist, Quality, Track, UserPlaylist, Video
from tidalapi.artist import Artist
@@ -143,6 +144,7 @@ class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow):
s_queue_download_item_finished: QtCore.Signal = QtCore.Signal(object)
s_queue_download_item_failed: QtCore.Signal = QtCore.Signal(object)
s_queue_download_item_skipped: QtCore.Signal = QtCore.Signal(object)
+ converter_ansi_html: Ansi2HTMLConverter
def __init__(self, tidal: Tidal | None = None) -> None:
"""Initialize the main window and all components.
@@ -187,6 +189,7 @@ class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow):
self.settings.data.window_h,
)
self.spinners: dict[QtWidgets.QWidget, QtWaitingSpinner] = {}
+ self.converter_ansi_html: Ansi2HTMLConverter = Ansi2HTMLConverter()
def init_tidal(self, tidal: Tidal | None = None):
"""Initialize Tidal session and handle login flow.
@@ -297,12 +300,11 @@ class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow):
Args:
text (str): Log message.
"""
- display_msg = coloredlogs.converter.convert(text)
-
cursor: QtGui.QTextCursor = self.te_debug.textCursor()
- cursor.movePosition(QtGui.QTextCursor.End)
- cursor.insertHtml(display_msg)
+ html = self.converter_ansi_html.convert(text)
+ cursor.movePosition(QtGui.QTextCursor.End)
+ cursor.insertHtml(html)
self.te_debug.setTextCursor(cursor)
self.te_debug.ensureCursorVisible()