From 6b343681a54a92f35738686f0bbf6ee330ba5262 Mon Sep 17 00:00:00 2001 From: sHa Date: Tue, 30 Dec 2025 06:31:51 +0000 Subject: [PATCH] feat: Bump version to 0.5.5 and update frame class detection logic --- dist/renamer-0.5.5-py3-none-any.whl | Bin 0 -> 47681 bytes pyproject.toml | 2 +- renamer/constants.py | 2 +- renamer/extractors/mediainfo_extractor.py | 7 ++++--- renamer/test/test_mediainfo_frame_class.json | 6 ++++++ uv.lock | 2 +- 6 files changed, 13 insertions(+), 6 deletions(-) create mode 100644 dist/renamer-0.5.5-py3-none-any.whl diff --git a/dist/renamer-0.5.5-py3-none-any.whl b/dist/renamer-0.5.5-py3-none-any.whl new file mode 100644 index 0000000000000000000000000000000000000000..9953884b437d655d810b4933de2db7c443c5f78f GIT binary patch literal 47681 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 literal 0 HcmV?d00001 diff --git a/pyproject.toml b/pyproject.toml index d2ab657..90e5ec7 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "renamer" -version = "0.5.4" +version = "0.5.5" description = "Terminal-based media file renamer and metadata viewer" readme = "README.md" requires-python = ">=3.11" diff --git a/renamer/constants.py b/renamer/constants.py index 93f236f..2477835 100644 --- a/renamer/constants.py +++ b/renamer/constants.py @@ -193,7 +193,7 @@ SPECIAL_EDITIONS = { "Workprint": ["Workprint"], "Rough Cut": ["Rough Cut"], "Special Assembly Cut": ["Special Assembly Cut"], - "Amazon Edition": ["Amazon Edition", "Amazon"], + "Amazon Edition": ["Amazon Edition", "Amazon", "AMZN"], "Netflix Edition": ["Netflix Edition"], "HBO Edition": ["HBO Edition"], } diff --git a/renamer/extractors/mediainfo_extractor.py b/renamer/extractors/mediainfo_extractor.py index df780b3..d7a4a86 100644 --- a/renamer/extractors/mediainfo_extractor.py +++ b/renamer/extractors/mediainfo_extractor.py @@ -88,9 +88,10 @@ class MediaInfoExtractor: # First, try to match width to typical widths width_matches = [] for frame_class, info in FRAME_CLASSES.items(): - if width in info['typical_widths'] and frame_class.endswith(scan_type): - diff = abs(height - info['nominal_height']) - width_matches.append((frame_class, diff)) + for tw in info['typical_widths']: + if abs(width - tw) <= 5 and frame_class.endswith(scan_type): + diff = abs(height - info['nominal_height']) + width_matches.append((frame_class, diff)) if width_matches: # Choose the frame class with the smallest height difference diff --git a/renamer/test/test_mediainfo_frame_class.json b/renamer/test/test_mediainfo_frame_class.json index bc176f7..531b36c 100644 --- a/renamer/test/test_mediainfo_frame_class.json +++ b/renamer/test/test_mediainfo_frame_class.json @@ -142,5 +142,11 @@ "resolution": [512, 288], "interlaced": false, "expected_frame_class": "288p" + }, + { + "resolution": [1918, 812], + "interlaced": false, + "expected_frame_class": "1080p", + "testname": "test-mistakenly-high-height" } ] \ No newline at end of file diff --git a/uv.lock b/uv.lock index b6e0bef..6909e35 100644 --- a/uv.lock +++ b/uv.lock @@ -342,7 +342,7 @@ wheels = [ [[package]] name = "renamer" -version = "0.5.4" +version = "0.5.5" source = { editable = "." } dependencies = [ { name = "langcodes" },