From 2e5cef4424c67b16be168d7399fd8be95a572d60 Mon Sep 17 00:00:00 2001 From: sHa Date: Mon, 5 Jan 2026 17:11:42 +0000 Subject: [PATCH] Refactor code structure for improved readability and maintainability --- dist/renamer-0.8.11-py3-none-any.whl | Bin 0 -> 127518 bytes pyproject.toml | 2 +- renamer/constants/__init__.py | 7 ++- renamer/constants/media_constants.py | 66 ++++++++++++++++++++-- renamer/extractors/default_extractor.py | 2 +- renamer/extractors/fileinfo_extractor.py | 8 ++- renamer/extractors/mediainfo_extractor.py | 32 +++++++---- uv.lock | 2 +- 8 files changed, 96 insertions(+), 23 deletions(-) create mode 100644 dist/renamer-0.8.11-py3-none-any.whl diff --git a/dist/renamer-0.8.11-py3-none-any.whl b/dist/renamer-0.8.11-py3-none-any.whl new file mode 100644 index 0000000000000000000000000000000000000000..2b6ff2439de66bca8be73bfa75dbf477fc1e8acb GIT binary patch literal 127518 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 literal 0 HcmV?d00001 diff --git a/pyproject.toml b/pyproject.toml index dd26383..24824a2 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "renamer" -version = "0.8.10" +version = "0.8.11" description = "Terminal-based media file renamer and metadata viewer" readme = "README.md" requires-python = ">=3.11" diff --git a/renamer/constants/__init__.py b/renamer/constants/__init__.py index e06d8bd..5623817 100644 --- a/renamer/constants/__init__.py +++ b/renamer/constants/__init__.py @@ -12,7 +12,11 @@ This package contains constants split into logical modules: """ # Import from all constant modules -from .media_constants import MEDIA_TYPES, META_TYPE_TO_EXTENSIONS +from .media_constants import ( + MEDIA_TYPES, + META_TYPE_TO_EXTENSIONS, + get_extension_from_format +) from .source_constants import SOURCE_DICT from .frame_constants import FRAME_CLASSES, NON_STANDARD_QUALITY_INDICATORS from .moviedb_constants import MOVIE_DB_DICT @@ -25,6 +29,7 @@ __all__ = [ # Media types 'MEDIA_TYPES', 'META_TYPE_TO_EXTENSIONS', + 'get_extension_from_format', # Source types 'SOURCE_DICT', # Frame classes diff --git a/renamer/constants/media_constants.py b/renamer/constants/media_constants.py index 830ba05..99d9908 100644 --- a/renamer/constants/media_constants.py +++ b/renamer/constants/media_constants.py @@ -1,6 +1,7 @@ """Media type constants for supported video formats. This module defines all supported video container formats and their metadata. +Each entry includes the MediaInfo format name for proper detection. """ MEDIA_TYPES = { @@ -8,50 +9,79 @@ MEDIA_TYPES = { "description": "Matroska multimedia container", "meta_type": "Matroska", "mime": "video/x-matroska", + "mediainfo_format": "Matroska", }, "mk3d": { "description": "Matroska 3D multimedia container", "meta_type": "Matroska", "mime": "video/x-matroska", + "mediainfo_format": "Matroska", }, "avi": { "description": "Audio Video Interleave", "meta_type": "AVI", "mime": "video/x-msvideo", + "mediainfo_format": "AVI", }, "mov": { "description": "QuickTime movie", "meta_type": "QuickTime", "mime": "video/quicktime", + "mediainfo_format": "QuickTime", }, "mp4": { "description": "MPEG-4 video container", "meta_type": "MP4", "mime": "video/mp4", + "mediainfo_format": "MPEG-4", }, "wmv": { "description": "Windows Media Video", "meta_type": "ASF", "mime": "video/x-ms-wmv", + "mediainfo_format": "Windows Media", + }, + "flv": { + "description": "Flash Video", + "meta_type": "FLV", + "mime": "video/x-flv", + "mediainfo_format": "Flash Video", }, - "flv": {"description": "Flash Video", "meta_type": "FLV", "mime": "video/x-flv"}, "webm": { "description": "WebM multimedia", "meta_type": "WebM", "mime": "video/webm", + "mediainfo_format": "WebM", + }, + "m4v": { + "description": "MPEG-4 video", + "meta_type": "MP4", + "mime": "video/mp4", + "mediainfo_format": "MPEG-4", + }, + "3gp": { + "description": "3GPP multimedia", + "meta_type": "MP4", + "mime": "video/3gpp", + "mediainfo_format": "MPEG-4", + }, + "ogv": { + "description": "Ogg Video", + "meta_type": "Ogg", + "mime": "video/ogg", + "mediainfo_format": "Ogg", }, - "m4v": {"description": "MPEG-4 video", "meta_type": "MP4", "mime": "video/mp4"}, - "3gp": {"description": "3GPP multimedia", "meta_type": "MP4", "mime": "video/3gpp"}, - "ogv": {"description": "Ogg Video", "meta_type": "Ogg", "mime": "video/ogg"}, "mpg": { "description": "MPEG video", "meta_type": "MPEG-PS", "mime": "video/mpeg", + "mediainfo_format": "MPEG-PS", }, "mpeg": { "description": "MPEG video", "meta_type": "MPEG-PS", "mime": "video/mpeg", + "mediainfo_format": "MPEG-PS", }, } @@ -64,3 +94,31 @@ for ext, info in MEDIA_TYPES.items(): if meta_type not in META_TYPE_TO_EXTENSIONS: META_TYPE_TO_EXTENSIONS[meta_type] = [] META_TYPE_TO_EXTENSIONS[meta_type].append(ext) + +# Reverse mapping: MediaInfo format name -> extension +# Built from MEDIA_TYPES at module load +MEDIAINFO_FORMAT_TO_EXTENSION = {} +for ext, info in MEDIA_TYPES.items(): + mediainfo_format = info.get('mediainfo_format') + if mediainfo_format: + # Store only the first (primary) extension for each format + if mediainfo_format not in MEDIAINFO_FORMAT_TO_EXTENSION: + MEDIAINFO_FORMAT_TO_EXTENSION[mediainfo_format] = ext + + +def get_extension_from_format(format_name: str) -> str | None: + """Get file extension from MediaInfo format name. + + Args: + format_name: Format name as reported by MediaInfo (e.g., "MPEG-4", "Matroska") + + Returns: + File extension (e.g., "mp4", "mkv") or None if format is unknown + + Example: + >>> get_extension_from_format("MPEG-4") + 'mp4' + >>> get_extension_from_format("Matroska") + 'mkv' + """ + return MEDIAINFO_FORMAT_TO_EXTENSION.get(format_name) diff --git a/renamer/extractors/default_extractor.py b/renamer/extractors/default_extractor.py index e717fca..1887a68 100644 --- a/renamer/extractors/default_extractor.py +++ b/renamer/extractors/default_extractor.py @@ -101,7 +101,7 @@ class DefaultExtractor: return None def extract_extension(self) -> Optional[str]: - """Return file extension. Returns None as no extension is available.""" + """Return file extension. Returns 'ext' as default placeholder.""" return "ext" def extract_tmdb_url(self) -> Optional[str]: diff --git a/renamer/extractors/fileinfo_extractor.py b/renamer/extractors/fileinfo_extractor.py index 4faf801..fcdf7f3 100644 --- a/renamer/extractors/fileinfo_extractor.py +++ b/renamer/extractors/fileinfo_extractor.py @@ -83,10 +83,12 @@ class FileInfoExtractor: return str(self._file_path) @cached_method() - def extract_extension(self) -> str: + def extract_extension(self) -> str | None: """Extract file extension without the dot. Returns: - File extension in lowercase without leading dot (e.g., "mkv", "mp4") + File extension in lowercase without leading dot (e.g., "mkv", "mp4"), + or None if no extension exists """ - return self._file_path.suffix.lower().lstrip('.') \ No newline at end of file + ext = self._file_path.suffix.lower().lstrip('.') + return ext if ext else None \ No newline at end of file diff --git a/renamer/extractors/mediainfo_extractor.py b/renamer/extractors/mediainfo_extractor.py index d1d0a65..32bef90 100644 --- a/renamer/extractors/mediainfo_extractor.py +++ b/renamer/extractors/mediainfo_extractor.py @@ -1,7 +1,7 @@ from pathlib import Path from pymediainfo import MediaInfo from collections import Counter -from ..constants import FRAME_CLASSES, META_TYPE_TO_EXTENSIONS +from ..constants import FRAME_CLASSES, get_extension_from_format from ..cache import cached_method, Cache import langcodes import logging @@ -265,23 +265,31 @@ class MediaInfoExtractor: @cached_method() def extract_extension(self) -> str | None: - """Extract file extension based on container format""" + """Extract file extension based on container format. + + Uses MediaInfo's format field to determine the appropriate file extension. + Handles special cases like Matroska 3D (mk3d vs mkv). + + Returns: + File extension (e.g., "mp4", "mkv") or None if format is unknown + """ if not self.media_info: return None general_track = next((t for t in self.media_info.tracks if t.track_type == 'General'), None) if not general_track: return None format_ = getattr(general_track, 'format', None) - if format_ in META_TYPE_TO_EXTENSIONS: - exts = META_TYPE_TO_EXTENSIONS[format_] - if format_ == 'Matroska': - if self.is_3d() and 'mk3d' in exts: - return 'mk3d' - else: - return 'mkv' - else: - return exts[0] if exts else None - return None + if not format_: + return None + + # Use the constants function to get extension from format + ext = get_extension_from_format(format_) + + # Special case: Matroska 3D uses mk3d extension + if ext == 'mkv' and self.is_3d(): + return 'mk3d' + + return ext @cached_method() def extract_3d_layout(self) -> str | None: diff --git a/uv.lock b/uv.lock index e2fa171..17cc825 100644 --- a/uv.lock +++ b/uv.lock @@ -462,7 +462,7 @@ wheels = [ [[package]] name = "renamer" -version = "0.8.10" +version = "0.8.11" source = { editable = "." } dependencies = [ { name = "langcodes" },