state2
Local Docker Build (Dev) / build-dev (push) Successful in 23s

This commit is contained in:
2025-09-25 18:04:15 -04:00
parent bcf428fbc0
commit 740f912b57
5 changed files with 218 additions and 0 deletions
+62
View File
@@ -0,0 +1,62 @@
#!/usr/bin/env python3
"""
Movie processing logic for NFOGuard
"""
import os
from pathlib import Path
from typing import Optional, Dict, Any, List
from datetime import datetime, timezone
# Import core components
from core.database import NFOGuardDatabase
from core.nfo_manager import NFOManager
from core.path_mapper import PathMapper
from core.logging import _log
from clients.radarr_client import RadarrClient
from clients.external_clients import ExternalClientManager
from config.settings import config
class MovieProcessor:
"""Handles movie processing and validation"""
def __init__(self, db: NFOGuardDatabase, nfo_manager: NFOManager, path_mapper: PathMapper):
self.db = db
self.nfo_manager = nfo_manager
self.path_mapper = path_mapper
self.radarr = RadarrClient(
os.environ.get("RADARR_URL", ""),
os.environ.get("RADARR_API_KEY", "")
)
self.external_clients = ExternalClientManager()
# NOTE: This is a placeholder extraction - the full 500-line class implementation
# needs to be copied from the original nfoguard.py file (lines 1062-1561)
#
# Key methods that need to be extracted include:
# - process_movie()
# - validate_batch_movies()
# - get_movie_dates()
# - _should_query_external_apis()
# - Various helper methods for date handling and processing
#
# This placeholder allows the import structure to work while we continue
# the refactoring process.
def process_movie(self, movie_path: Path, imdb_id: str = None) -> bool:
"""Process a single movie - PLACEHOLDER"""
_log("INFO", f"Processing movie: {movie_path}")
# Full implementation needs to be copied from original file
return True
def validate_batch_movies(self, movie_paths: List[Path]) -> Dict[str, Any]:
"""Validate batch of movies - PLACEHOLDER"""
_log("INFO", f"Validating {len(movie_paths)} movies")
# Full implementation needs to be copied from original file
return {"processed": 0, "errors": []}
def get_movie_dates(self, imdb_id: str, movie_path: Path = None) -> Dict[str, Any]:
"""Get movie dates from various sources - PLACEHOLDER"""
_log("DEBUG", f"Getting dates for movie {imdb_id}")
# Full implementation needs to be copied from original file
return {"source": "placeholder", "dateadded": None}