- Add workers API for pool management
- Add jobs API for queue operations
- Add scan-rules API for CRUD operations
- Add scanner API for control and status
- Add settings API for configuration management
- Add system API for resource monitoring
- Add filesystem API for path browsing
- Add setup wizard API endpoint
- Add Worker class with CPU/GPU support
- Add WorkerPool for orchestrating multiple workers
- Support dynamic add/remove workers at runtime
- Add health monitoring with graceful shutdown
- Add ScanRule model with configurable conditions
- Add FileAnalyzer for ffprobe-based media analysis
- Add LibraryScanner with manual, scheduled and watcher modes
- Add LanguageDetector for audio language detection
- Support rule-based filtering with priority evaluation
- Add SQLAlchemy database setup with session management
- Add Job model with status, priority and progress tracking
- Add QueueManager with priority queue and deduplication
- Add SystemSettings model for database-backed configuration
- Add SettingsService with caching and defaults
- Add SystemMonitor for CPU/RAM/GPU resource monitoring
- Add LanguageCode utilities (moved from root)
- Reduce .env.example to only DATABASE_URL
- Simplify backend/config.py to only read database connection
- All other settings now managed via database and Web UI
- Add CLAUDE.md with project architecture and operation modes
- Add backend/README.md with setup and usage instructions
- Add test_backend.py with automated tests for config, database, and queue
- Update requirements.txt with optional dependencies structure
- Update .env.example with all configuration options
- Add backend/config.py with Pydantic settings validation
- Support for standalone, provider, and hybrid operation modes
- Multi-database backend configuration (SQLite/PostgreSQL/MariaDB)
- Environment variable validation with helpful error messages
- Worker and Whisper model configuration
- Line 1139: Change has_subtitle_language() to has_subtitle_language_in_file() for SKIPIFINTERNALSUBLANG check
- Line 1148: Change has_subtitle_language() to has_subtitle_of_language_in_folder() for SKIPIFEXTERNALSUB check
This fixes the logic conflict where:
- SKIPIFINTERNALSUBLANG should only check for internal/embedded subtitles
- SKIPIFEXTERNALSUB should only check for external subtitle files
Previously both were using has_subtitle_language() which checks both internal AND external,
causing incorrect skip behavior when users wanted to generate subtitles despite having
internal subtitles but skip when external subtitle files exist.
I think the example is wrong here. The values should be passed as boolean and float instead of strings.
Not sure but I suppose this issue was caused by this. I at least got the exact same error message: https://github.com/McCloudS/subgen/issues/114