- Prioritize AppData path for Windows users (more accurate for modern Calibre)
- Add helpful note for users who don't have customize.py.json yet
- Clarify that plugin binding can be skipped if no plugins are used
## Major Features Added
### 📧 Auto-Send System
- Automatically emails newly ingested books to users' eReaders
- Configurable delay (1-60 minutes) to allow for processing
- Supports multiple formats (EPUB, MOBI, AZW3, KEPUB, PDF)
- Integrates with existing Calibre-Web email configuration
- Respects user preferences and access controls
### 🏷️ Auto-Metadata Fetch System Enhancements
- Enhanced metadata fetching with multiple provider support
- Added smart metadata application mode with intelligent criteria
- Moved control from user-level to admin-only configuration
- Implemented provider hierarchy with drag-and-drop interface
- Added quality-based metadata replacement logic
## Database Schema Changes
### CWA Settings (scripts/cwa_schema.sql)
- Added auto_metadata_smart_application SMALLINT DEFAULT 0
- Enables intelligent vs direct metadata replacement modes
## User Interface Updates
### Admin Interface (cps/templates/cwa_settings.html)
- Added smart metadata application toggle with detailed tooltip
- Enhanced provider hierarchy management
### User Interface (cps/templates/user_edit.html)
- Removed auto_metadata_fetch controls (now admin-only)
- Cleaned up user profile interface
## Smart Metadata Application Logic
### Direct Replacement Mode (Default)
- Takes metadata from preferred provider exactly as provided
- Complete replacement of existing metadata
- Philosophy: "Just take the metadata as is"
### Smart Application Mode (Optional)
- Intelligent criteria for metadata replacement:
* Titles: Only replace if longer/more descriptive
* Descriptions: Only replace if longer/more detailed
* Publishers: Only replace if current field is empty
* Covers: Only replace if higher resolution
* Authors: Always update for consistency
* Tags/Series: Always add for discoverability
## Technical Implementation
### Metadata Helper (cps/metadata_helper.py)
- Enhanced _apply_metadata_to_book() with smart application logic
- Updated fetch_and_apply_metadata() for admin-only control
- Integrated CWA_DB settings checking for both modes
### Ingest Processor (scripts/ingest_processor.py)
- Removed user-based metadata checking
- Streamlined to use admin settings only
- Improved processing pipeline integration
### Form Processing (cps/cwa_functions.py)
- Auto-detection of boolean settings from schema
- Automatic handling of auto_metadata_smart_application
## Provider System Enhancements
- Google Books, Internet Archive, DNB, ComicVine, Douban support
- Priority-based searching with first-success-wins logic
- Quality criteria evaluation for metadata selection
- Configurable provider hierarchy with drag-and-drop interface
## Documentation
### Wiki Pages Created
- Auto-Send-System.md: Comprehensive user and admin guide
- Auto-Metadata-Fetch-System.md: Detailed configuration and usage
- Enhanced with relevant emojis for improved readability
- Covers troubleshooting, best practices, and technical details
## Integration & Compatibility
- Maintains backward compatibility with existing email settings
- Integrates seamlessly with auto-convert and ingest systems
- Respects existing access controls and user permissions
- No breaking changes to existing functionality
## Testing Notes
- Database schema updates will apply automatically on app startup
- Settings form processing handles new boolean field automatically
- Metadata fetching now controlled entirely by admin settings
- User interface cleaned of deprecated metadata controls
This implementation provides a complete automated book delivery and metadata enhancement system while maintaining the principle of admin-controlled automation and user-friendly operation.
Latest firmware version writes empty values for Instapaper parameters if missing from the /initialization response. Add default values to `NATIVE_KOBO_RESOURCES`
- Upgrade base image from Ubuntu Jammy to Noble (24.04 LTS)
- Add deadsnakes PPA for Python 3.13.7 installation
- Update Dockerfile to use Python 3.13 with proper virtual environment setup
- Fix package dependencies (libldap2 vs libldap-2.5-0 for Noble)
- Create comprehensive pyproject.toml with Python 3.10-3.13 support declarations
- Update requirements.txt with conditional dependencies:
* iso-639>=0.4.5,<0.5.0 for Python <3.12
* pycountry>=24.6.1,<25.0.0 for Python >=3.12 (fixes pkg_resources deprecation)
- Update GitHub Actions workflow to use Python 3.13
- Move development documentation to DEV/ directory:
* PYTHON_313_UPGRADE.md
* PYTHON_313_UPGRADE_STATUS.md
* V0.6.25_fixes_analysis.ipynb
Benefits:
- Improved performance and memory efficiency
- Enhanced error messages and debugging
- Future-proof with Python 3.13 support until 2029
- Eliminates pkg_resources deprecation warnings
- Maintains full backward compatibility
Tested: Full Docker build successful, all CWA services operational