commit remaining modified project files

This commit is contained in:
windyboy
2026-04-07 08:07:18 +08:00
parent d010cf936c
commit fb128c70d6
28 changed files with 4140 additions and 19643 deletions
+20 -10
View File
@@ -13,7 +13,13 @@ from vlm.io import (
load_inventory_csv,
save_analysis_json,
)
from vlm.models import MovieIdentity, SeriesIdentity
from vlm.models import (
AnalysisCompletenessRecord,
AnalysisDuplicateIdentityRecord,
AnalysisDuplicateRecord,
MovieIdentity,
SeriesIdentity,
)
def analyze_cmd(
@@ -39,19 +45,16 @@ def analyze_cmd(
click.echo()
inventory_files = load_inventory_csv(inventory) if inventory else None
movie_identities, series_identities, video_files = identities_to_analysis_input(
movie_pairs, series_pairs = identities_to_analysis_input(
identities_data, inventory_files=inventory_files
)
series_identities = [identity for identity, _ in series_pairs]
click.echo("Analyzing series completeness...")
completeness_results = analyze_series_completeness(series_identities)
click.echo("Detecting duplicates...")
n_movies = len(movie_identities)
identity_file_pairs = (
list(zip(movie_identities, video_files[:n_movies]))
+ list(zip(series_identities, video_files[n_movies:]))
)
identity_file_pairs = movie_pairs + series_pairs
duplicate_groups = detect_duplicates(identity_file_pairs)
click.echo()
@@ -71,7 +74,7 @@ def analyze_cmd(
click.echo(f"Saving analysis results to: {output}")
output.parent.mkdir(parents=True, exist_ok=True)
completeness_list = [
completeness_list: list[AnalysisCompletenessRecord] = [
{
"series_title": c.series_title,
"season": c.season,
@@ -80,14 +83,21 @@ def analyze_cmd(
}
for c in completeness_results
]
duplicates_list = []
duplicates_list: list[AnalysisDuplicateRecord] = []
for d in duplicate_groups:
if isinstance(d.identity, MovieIdentity):
identity_info = {"type": "movie", "title": d.identity.title, "year": d.identity.year}
identity_info: AnalysisDuplicateIdentityRecord = {
"type": "movie",
"title": d.identity.title,
"year": d.identity.year,
"season": None,
"episodes": [],
}
else:
identity_info = {
"type": "series",
"title": d.identity.title,
"year": None,
"season": d.identity.season,
"episodes": d.identity.episodes,
}