feat: Refactor formatting and extraction logic

- Added `langcodes` dependency for improved language handling.
- Replaced `ColorFormatter` with `TextFormatter` for consistent text styling across the application.
- Introduced `TrackFormatter` for better track information formatting.
- Updated `MediaFormatter` to utilize new formatting methods and improved data handling.
- Refactored `MediaExtractor` to enhance data extraction logic and improve readability.
- Removed deprecated `ColorFormatter` methods and replaced them with `TextFormatter` equivalents.
- Added new methods for extracting and formatting audio and subtitle tracks.
- Updated tests to reflect changes in the extraction logic and formatting.
This commit is contained in:
sha
2025-12-26 11:33:24 +00:00
parent d2ec235458
commit 1d6eb9593e
15 changed files with 544 additions and 285 deletions
+4 -6
View File
@@ -11,7 +11,7 @@ from .screens import OpenScreen
from .extractor import MediaExtractor
from .formatters.media_formatter import MediaFormatter
from .formatters.proposed_name_formatter import ProposedNameFormatter
from .formatters.color_formatter import ColorFormatter
from .formatters.text_formatter import TextFormatter
class RenamerApp(App):
@@ -116,19 +116,17 @@ class RenamerApp(App):
try:
# Initialize extractors and formatters
extractor = MediaExtractor(file_path)
formatter = MediaFormatter()
name_formatter = ProposedNameFormatter(extractor)
# Update UI
self.call_later(
self._update_details,
formatter.format_file_info_panel(extractor),
name_formatter.format_display_string(),
MediaFormatter(extractor).file_info_panel(),
ProposedNameFormatter(extractor).rename_line_formatted(),
)
except Exception as e:
self.call_later(
self._update_details,
ColorFormatter.red(f"Error extracting details: {str(e)}"),
TextFormatter.red(f"Error extracting details: {str(e)}"),
"",
)