From 917d25b360d8001a99a998a10f67c59ebc165ed1 Mon Sep 17 00:00:00 2001 From: sHa Date: Sat, 3 Jan 2026 10:13:17 +0000 Subject: [PATCH] Add decorators for formatting various media attributes - Introduced `DurationDecorators` for full and short duration formatting. - Added `ExtensionDecorators` for formatting extension information. - Created `ResolutionDecorators` for formatting resolution dimensions. - Implemented `SizeDecorators` for full and short size formatting. - Enhanced `TextDecorators` with additional formatting options including blue and grey text, URL formatting, and escaping rich markup. - Developed `TrackDecorators` for formatting video, audio, and subtitle track data. - Refactored `MediaPanelView` to utilize a new `MediaPanelProperties` class for cleaner property management and formatting. - Updated `media_panel_properties.py` to include formatted properties for file info, TMDB data, metadata extraction, media info extraction, and filename extraction. - Bumped version to 0.6.5 in `uv.lock`. --- dist/renamer-0.6.4-py3-none-any.whl | Bin 0 -> 107652 bytes dist/renamer-0.6.5-py3-none-any.whl | Bin 0 -> 110260 bytes pyproject.toml | 2 +- renamer/extractors/fileinfo_extractor.py | 18 +- renamer/formatters/__init__.py | 15 + renamer/formatters/conditional_decorators.py | 31 +- renamer/formatters/duration_decorators.py | 42 ++ renamer/formatters/extension_decorators.py | 29 ++ renamer/formatters/resolution_decorators.py | 29 ++ renamer/formatters/size_decorators.py | 42 ++ renamer/formatters/text_decorators.py | 75 ++- renamer/formatters/track_decorators.py | 55 ++ renamer/views/media_panel.py | 520 ++++--------------- renamer/views/media_panel_properties.py | 456 ++++++++++++++++ uv.lock | 2 +- 15 files changed, 894 insertions(+), 422 deletions(-) create mode 100644 dist/renamer-0.6.4-py3-none-any.whl create mode 100644 dist/renamer-0.6.5-py3-none-any.whl create mode 100644 renamer/formatters/duration_decorators.py create mode 100644 renamer/formatters/extension_decorators.py create mode 100644 renamer/formatters/resolution_decorators.py create mode 100644 renamer/formatters/size_decorators.py create mode 100644 renamer/formatters/track_decorators.py create mode 100644 renamer/views/media_panel_properties.py diff --git a/dist/renamer-0.6.4-py3-none-any.whl b/dist/renamer-0.6.4-py3-none-any.whl new file mode 100644 index 0000000000000000000000000000000000000000..62b3ff7a2424269e8d1b8781a5379b7a24a22868 GIT binary patch literal 107652 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¥-cS423oN3zTe07Q1PnffEkvJREn5 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 literal 0 HcmV?d00001 diff --git a/dist/renamer-0.6.5-py3-none-any.whl b/dist/renamer-0.6.5-py3-none-any.whl new file mode 100644 index 0000000000000000000000000000000000000000..dc7f9f38cec4875c36cc17aa73f0af89c2b7dc36 GIT binary patch literal 110260 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 int: @@ -60,7 +56,7 @@ class FileInfoExtractor: Returns: File size in bytes as an integer """ - return self._size + return self._stat.st_size @cached_method() def extract_modification_time(self) -> float: @@ -69,7 +65,7 @@ class FileInfoExtractor: Returns: Unix timestamp (seconds since epoch) as a float """ - return self._modification_time + return self._stat.st_mtime @cached_method() def extract_file_name(self) -> str: @@ -78,7 +74,7 @@ class FileInfoExtractor: Returns: File name including extension (e.g., "movie.mkv") """ - return self._file_name + return self._file_path.name @cached_method() def extract_file_path(self) -> str: @@ -87,7 +83,7 @@ class FileInfoExtractor: Returns: Absolute file path as a string """ - return self._file_path + return str(self._file_path) @cached_method() def extract_extension(self) -> str: @@ -96,4 +92,4 @@ class FileInfoExtractor: Returns: File extension in lowercase without leading dot (e.g., "mkv", "mp4") """ - return self.file_path.suffix.lower().lstrip('.') \ No newline at end of file + return self._file_path.suffix.lower().lstrip('.') \ No newline at end of file diff --git a/renamer/formatters/__init__.py b/renamer/formatters/__init__.py index 48764b4..9400201 100644 --- a/renamer/formatters/__init__.py +++ b/renamer/formatters/__init__.py @@ -28,6 +28,11 @@ from .date_decorators import date_decorators, DateDecorators from .special_info_decorators import special_info_decorators, SpecialInfoDecorators from .text_decorators import text_decorators, TextDecorators from .conditional_decorators import conditional_decorators, ConditionalDecorators +from .size_decorators import size_decorators, SizeDecorators +from .extension_decorators import extension_decorators, ExtensionDecorators +from .duration_decorators import duration_decorators, DurationDecorators +from .resolution_decorators import resolution_decorators, ResolutionDecorators +from .track_decorators import track_decorators, TrackDecorators __all__ = [ # Base classes @@ -57,4 +62,14 @@ __all__ = [ 'TextDecorators', 'conditional_decorators', 'ConditionalDecorators', + 'size_decorators', + 'SizeDecorators', + 'extension_decorators', + 'ExtensionDecorators', + 'duration_decorators', + 'DurationDecorators', + 'resolution_decorators', + 'ResolutionDecorators', + 'track_decorators', + 'TrackDecorators', ] \ No newline at end of file diff --git a/renamer/formatters/conditional_decorators.py b/renamer/formatters/conditional_decorators.py index 2d6d3cc..1044a68 100644 --- a/renamer/formatters/conditional_decorators.py +++ b/renamer/formatters/conditional_decorators.py @@ -19,6 +19,7 @@ class ConditionalDecorators: """Decorator to wrap value with delimiters if it exists. Can be used for prefix-only (right=""), suffix-only (left=""), or both. + Supports format string placeholders that will be filled from function arguments. Usage: @conditional_decorators.wrap("[", "]") @@ -34,12 +35,40 @@ class ConditionalDecorators: @conditional_decorators.wrap("", ",") def get_hdr(self): return self.extractor.get('hdr') + + # With placeholders + @conditional_decorators.wrap("Track {index}: ") + def get_track(self, data, index): + return data """ def decorator(func: Callable) -> Callable: @wraps(func) def wrapper(*args, **kwargs) -> str: result = func(*args, **kwargs) - return f"{left}{result}{right}" if result else "" + if not result: + return "" + + # Extract format arguments from function signature + # Skip 'self' (args[0]) and the main data argument + format_kwargs = {} + if len(args) > 2: # self, data, index, ... + # Try to detect named parameters from function signature + import inspect + sig = inspect.signature(func) + param_names = list(sig.parameters.keys()) + # Skip first two params (self, data/track/value) + for i, param_name in enumerate(param_names[2:], start=2): + if i < len(args): + format_kwargs[param_name] = args[i] + + # Also add explicit kwargs + format_kwargs.update(kwargs) + + # Format left and right with available arguments + formatted_left = left.format(**format_kwargs) if format_kwargs else left + formatted_right = right.format(**format_kwargs) if format_kwargs else right + + return f"{formatted_left}{result}{formatted_right}" return wrapper return decorator diff --git a/renamer/formatters/duration_decorators.py b/renamer/formatters/duration_decorators.py new file mode 100644 index 0000000..6bbc908 --- /dev/null +++ b/renamer/formatters/duration_decorators.py @@ -0,0 +1,42 @@ +"""Duration formatting decorators. + +Provides decorator versions of DurationFormatter methods. +""" + +from functools import wraps +from typing import Callable +from .duration_formatter import DurationFormatter + + +class DurationDecorators: + """Duration formatting decorators.""" + + @staticmethod + def duration_full() -> Callable: + """Decorator to format duration in full format (HH:MM:SS).""" + def decorator(func: Callable) -> Callable: + @wraps(func) + def wrapper(*args, **kwargs): + result = func(*args, **kwargs) + if not result: + return "" + return DurationFormatter.format_full(result) + return wrapper + return decorator + + @staticmethod + def duration_short() -> Callable: + """Decorator to format duration in short format.""" + def decorator(func: Callable) -> Callable: + @wraps(func) + def wrapper(*args, **kwargs): + result = func(*args, **kwargs) + if not result: + return "" + return DurationFormatter.format_short(result) + return wrapper + return decorator + + +# Singleton instance +duration_decorators = DurationDecorators() diff --git a/renamer/formatters/extension_decorators.py b/renamer/formatters/extension_decorators.py new file mode 100644 index 0000000..fdc2da7 --- /dev/null +++ b/renamer/formatters/extension_decorators.py @@ -0,0 +1,29 @@ +"""Extension formatting decorators. + +Provides decorator versions of ExtensionFormatter methods. +""" + +from functools import wraps +from typing import Callable +from .extension_formatter import ExtensionFormatter + + +class ExtensionDecorators: + """Extension formatting decorators.""" + + @staticmethod + def extension_info() -> Callable: + """Decorator to format extension information.""" + def decorator(func: Callable) -> Callable: + @wraps(func) + def wrapper(*args, **kwargs): + result = func(*args, **kwargs) + if not result: + return "" + return ExtensionFormatter.format_extension_info(result) + return wrapper + return decorator + + +# Singleton instance +extension_decorators = ExtensionDecorators() diff --git a/renamer/formatters/resolution_decorators.py b/renamer/formatters/resolution_decorators.py new file mode 100644 index 0000000..bc717b1 --- /dev/null +++ b/renamer/formatters/resolution_decorators.py @@ -0,0 +1,29 @@ +"""Resolution formatting decorators. + +Provides decorator versions of ResolutionFormatter methods. +""" + +from functools import wraps +from typing import Callable +from .resolution_formatter import ResolutionFormatter + + +class ResolutionDecorators: + """Resolution formatting decorators.""" + + @staticmethod + def resolution_dimensions() -> Callable: + """Decorator to format resolution as dimensions (WxH).""" + def decorator(func: Callable) -> Callable: + @wraps(func) + def wrapper(*args, **kwargs): + result = func(*args, **kwargs) + if not result: + return "" + return ResolutionFormatter.format_resolution_dimensions(result) + return wrapper + return decorator + + +# Singleton instance +resolution_decorators = ResolutionDecorators() diff --git a/renamer/formatters/size_decorators.py b/renamer/formatters/size_decorators.py new file mode 100644 index 0000000..4475bc5 --- /dev/null +++ b/renamer/formatters/size_decorators.py @@ -0,0 +1,42 @@ +"""Size formatting decorators. + +Provides decorator versions of SizeFormatter methods. +""" + +from functools import wraps +from typing import Callable +from .size_formatter import SizeFormatter + + +class SizeDecorators: + """Size formatting decorators.""" + + @staticmethod + def size_full() -> Callable: + """Decorator to format file size in full format.""" + def decorator(func: Callable) -> Callable: + @wraps(func) + def wrapper(*args, **kwargs): + result = func(*args, **kwargs) + if result is None: + return "" + return SizeFormatter.format_size_full(result) + return wrapper + return decorator + + @staticmethod + def size_short() -> Callable: + """Decorator to format file size in short format.""" + def decorator(func: Callable) -> Callable: + @wraps(func) + def wrapper(*args, **kwargs): + result = func(*args, **kwargs) + if result is None: + return "" + return SizeFormatter.format_size_short(result) + return wrapper + return decorator + + +# Singleton instance +size_decorators = SizeDecorators() diff --git a/renamer/formatters/text_decorators.py b/renamer/formatters/text_decorators.py index ceff529..9106e4a 100644 --- a/renamer/formatters/text_decorators.py +++ b/renamer/formatters/text_decorators.py @@ -22,6 +22,8 @@ class TextDecorators: @wraps(func) def wrapper(*args, **kwargs) -> str: result = func(*args, **kwargs) + if result == "": + return "" return TextFormatter.bold(str(result)) return wrapper return decorator @@ -33,6 +35,8 @@ class TextDecorators: @wraps(func) def wrapper(*args, **kwargs) -> str: result = func(*args, **kwargs) + if result == "": + return "" return TextFormatter.italic(str(result)) return wrapper return decorator @@ -44,6 +48,8 @@ class TextDecorators: @wraps(func) def wrapper(*args, **kwargs) -> str: result = func(*args, **kwargs) + if result == "": + return "" return TextFormatter.green(str(result)) return wrapper return decorator @@ -55,6 +61,8 @@ class TextDecorators: @wraps(func) def wrapper(*args, **kwargs) -> str: result = func(*args, **kwargs) + if not result: + return "" return TextFormatter.yellow(str(result)) return wrapper return decorator @@ -66,6 +74,8 @@ class TextDecorators: @wraps(func) def wrapper(*args, **kwargs) -> str: result = func(*args, **kwargs) + if not result: + return "" return TextFormatter.cyan(str(result)) return wrapper return decorator @@ -77,6 +87,8 @@ class TextDecorators: @wraps(func) def wrapper(*args, **kwargs) -> str: result = func(*args, **kwargs) + if not result: + return "" return TextFormatter.magenta(str(result)) return wrapper return decorator @@ -88,10 +100,12 @@ class TextDecorators: @wraps(func) def wrapper(*args, **kwargs) -> str: result = func(*args, **kwargs) + if not result: + return "" return TextFormatter.red(str(result)) return wrapper return decorator - + @staticmethod def orange() -> Callable: """Decorator to color text orange.""" @@ -99,10 +113,38 @@ class TextDecorators: @wraps(func) def wrapper(*args, **kwargs) -> str: result = func(*args, **kwargs) + if not result: + return "" return TextFormatter.orange(str(result)) return wrapper return decorator + @staticmethod + def blue() -> Callable: + """Decorator to color text blue.""" + def decorator(func: Callable) -> Callable: + @wraps(func) + def wrapper(*args, **kwargs) -> str: + result = func(*args, **kwargs) + if not result: + return "" + return TextFormatter.blue(str(result)) + return wrapper + return decorator + + @staticmethod + def grey() -> Callable: + """Decorator to color text grey.""" + def decorator(func: Callable) -> Callable: + @wraps(func) + def wrapper(*args, **kwargs) -> str: + result = func(*args, **kwargs) + if not result: + return "" + return TextFormatter.grey(str(result)) + return wrapper + return decorator + @staticmethod def uppercase() -> Callable: """Decorator to convert text to uppercase.""" @@ -110,6 +152,8 @@ class TextDecorators: @wraps(func) def wrapper(*args, **kwargs) -> str: result = func(*args, **kwargs) + if not result: + return "" return TextFormatter.uppercase(str(result)) return wrapper return decorator @@ -121,10 +165,39 @@ class TextDecorators: @wraps(func) def wrapper(*args, **kwargs) -> str: result = func(*args, **kwargs) + if not result: + return "" return TextFormatter.lowercase(str(result)) return wrapper return decorator + @staticmethod + def url() -> Callable: + """Decorator to format text as a clickable URL.""" + def decorator(func: Callable) -> Callable: + @wraps(func) + def wrapper(*args, **kwargs) -> str: + result = func(*args, **kwargs) + if not result: + return "" + return TextFormatter.format_url(str(result)) + return wrapper + return decorator + + @staticmethod + def escape() -> Callable: + """Decorator to escape rich markup in text.""" + def decorator(func: Callable) -> Callable: + @wraps(func) + def wrapper(*args, **kwargs) -> str: + from rich.markup import escape + result = func(*args, **kwargs) + if not result: + return "" + return escape(str(result)) + return wrapper + return decorator + # Singleton instance text_decorators = TextDecorators() diff --git a/renamer/formatters/track_decorators.py b/renamer/formatters/track_decorators.py new file mode 100644 index 0000000..9fdc1d1 --- /dev/null +++ b/renamer/formatters/track_decorators.py @@ -0,0 +1,55 @@ +"""Track formatting decorators. + +Provides decorator versions of TrackFormatter methods. +""" + +from functools import wraps +from typing import Callable +from .track_formatter import TrackFormatter + + +class TrackDecorators: + """Track formatting decorators.""" + + @staticmethod + def video_track() -> Callable: + """Decorator to format video track data.""" + def decorator(func: Callable) -> Callable: + @wraps(func) + def wrapper(*args, **kwargs): + result = func(*args, **kwargs) + if not result: + return "" + return TrackFormatter.format_video_track(result) + return wrapper + return decorator + + @staticmethod + def audio_track() -> Callable: + """Decorator to format audio track data.""" + def decorator(func: Callable) -> Callable: + @wraps(func) + def wrapper(*args, **kwargs): + result = func(*args, **kwargs) + if not result: + return "" + return TrackFormatter.format_audio_track(result) + return wrapper + return decorator + + @staticmethod + def subtitle_track() -> Callable: + """Decorator to format subtitle track data.""" + def decorator(func: Callable) -> Callable: + @wraps(func) + def wrapper(*args, **kwargs): + result = func(*args, **kwargs) + if not result: + return "" + return TrackFormatter.format_subtitle_track(result) + return wrapper + return decorator + + +# Singleton instance +track_decorators = TrackDecorators() diff --git a/renamer/views/media_panel.py b/renamer/views/media_panel.py index e3ccc30..426e094 100644 --- a/renamer/views/media_panel.py +++ b/renamer/views/media_panel.py @@ -1,14 +1,5 @@ -from pathlib import Path -from rich.markup import escape -from ..formatters.size_formatter import SizeFormatter -from ..formatters.date_formatter import DateFormatter -from ..formatters.extension_formatter import ExtensionFormatter -from ..formatters.text_formatter import TextFormatter -from ..formatters.track_formatter import TrackFormatter -from ..formatters.resolution_formatter import ResolutionFormatter -from ..formatters.duration_formatter import DurationFormatter -from ..formatters.special_info_formatter import SpecialInfoFormatter -from ..formatters.formatter import FormatterApplier +from .media_panel_properties import MediaPanelProperties +from ..formatters.conditional_decorators import conditional_decorators class MediaPanelView: @@ -20,410 +11,125 @@ class MediaPanelView: def __init__(self, extractor): self.extractor = extractor + self._props = MediaPanelProperties(extractor) def file_info_panel(self) -> str: """Return formatted file info panel string""" - sections = [ - self.file_info(), - self.selected_data(), - self.tmdb_data(), - self.tracks_info(), - self.filename_extracted_data(), - self.metadata_extracted_data(), - self.mediainfo_extracted_data(), - ] - return "\n\n".join("\n".join(section) for section in sections) + return "\n".join( + [ + self.fileinfo_section(), + self.selected_section(), + self.tmdb_section(), + self.tracksinfo_section(), + self.filename_section(), + self.metadata_section(), + self.mediainfo_section(), + ] + ) - def file_info(self) -> list[str]: - data = [ - { - "group": "File Info", - "label": "File Info", - "label_formatters": [TextFormatter.bold, TextFormatter.uppercase], - }, - { - "group": "File Info", - "label": "Path", - "label_formatters": [TextFormatter.bold], - "value": escape(str(self.extractor.get("file_path", "FileInfo"))), - "display_formatters": [TextFormatter.blue], - }, - { - "group": "File Info", - "label": "Size", - "value": self.extractor.get("file_size", "FileInfo"), - "value_formatters": [SizeFormatter.format_size_full], - "display_formatters": [TextFormatter.bold, TextFormatter.green], - }, - { - "group": "File Info", - "label": "Name", - "label_formatters": [TextFormatter.bold], - "value": escape(str(self.extractor.get("file_name", "FileInfo"))), - "display_formatters": [TextFormatter.cyan], - }, - { - "group": "File Info", - "label": "Modified", - "label_formatters": [TextFormatter.bold], - "value": self.extractor.get("modification_time", "FileInfo"), - "value_formatters": [DateFormatter.format_modification_date], - "display_formatters": [TextFormatter.bold, TextFormatter.magenta], - }, - { - "group": "File Info", - "label": "Extension", - "label_formatters": [TextFormatter.bold], - "value": self.extractor.get("extension", "FileInfo"), - "value_formatters": [ExtensionFormatter.format_extension_info], - "display_formatters": [TextFormatter.green], - }, - ] - return FormatterApplier.format_data_items(data) + @conditional_decorators.wrap("", "\n") + def fileinfo_section(self) -> str: + """Return formatted file info""" + return "\n".join( + [ + self._props.title("File Info"), + self._props.file_path, + self._props.file_size, + self._props.file_name, + self._props.modification_time, + self._props.extension_fileinfo, + ] + ) - def tmdb_data(self) -> list[str]: + @conditional_decorators.wrap("", "\n") + def selected_section(self) -> str: + """Return formatted selected data""" + return "\n".join( + [ + self._props.title("Selected Data"), + self._props.selected_order, + self._props.selected_title, + self._props.selected_year, + self._props.selected_special_info, + self._props.selected_source, + self._props.selected_frame_class, + self._props.selected_hdr, + self._props.selected_audio_langs, + self._props.selected_database_info, + ] + ) + + @conditional_decorators.wrap("", "\n") + def tmdb_section(self) -> str: """Return formatted TMDB data""" - data = [ - { - "label": "TMDB Data", - "label_formatters": [TextFormatter.bold, TextFormatter.uppercase], - }, - { - "label": "ID", - "label_formatters": [TextFormatter.bold, TextFormatter.blue], - "value": self.extractor.get("tmdb_id", "TMDB") or "", - "value_formatters": [TextFormatter.yellow], - }, - { - "label": "Title", - "label_formatters": [TextFormatter.bold, TextFormatter.blue], - "value": self.extractor.get("title", "TMDB") or "", - "value_formatters": [TextFormatter.yellow], - }, - { - "label": "Original Title", - "label_formatters": [TextFormatter.bold, TextFormatter.blue], - "value": self.extractor.get("original_title", "TMDB") or "", - "value_formatters": [TextFormatter.yellow], - }, - { - "label": "Year", - "label_formatters": [TextFormatter.bold, TextFormatter.blue], - "value": self.extractor.get("year", "TMDB") or "", - "value_formatters": [TextFormatter.yellow,], - }, - { - "label": "Database Info", - "label_formatters": [TextFormatter.bold, TextFormatter.blue], - "value": self.extractor.get("movie_db", "TMDB") or "", - "value_formatters": [SpecialInfoFormatter.format_database_info, TextFormatter.yellow], - }, - { - "label": "URL", - "label_formatters": [TextFormatter.bold, TextFormatter.blue], - "value": self.extractor.get("tmdb_url", "TMDB") or "", - "value_formatters": [TextFormatter.format_url], - } - ] - return FormatterApplier.format_data_items(data) + return "\n".join( + [ + self._props.title("TMDB Data"), + self._props.tmdb_id, + self._props.tmdb_title, + self._props.tmdb_original_title, + self._props.tmdb_year, + self._props.tmdb_database_info, + self._props.tmdb_url, + ] + ) - def tracks_info(self) -> list[str]: - """Return formatted tracks information""" - data = [ - { - "group": "Tracks Info", - "label": "Tracks Info", - "label_formatters": [TextFormatter.bold, TextFormatter.uppercase], - } - ] + @conditional_decorators.wrap("", "\n") + def tracksinfo_section(self) -> str: + """Return formatted tracks information panel""" + return "\n".join( + [ + self._props.title("Tracks Info"), + *self._props.video_tracks, + *self._props.audio_tracks, + *self._props.subtitle_tracks, + ] + ) - # Get video tracks - video_tracks = self.extractor.get("video_tracks", "MediaInfo") or [] - for item in video_tracks: - data.append( - { - "group": "Tracks Info", - "label": "Video Track", - "value": item, - "value_formatters": TrackFormatter.format_video_track, - "display_formatters": [TextFormatter.green], - } - ) - - # Get audio tracks - audio_tracks = self.extractor.get("audio_tracks", "MediaInfo") or [] - for i, item in enumerate(audio_tracks, start=1): - data.append( - { - "group": "Tracks Info", - "label": f"Audio Track {i}", - "value": item, - "value_formatters": TrackFormatter.format_audio_track, - "display_formatters": [TextFormatter.yellow], - } - ) - - # Get subtitle tracks - subtitle_tracks = self.extractor.get("subtitle_tracks", "MediaInfo") or [] - for i, item in enumerate(subtitle_tracks, start=1): - data.append( - { - "group": "Tracks Info", - "label": f"Subtitle Track {i}", - "value": item, - "value_formatters": TrackFormatter.format_subtitle_track, - "display_formatters": [TextFormatter.magenta], - } - ) - - return FormatterApplier.format_data_items(data) - - def metadata_extracted_data(self) -> list[str]: - """Format metadata extraction data for the metadata panel""" - data = [ - { - "label": "Metadata Extraction", - "label_formatters": [TextFormatter.bold, TextFormatter.uppercase], - }, - { - "label": "Title", - "label_formatters": [TextFormatter.bold], - "value": self.extractor.get("title", "Metadata") or "Not extracted", - "display_formatters": [TextFormatter.grey], - }, - { - "label": "Duration", - "label_formatters": [TextFormatter.bold], - "value": self.extractor.get("duration", "Metadata") or "Not extracted", - "value_formatters": [DurationFormatter.format_full], - "display_formatters": [TextFormatter.grey], - }, - { - "label": "Artist", - "label_formatters": [TextFormatter.bold], - "value": self.extractor.get("artist", "Metadata") or "Not extracted", - "display_formatters": [TextFormatter.grey], - }, - ] - - return FormatterApplier.format_data_items(data) - - def mediainfo_extracted_data(self) -> list[str]: - """Format media info extraction data for the mediainfo panel""" - data = [ - { - "label": "Media Info Extraction", - "label_formatters": [TextFormatter.bold, TextFormatter.uppercase], - }, - { - "label": "Duration", - "label_formatters": [TextFormatter.bold], - "value": self.extractor.get("duration", "MediaInfo") or "Not extracted", - "value_formatters": [DurationFormatter.format_full], - "display_formatters": [TextFormatter.grey], - }, - { - "label": "Frame Class", - "label_formatters": [TextFormatter.bold], - "value": self.extractor.get("frame_class", "MediaInfo") - or "Not extracted", - "display_formatters": [TextFormatter.grey], - }, - { - "label": "Resolution", - "label_formatters": [TextFormatter.bold], - "value": self.extractor.get("resolution", "MediaInfo") - or "Not extracted", - "value_formatters": [ResolutionFormatter.format_resolution_dimensions], - "display_formatters": [TextFormatter.grey], - }, - { - "label": "Aspect Ratio", - "label_formatters": [TextFormatter.bold], - "value": self.extractor.get("aspect_ratio", "MediaInfo") - or "Not extracted", - "display_formatters": [TextFormatter.grey], - }, - { - "label": "HDR", - "label_formatters": [TextFormatter.bold], - "value": self.extractor.get("hdr", "MediaInfo") or "Not extracted", - "display_formatters": [TextFormatter.grey], - }, - { - "label": "Audio Languages", - "label_formatters": [TextFormatter.bold], - "value": self.extractor.get("audio_langs", "MediaInfo") - or "Not extracted", - "display_formatters": [TextFormatter.grey], - }, - { - "label": "Anamorphic", - "label_formatters": [TextFormatter.bold], - "value": self.extractor.get("anamorphic", "MediaInfo") or "Not extracted", - "display_formatters": [TextFormatter.grey], - }, - { - "label": "Extension", - "label_formatters": [TextFormatter.bold], - "value": self.extractor.get("extension", "MediaInfo") or "Not extracted", - "value_formatters": [ExtensionFormatter.format_extension_info], - "display_formatters": [TextFormatter.grey], - }, - { - "label": "3D Layout", - "label_formatters": [TextFormatter.bold], - "value": self.extractor.get("3d_layout", "MediaInfo") or "Not extracted", - "display_formatters": [TextFormatter.grey], - }, - ] - return FormatterApplier.format_data_items(data) - - def filename_extracted_data(self) -> list[str]: + @conditional_decorators.wrap("", "\n") + def filename_section(self) -> str: """Return formatted filename extracted data""" - data = [ - { - "label": "Filename Extracted Data", - "label_formatters": [TextFormatter.bold, TextFormatter.uppercase], - }, - { - "label": "Order", - "label_formatters": [TextFormatter.bold], - "value": self.extractor.get("order", "Filename") or "Not extracted", - "display_formatters": [TextFormatter.yellow], - }, - { - "label": "Movie title", - "label_formatters": [TextFormatter.bold], - "value": self.extractor.get("title", "Filename"), - "display_formatters": [TextFormatter.grey], - }, - { - "label": "Year", - "label_formatters": [TextFormatter.bold], - "value": self.extractor.get("year", "Filename"), - "display_formatters": [TextFormatter.grey], - }, - { - "label": "Video source", - "label_formatters": [TextFormatter.bold], - "value": self.extractor.get("source", "Filename") or "Not extracted", - "display_formatters": [TextFormatter.grey], - }, - { - "label": "Frame class", - "label_formatters": [TextFormatter.bold], - "value": self.extractor.get("frame_class", "Filename") - or "Not extracted", - "display_formatters": [TextFormatter.grey], - }, - { - "label": "HDR", - "label_formatters": [TextFormatter.bold], - "value": self.extractor.get("hdr", "Filename") or "Not extracted", - "display_formatters": [TextFormatter.grey], - }, - { - "label": "Audio langs", - "label_formatters": [TextFormatter.bold], - "value": self.extractor.get("audio_langs", "Filename") - or "Not extracted", - "display_formatters": [TextFormatter.grey], - }, - { - "label": "Special info", - "label_formatters": [TextFormatter.bold], - "value": self.extractor.get("special_info", "Filename") - or "Not extracted", - "value_formatters": [ - SpecialInfoFormatter.format_special_info, - TextFormatter.blue, - ], - "display_formatters": [TextFormatter.grey], - }, - { - "label": "Movie DB", - "label_formatters": [TextFormatter.bold], - "value": self.extractor.get("movie_db", "Filename") or "Not extracted", - "display_formatters": [TextFormatter.grey], - }, - ] + return "\n".join( + [ + self._props.title("Filename Extracted Data"), + self._props.filename_order, + self._props.filename_title, + self._props.filename_year, + self._props.filename_source, + self._props.filename_frame_class, + self._props.filename_hdr, + self._props.filename_audio_langs, + self._props.filename_special_info, + self._props.filename_movie_db, + ] + ) - return FormatterApplier.format_data_items(data) + @conditional_decorators.wrap("", "\n") + def metadata_section(self) -> str: + """Return formatted metadata extraction data""" + return "\n".join( + [ + self._props.title("Metadata Extraction"), + self._props.metadata_title, + self._props.metadata_duration, + self._props.metadata_artist, + ] + ) - def selected_data(self) -> list[str]: - """Return formatted selected data string""" - import logging - import os - if os.getenv("FORMATTER_LOG"): - frame_class = self.extractor.get("frame_class") - audio_langs = self.extractor.get("audio_langs") - logging.info(f"Selected data - frame_class: {frame_class!r}, audio_langs: {audio_langs!r}") - # Also check from Filename source - frame_class_filename = self.extractor.get("frame_class", "Filename") - audio_langs_filename = self.extractor.get("audio_langs", "Filename") - logging.info(f"From Filename - frame_class: {frame_class_filename!r}, audio_langs: {audio_langs_filename!r}") - data = [ - { - "label": "Selected Data", - "label_formatters": [TextFormatter.bold, TextFormatter.uppercase], - }, - { - "label": "Order", - "label_formatters": [TextFormatter.bold, TextFormatter.blue], - "value": self.extractor.get("order") or "", - "value_formatters": [TextFormatter.yellow], - }, - { - "label": "Title", - "label_formatters": [TextFormatter.bold, TextFormatter.blue], - "value": self.extractor.get("title") or "", - "value_formatters": [TextFormatter.yellow], - }, - { - "label": "Year", - "label_formatters": [TextFormatter.bold, TextFormatter.blue], - "value": self.extractor.get("year") or "", - "value_formatters": [TextFormatter.yellow], - }, - { - "label": "Special info", - "label_formatters": [TextFormatter.bold, TextFormatter.blue], - "value": self.extractor.get("special_info") or "", - "value_formatters": [ - SpecialInfoFormatter.format_special_info, - TextFormatter.yellow, - ], - }, - { - "label": "Source", - "label_formatters": [TextFormatter.bold, TextFormatter.blue], - "value": self.extractor.get("source") or "", - "value_formatters": [TextFormatter.yellow], - }, - { - "label": "Frame class", - "label_formatters": [TextFormatter.bold, TextFormatter.blue], - "value": self.extractor.get("frame_class") or "", - "value_formatters": [TextFormatter.yellow], - }, - { - "label": "HDR", - "label_formatters": [TextFormatter.bold, TextFormatter.blue], - "value": self.extractor.get("hdr") or "", - "value_formatters": [TextFormatter.yellow], - }, - { - "label": "Audio langs", - "label_formatters": [TextFormatter.bold, TextFormatter.blue], - "value": self.extractor.get("audio_langs") or "", - "value_formatters": [TextFormatter.yellow], - }, - { - "label": "Database Info", - "label_formatters": [TextFormatter.bold, TextFormatter.blue], - "value": self.extractor.get("movie_db") or "", - "value_formatters": [SpecialInfoFormatter.format_database_info, TextFormatter.yellow], - } - ] - return FormatterApplier.format_data_items(data) + @conditional_decorators.wrap("", "\n") + def mediainfo_section(self) -> str: + """Return formatted media info extraction data""" + return "\n".join( + [ + self._props.title("Media Info Extraction"), + self._props.mediainfo_duration, + self._props.mediainfo_frame_class, + self._props.mediainfo_resolution, + self._props.mediainfo_aspect_ratio, + self._props.mediainfo_hdr, + self._props.mediainfo_audio_langs, + self._props.mediainfo_anamorphic, + self._props.mediainfo_extension, + self._props.mediainfo_3d_layout, + ] + ) diff --git a/renamer/views/media_panel_properties.py b/renamer/views/media_panel_properties.py new file mode 100644 index 0000000..a23b0fd --- /dev/null +++ b/renamer/views/media_panel_properties.py @@ -0,0 +1,456 @@ +"""Media panel property methods using decorator pattern. + +This module contains all the formatted property methods that return +display-ready values for the media panel view. Each property uses +decorators to apply formatting, similar to ProposedFilenameView. +""" + +from ..formatters import ( + date_decorators, + text_decorators, + conditional_decorators, + size_decorators, + extension_decorators, + duration_decorators, + resolution_decorators, + special_info_decorators, + track_decorators, +) + + +class MediaPanelProperties: + """Formatted properties for media panel display. + + This class provides @property methods that return formatted values + ready for display in the media panel. Each property applies the + appropriate decorators for styling and formatting. + """ + + def __init__(self, extractor): + self._extractor = extractor + + # ============================================================ + # Section Title Formatter + # ============================================================ + + @text_decorators.bold() + @text_decorators.uppercase() + def title(self, title: str) -> str: + """Format section title with bold and uppercase styling.""" + return title + + # ============================================================ + # File Info Properties + # ============================================================ + + @property + @conditional_decorators.wrap("Path: ") + @text_decorators.blue() + @text_decorators.escape() + def file_path(self) -> str: + """Get file path formatted with label.""" + return self._extractor.get("file_path") + + @property + @conditional_decorators.wrap("Size: ") + @text_decorators.green() + @size_decorators.size_full() + def file_size(self) -> str: + """Get file size formatted with label.""" + return self._extractor.get("file_size") + + @property + @conditional_decorators.wrap("Name: ") + @text_decorators.cyan() + @text_decorators.escape() + def file_name(self) -> str: + """Get file name formatted with label.""" + return self._extractor.get("file_name") + + @property + @conditional_decorators.wrap("Modified: ") + @text_decorators.magenta() + @date_decorators.modification_date() + def modification_time(self) -> str: + """Get modification time formatted with label.""" + return self._extractor.get("modification_time") + + @property + @conditional_decorators.wrap("Extension: ") + @text_decorators.green() + @extension_decorators.extension_info() + def extension_fileinfo(self) -> str: + """Get extension from FileInfo formatted with label.""" + return self._extractor.get("extension") + + # ============================================================ + # TMDB Properties + # ============================================================ + + @property + @text_decorators.blue() + @conditional_decorators.wrap("ID: ") + @text_decorators.yellow() + @conditional_decorators.default("") + def tmdb_id(self) -> str: + """Get TMDB ID formatted with label.""" + return self._extractor.get("tmdb_id", "TMDB") + + @property + @text_decorators.blue() + @conditional_decorators.wrap("Title: ") + @text_decorators.yellow() + @conditional_decorators.default("") + def tmdb_title(self) -> str: + """Get TMDB title formatted with label.""" + return self._extractor.get("title", "TMDB") + + @property + @text_decorators.blue() + @conditional_decorators.wrap("Original Title: ") + @text_decorators.yellow() + @conditional_decorators.default("") + def tmdb_original_title(self) -> str: + """Get TMDB original title formatted with label.""" + return self._extractor.get("original_title", "TMDB") + + @property + @text_decorators.blue() + @conditional_decorators.wrap("Year: ") + @text_decorators.yellow() + @conditional_decorators.default("") + def tmdb_year(self) -> str: + """Get TMDB year formatted with label.""" + return self._extractor.get("year", "TMDB") + + @property + @text_decorators.blue() + @conditional_decorators.wrap("Database Info: ") + @text_decorators.yellow() + @conditional_decorators.default("") + @special_info_decorators.database_info() + def tmdb_database_info(self) -> str: + """Get TMDB database info formatted with label.""" + return self._extractor.get("movie_db", "TMDB") + + @property + # @text_decorators.blue() + @conditional_decorators.default("") + @text_decorators.url() + def tmdb_url(self) -> str: + """Get TMDB URL formatted with label.""" + return self._extractor.get("tmdb_url", "TMDB") + + # ============================================================ + # Metadata Extraction Properties + # ============================================================ + + @property + @conditional_decorators.wrap("Title: ") + @text_decorators.grey() + @conditional_decorators.default("Not extracted") + def metadata_title(self) -> str: + """Get metadata title formatted with label.""" + return self._extractor.get("title", "Metadata") + + @property + @conditional_decorators.wrap("Duration: ") + @text_decorators.grey() + @conditional_decorators.default("Not extracted") + @duration_decorators.duration_full() + def metadata_duration(self) -> str: + """Get metadata duration formatted with label.""" + return self._extractor.get("duration", "Metadata") + + @property + @conditional_decorators.wrap("Artist: ") + @text_decorators.grey() + @conditional_decorators.default("Not extracted") + def metadata_artist(self) -> str: + """Get metadata artist formatted with label.""" + return self._extractor.get("artist", "Metadata") + + # ============================================================ + # MediaInfo Extraction Properties + # ============================================================ + + @property + @conditional_decorators.wrap("Duration: ") + @text_decorators.grey() + @conditional_decorators.default("Not extracted") + @duration_decorators.duration_full() + def mediainfo_duration(self) -> str: + """Get MediaInfo duration formatted with label.""" + return self._extractor.get("duration", "MediaInfo") + + @property + @conditional_decorators.wrap("Frame Class: ") + @text_decorators.grey() + @conditional_decorators.default("Not extracted") + def mediainfo_frame_class(self) -> str: + """Get MediaInfo frame class formatted with label.""" + return self._extractor.get("frame_class", "MediaInfo") + + @property + @conditional_decorators.wrap("Resolution: ") + @text_decorators.grey() + @conditional_decorators.default("Not extracted") + @resolution_decorators.resolution_dimensions() + def mediainfo_resolution(self) -> str: + """Get MediaInfo resolution formatted with label.""" + return self._extractor.get("resolution", "MediaInfo") + + @property + @conditional_decorators.wrap("Aspect Ratio: ") + @text_decorators.grey() + @conditional_decorators.default("Not extracted") + def mediainfo_aspect_ratio(self) -> str: + """Get MediaInfo aspect ratio formatted with label.""" + return self._extractor.get("aspect_ratio", "MediaInfo") + + @property + @conditional_decorators.wrap("HDR: ") + @text_decorators.grey() + @conditional_decorators.default("Not extracted") + def mediainfo_hdr(self) -> str: + """Get MediaInfo HDR formatted with label.""" + return self._extractor.get("hdr", "MediaInfo") + + @property + @conditional_decorators.wrap("Audio Languages: ") + @text_decorators.grey() + @conditional_decorators.default("Not extracted") + def mediainfo_audio_langs(self) -> str: + """Get MediaInfo audio languages formatted with label.""" + return self._extractor.get("audio_langs", "MediaInfo") + + @property + @conditional_decorators.wrap("Anamorphic: ") + @text_decorators.grey() + @conditional_decorators.default("Not extracted") + def mediainfo_anamorphic(self) -> str: + """Get MediaInfo anamorphic formatted with label.""" + return self._extractor.get("anamorphic", "MediaInfo") + + @property + @conditional_decorators.wrap("Extension: ") + @text_decorators.grey() + @conditional_decorators.default("Not extracted") + @extension_decorators.extension_info() + def mediainfo_extension(self) -> str: + """Get MediaInfo extension formatted with label.""" + return self._extractor.get("extension", "MediaInfo") + + @property + @conditional_decorators.wrap("3D Layout: ") + @text_decorators.grey() + @conditional_decorators.default("Not extracted") + def mediainfo_3d_layout(self) -> str: + """Get MediaInfo 3D layout formatted with label.""" + return self._extractor.get("3d_layout", "MediaInfo") + + # ============================================================ + # Filename Extraction Properties + # ============================================================ + + @property + @conditional_decorators.wrap("Order: ") + @text_decorators.yellow() + @conditional_decorators.default("Not extracted") + def filename_order(self) -> str: + """Get filename order formatted with label.""" + return self._extractor.get("order", "Filename") + + @property + @conditional_decorators.wrap("Movie title: ") + @text_decorators.grey() + @conditional_decorators.default("") + def filename_title(self) -> str: + """Get filename title formatted with label.""" + return self._extractor.get("title", "Filename") + + @property + @conditional_decorators.wrap("Year: ") + @text_decorators.grey() + @conditional_decorators.default("") + def filename_year(self) -> str: + """Get filename year formatted with label.""" + return self._extractor.get("year", "Filename") + + @property + @conditional_decorators.wrap("Video source: ") + @text_decorators.grey() + @conditional_decorators.default("Not extracted") + def filename_source(self) -> str: + """Get filename source formatted with label.""" + return self._extractor.get("source", "Filename") + + @property + @conditional_decorators.wrap("Frame class: ") + @text_decorators.grey() + @conditional_decorators.default("Not extracted") + def filename_frame_class(self) -> str: + """Get filename frame class formatted with label.""" + return self._extractor.get("frame_class", "Filename") + + @property + @conditional_decorators.wrap("HDR: ") + @text_decorators.grey() + @conditional_decorators.default("Not extracted") + def filename_hdr(self) -> str: + """Get filename HDR formatted with label.""" + return self._extractor.get("hdr", "Filename") + + @property + @conditional_decorators.wrap("Audio langs: ") + @text_decorators.grey() + @conditional_decorators.default("Not extracted") + def filename_audio_langs(self) -> str: + """Get filename audio languages formatted with label.""" + return self._extractor.get("audio_langs", "Filename") + + @property + @conditional_decorators.wrap("Special info: ") + @text_decorators.grey() + @conditional_decorators.default("Not extracted") + @text_decorators.blue() + @special_info_decorators.special_info() + def filename_special_info(self) -> str: + """Get filename special info formatted with label.""" + return self._extractor.get("special_info", "Filename") + + @property + @conditional_decorators.wrap("Movie DB: ") + @text_decorators.grey() + @conditional_decorators.default("Not extracted") + def filename_movie_db(self) -> str: + """Get filename movie DB formatted with label.""" + return self._extractor.get("movie_db", "Filename") + + # ============================================================ + # Selected Data Properties + # ============================================================ + + @property + @text_decorators.blue() + @conditional_decorators.wrap("Order: ") + @text_decorators.yellow() + @conditional_decorators.default("") + def selected_order(self) -> str: + """Get selected order formatted with label.""" + return self._extractor.get("order") + + @property + @text_decorators.blue() + @conditional_decorators.wrap("Title: ") + @text_decorators.yellow() + @conditional_decorators.default("") + def selected_title(self) -> str: + """Get selected title formatted with label.""" + return self._extractor.get("title") + + @property + @text_decorators.blue() + @conditional_decorators.wrap("Year: ") + @text_decorators.yellow() + @conditional_decorators.default("") + def selected_year(self) -> str: + """Get selected year formatted with label.""" + return self._extractor.get("year") + + @property + @text_decorators.blue() + @conditional_decorators.wrap("Special info: ") + @text_decorators.yellow() + @conditional_decorators.default("") + @special_info_decorators.special_info() + def selected_special_info(self) -> str: + """Get selected special info formatted with label.""" + return self._extractor.get("special_info") + + @property + @text_decorators.blue() + @conditional_decorators.wrap("Source: ") + @text_decorators.yellow() + @conditional_decorators.default("") + def selected_source(self) -> str: + """Get selected source formatted with label.""" + return self._extractor.get("source") + + @property + @text_decorators.blue() + @conditional_decorators.wrap("Frame class: ") + @text_decorators.yellow() + @conditional_decorators.default("") + def selected_frame_class(self) -> str: + """Get selected frame class formatted with label.""" + return self._extractor.get("frame_class") + + @property + @text_decorators.blue() + @conditional_decorators.wrap("HDR: ") + @text_decorators.yellow() + @conditional_decorators.default("") + def selected_hdr(self) -> str: + """Get selected HDR formatted with label.""" + return self._extractor.get("hdr") + + @property + @text_decorators.blue() + @conditional_decorators.wrap("Audio langs: ") + @text_decorators.yellow() + @conditional_decorators.default("") + def selected_audio_langs(self) -> str: + """Get selected audio languages formatted with label.""" + return self._extractor.get("audio_langs") + + @property + @text_decorators.blue() + @conditional_decorators.wrap("Database Info: ") + @text_decorators.yellow() + @conditional_decorators.default("") + @special_info_decorators.database_info() + def selected_database_info(self) -> str: + """Get selected database info formatted with label.""" + return self._extractor.get("movie_db") + + @property + def video_tracks(self) -> list[str]: + """Return formatted video track data""" + tracks = self._extractor.get("video_tracks", "MediaInfo") or [] + return [self.video_track(track, i) for i, track in enumerate(tracks, start=1)] + + @text_decorators.green() + @conditional_decorators.wrap("Video Track {index}: ") + @track_decorators.video_track() + def video_track(self, track, index) -> str: + """Get video track info formatted with label.""" + return track + + @property + def audio_tracks(self) -> list[str]: + """Return formatted audio track data""" + tracks = self._extractor.get("audio_tracks", "MediaInfo") or [] + return [self.audio_track(track, i) for i, track in enumerate(tracks, start=1)] + + @text_decorators.yellow() + @conditional_decorators.wrap("Audio Track {index}: ") + @track_decorators.audio_track() + def audio_track(self, track, index) -> str: + """Get audio track info formatted with label.""" + return track + + @property + def subtitle_tracks(self) -> list[str]: + """Return formatted subtitle track data""" + tracks = self._extractor.get("subtitle_tracks", "MediaInfo") or [] + return [ + self.subtitle_track(track, i) for i, track in enumerate(tracks, start=1) + ] + + @text_decorators.magenta() + @conditional_decorators.wrap("Subtitle Track {index}: ") + @track_decorators.subtitle_track() + def subtitle_track(self, track, index) -> str: + """Get subtitle track info formatted with label.""" + return track diff --git a/uv.lock b/uv.lock index a788f98..8e7d5b5 100644 --- a/uv.lock +++ b/uv.lock @@ -462,7 +462,7 @@ wheels = [ [[package]] name = "renamer" -version = "0.6.3" +version = "0.6.5" source = { editable = "." } dependencies = [ { name = "langcodes" },