Changes
🚀 New Features
IMDB Ratings Integration System
- Complete IMDB Ratings Database: Automated daily synchronization with official IMDB datasets from datasets.imdbws.com
- Advanced Content Router: New IMDB-based routing evaluator supporting sophisticated rating and vote count criteria
- Compound IMDB Filtering: Support for filtering content based on both rating thresholds and minimum vote requirements
- Intelligent Rating Evaluation: Comprehensive operator support including equals, greater than, between ranges, and array matching
- Streaming Data Processing: Efficient parsing of compressed IMDB datasets with retry logic and exponential backoff
- Background Database Updates: Non-blocking IMDB data population with scheduled daily refreshes at 2:30 AM
Enhanced Content Routing
- IMDB Router Evaluator: Priority 80 evaluator for routing decisions based on IMDB ratings and vote counts
- Compound Value Support: Advanced filtering allowing combinations like "rating >= 8.0 AND votes >= 10,000"
- Range-Based Matching: Support for between operations with configurable min/max thresholds
- Array Membership Testing: "in" and "notIn" operators for matching against lists of acceptable ratings
Advanced UI Components
- IMDB Rating Input Component: Specialized input with vote count toggle and validation
- Compound Value Handling: UI support for complex rating + vote count combinations
- Range Input Controls: Min/max input pairs for between operations with proper validation
- Real-time Validation: Form validation for compound IMDB objects and range comparisons
🔧 Technical Implementation
Database Architecture
- New Table:
imdb_ratings
: Stores tconst, average_rating, and num_votes with proper indexing - Cross-Database Compatibility: Full support for both SQLite and PostgreSQL with optimized chunk sizes
- Bulk Operations: Efficient insert/replace methods with conflict resolution and transaction management
- Performance Optimization: Chunked processing (5000 records for PostgreSQL, 100 for SQLite)
Service Layer Expansion
- ImdbService: Complete service handling ratings lookup, database updates, and statistics
- Enhanced Streaming Utilities: New
streamLines
utility with retry logic and Retry-After header support - Database Methods: Specialized methods for IMDB operations including bulk replace and statistics
- Plugin Integration: IMDB plugin with automated scheduling and background processing
API & Schema Updates
- Enhanced Router Schemas: Extended condition schemas to support compound IMDB values
- Validation Improvements: Enhanced
isNonEmptyValue
function for complex object validation - Type Safety: Complete TypeScript integration with proper type inference and validation
- OpenAPI Updates: Regenerated API documentation reflecting new IMDB integration capabilities
🛠️ Critical Bug Fixes
- Form Validation: Fixed "All conditions must be completely filled out" error when enabling IMDB vote count filtering
- Delete Sync Validation: Resolved maxDeletionPrevention field validation to properly accept values between 1-100
- API Timeout Enhancement: Increased Sonarr and Radarr API timeouts from 60 to 120 seconds to prevent failures during bulk operations
🔄 Migration Notes
Database Changes
- Automatic Migration: New
imdb_ratings
table created automatically during startup - Initial Population: First-time IMDB dataset download and processing (several minutes)
- Backwards Compatibility: All existing functionality remains unchanged
No user action required for existing installations - all changes are backward compatible.
Full Changelog: v0.5.10...v0.5.11
Docker Image: ghcr.io/jamcalli/pulsarr:v0.5.11
Upgrade Path: Standard update process - database migrations run automatically
- IMDB Ratings Integration and Advanced Content Routing (#545) @jamcalli
- feat: update anime and IMDB plugins to populate databases in the back… (#542) @jamcalli
- Feature/imdb ratings router (#541) @jamcalli
Docker
docker pull lakker/pulsarr:0.5.11