- Converted static methods to instance methods in FileInfoExtractor and FilenameExtractor for better encapsulation. - Enhanced MediaInfoExtractor to initialize with file path and extract media information upon instantiation. - Updated MetadataExtractor to handle metadata extraction with improved error handling and added methods for meta type detection. - Introduced ColorFormatter for consistent text formatting across the application. - Refactored MediaFormatter to utilize the new extractor structure and improve output formatting. - Removed redundant utility functions and replaced them with direct calls in extractors. - Added ProposedNameFormatter for better handling of proposed filename formatting. - Updated extension handling to use MEDIA_TYPES for descriptions instead of VIDEO_EXT_DESCRIPTIONS.
24 lines
1.1 KiB
Python
24 lines
1.1 KiB
Python
from pathlib import Path
|
|
from ..constants import MEDIA_TYPES
|
|
from .color_formatter import ColorFormatter
|
|
|
|
|
|
class ExtensionFormatter:
|
|
"""Class for formatting extension information"""
|
|
|
|
@staticmethod
|
|
def check_extension_match(ext_name: str, meta_type: str) -> bool:
|
|
"""Check if file extension matches detected type"""
|
|
if ext_name in MEDIA_TYPES and MEDIA_TYPES[ext_name]['meta_type'] == meta_type:
|
|
return True
|
|
return False
|
|
|
|
@staticmethod
|
|
def format_extension_info(ext_name: str, ext_desc: str, meta_type: str, meta_desc: str, match: bool) -> str:
|
|
"""Format extension information with match status"""
|
|
if match:
|
|
return f"{ColorFormatter.bold_green('Extension:')} {ext_name} - {ColorFormatter.grey(ext_desc)}"
|
|
else:
|
|
return (f"{ColorFormatter.bold_yellow('Extension:')} {ext_name} - {ColorFormatter.grey(ext_desc)}\n"
|
|
f"{ColorFormatter.bold_red('Meta extension:')} {meta_type} - {ColorFormatter.grey(meta_desc)}\n"
|
|
f"{ColorFormatter.bold_red('Warning: Extensions do not match!')}") |