Enhance project structure and add new files for enrichment and analysis

- Updated AGENTS.md to reflect changes in CLI commands and module organization, including the addition of an enrichment step and new functional modules.
- Introduced analysis.json, identities.json, inventory.csv, and plan.json to support enriched metadata and execution planning.
- Added CODE_IMPROVEMENTS.md to document identified code issues and proposed solutions for future enhancements.
- Updated README.md to include new enrichment features and configuration options.
- Removed unused dependency on ffmpeg-python from pyproject.toml.

These changes improve the overall functionality and maintainability of the Video Library Manager project.
This commit is contained in:
windyboy
2026-02-10 16:56:17 +08:00
parent f0c951ad7f
commit dcd87754cf
39 changed files with 145509 additions and 642 deletions
+10 -10
View File
@@ -216,7 +216,7 @@ class TestDuplicateDetection:
),
]
result = detect_duplicates(identities, files)
result = detect_duplicates(list(zip(identities, files)))
# Should find one duplicate group (The Matrix)
assert len(result) == 1
@@ -260,7 +260,7 @@ class TestDuplicateDetection:
),
]
result = detect_duplicates(identities, files)
result = detect_duplicates(list(zip(identities, files)))
# Should find one duplicate group (S01E01)
assert len(result) == 1
@@ -282,7 +282,7 @@ class TestDuplicateDetection:
VideoFile(Path("/movies/Movie.B.2021.mkv"), "Movie.B.2021.mkv", 1000000000, datetime.now(), "movie"),
]
result = detect_duplicates(identities, files)
result = detect_duplicates(list(zip(identities, files)))
assert len(result) == 0
@@ -298,7 +298,7 @@ class TestDuplicateDetection:
VideoFile(Path("/movies/Unknown.Movie.2.mkv"), "Unknown.Movie.2.mkv", 1000000000, datetime.now(), "movie"),
]
result = detect_duplicates(identities, files)
result = detect_duplicates(list(zip(identities, files)))
# Should not detect duplicates for files needing review
assert len(result) == 0
@@ -315,7 +315,7 @@ class TestDuplicateDetection:
VideoFile(Path("/series/Unknown.Show.Episode.1.mkv"), "Unknown.Show.Episode.1.mkv", 1000000000, datetime.now(), "series"),
]
result = detect_duplicates(identities, files)
result = detect_duplicates(list(zip(identities, files)))
assert len(result) == 0
@@ -331,7 +331,7 @@ class TestDuplicateDetection:
VideoFile(Path("/series/Show.Name.Season.1.mkv"), "Show.Name.Season.1.mkv", 1000000000, datetime.now(), "series"),
]
result = detect_duplicates(identities, files)
result = detect_duplicates(list(zip(identities, files)))
assert len(result) == 0
@@ -367,7 +367,7 @@ class TestDuplicateDetection:
),
]
result = detect_duplicates(identities, files)
result = detect_duplicates(list(zip(identities, files)))
assert len(result) == 1
comparison = result[0].quality_comparison
@@ -400,7 +400,7 @@ class TestDuplicateDetection:
VideoFile(Path("/series/Show.S01E02.mkv"), "Show.S01E02.mkv", 1000000000, datetime.now(), "series"),
]
result = detect_duplicates(identities, files)
result = detect_duplicates(list(zip(identities, files)))
# Should find duplicates for both E01 and E02
assert len(result) == 2
@@ -417,7 +417,7 @@ class TestDuplicateDetection:
VideoFile(Path("/movies/The.Thing.2011.mkv"), "The.Thing.2011.mkv", 1000000000, datetime.now(), "movie"),
]
result = detect_duplicates(identities, files)
result = detect_duplicates(list(zip(identities, files)))
assert len(result) == 0
@@ -433,7 +433,7 @@ class TestDuplicateDetection:
VideoFile(Path("/series/Show.S02E01.mkv"), "Show.S02E01.mkv", 1000000000, datetime.now(), "series"),
]
result = detect_duplicates(identities, files)
result = detect_duplicates(list(zip(identities, files)))
assert len(result) == 0