# Changelog All notable changes to this project will be documented in this file. ## [Unreleased] # Changelog ## [0.5.0] - 2025-09-08 ### Added - **Major Performance Enhancement**: Direct Radarr database access - New `RadarrDbClient` class for high-performance database queries - Support for both SQLite and PostgreSQL Radarr databases - Eliminates API pagination overhead for import date lookups - Up to 10x faster movie import date detection - **Bulk Operations**: Added bulk import date queries for multiple movies - **Database Configuration**: New environment variables for database connection - `RADARR_DB_TYPE` (sqlite/postgresql) - `RADARR_DB_HOST`, `RADARR_DB_PORT`, `RADARR_DB_NAME` for PostgreSQL - `RADARR_DB_USER`, `RADARR_DB_PASSWORD` for PostgreSQL authentication - `RADARR_DB_PATH` for SQLite databases - `RADARR_DB_URL` connection string support - **Testing Suite**: Added performance comparison test script (`test_db_performance.py`) ### Changed - **RadarrClient Enhanced**: Automatic database client initialization with API fallback - **Movie Lookup Optimization**: Database-first approach for movie IMDb ID resolution - **Import Date Detection**: Optimized SQL queries replace complex API event parsing - **Dependencies**: Added `psycopg2-binary` for PostgreSQL support ### Technical Details - Database queries use proper SQL joins for efficient data retrieval - Maintains full backward compatibility with API-only installations - Graceful fallback to API methods when database access is unavailable - Support for both connection strings and individual parameter configuration ## [0.4.1] - 2025-01-09 ### Fixed - **Radarr Client**: Fixed event type parsing for string-based event types (grabbed, downloadFolderImported, etc.) - **Radarr Client**: Improved grab event detection to filter out library addition events and only count actual download grabs - **Radarr Client**: Fixed JSON parsing errors when handling event data that's already a dictionary - **Radarr Client**: Enhanced validation of grab events to require download metadata (sourceTitle or indexer) ### Improved - **Radarr Client**: Better chronological event processing to find earliest actual download dates - **Radarr Client**: More accurate import date detection by validating grab events have real download information ## [0.4.0] - 2025-01-08 ### Changed - Switched to using Radarr's numeric event types for more reliable import detection - Added constants for EVENT_TYPE_GRABBED (1), IMPORTED (3), etc. - Removed legacy string-based event type checks - Improved event type parsing and validation ### Changed - Added documentation for Radarr API event types (1=grabbed, 3=imported) - Improved event type detection using Radarr's internal event type IDs - Removed old string-based event type checks in favor of numeric IDs ## [0.3.8] - 2025-09-08 ### Changed - Use Radarr's numeric EventType (3="Imported") for more accurate import date detection - Simplified history processing logic ## [0.3.7] - 2025-09-08 ### Changed - Improved import date detection by tracking grab dates as fallback - Added warning when falling back to grab date ## [0.3.6] - 2025-09-08 ### Changed - Improved import detection filtering - Reduced debug noise for non-import events - Enhanced logging clarity for import matches - Added more context to import event messages ## [0.3.5] - 2025-09-08 ### Changed - Improved Radarr import detection to handle more cases - Added support for downloadFolderImported events - Enhanced path matching with better character cleaning - Added fuzzy title matching by removing articles - Reduced debug noise by only logging relevant matches ## [0.3.4] - 2025-09-08 ### Changed - Added downloadFolderImported event support - Improved path matching flexibility ## [0.3.3] - 2025-09-08 ### Changed - Added flexible path matching - Added sourcePath support - Initial support for title/year matching