refactor CLI command modules and synchronize docs

This commit is contained in:
windyboy
2026-02-16 12:31:26 +08:00
parent 0be802eac5
commit 2dd329cba9
41 changed files with 1066 additions and 753 deletions
+14 -17
View File
@@ -1,6 +1,5 @@
"""Analyze command implementation."""
import json
from pathlib import Path
from typing import Optional
@@ -8,9 +7,13 @@ import click
from vlm.analysis import analyze_series_completeness, detect_duplicates
from vlm.context import CLIContext
from vlm.io import identities_to_analysis_input, load_identities_json, load_inventory_csv
from vlm.io import (
identities_to_analysis_input,
load_identities_json,
load_inventory_csv,
save_analysis_json,
)
from vlm.models import MovieIdentity, SeriesIdentity
from vlm.utils import utc_now
def analyze_cmd(
@@ -68,7 +71,6 @@ def analyze_cmd(
click.echo(f"Saving analysis results to: {output}")
output.parent.mkdir(parents=True, exist_ok=True)
generation_timestamp = utc_now().strftime("%Y-%m-%dT%H:%M:%S")
completeness_list = [
{
"series_title": c.series_title,
@@ -96,19 +98,14 @@ def analyze_cmd(
"quality_comparison": d.quality_comparison,
}
)
analysis_data = {
"vlm_schema_version": "1.0",
"metadata": {
"generated": generation_timestamp,
"source_identities": str(input),
"total_movies": len(movies_data),
"total_series": len(series_data),
},
"completeness": completeness_list,
"duplicates": duplicates_list,
}
with open(output, "w", encoding="utf-8") as jsonfile:
json.dump(analysis_data, jsonfile, indent=2, ensure_ascii=False)
save_analysis_json(
completeness=completeness_list,
duplicates=duplicates_list,
source_identities=input,
total_movies=len(movies_data),
total_series=len(series_data),
output=output,
)
click.echo("Analysis results saved successfully!")
logger.info(