Commit Graph

855 Commits

Author SHA1 Message Date
crocodilestick 9564428b90 docs: improve Windows path guidance and add troubleshooting note
- 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
2025-09-12 21:47:38 +02:00
Seth Voltz 4f66b4083b docs: rewrote the customize section to better fit the existing docs 2025-09-05 12:28:03 -07:00
Seth Voltz 3fd97431ca docs: update language around setting up customize.py.json file 2025-09-05 12:18:48 -07:00
crocodilestick 3e3d2e5e4d feat: Implement auto-send and enhanced auto-metadata fetch systems
## 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.
2025-09-04 18:22:54 +02:00
crocodilestick a386604c43 Added light mode backgrounds for caliBlur 2025-09-04 18:14:26 +02:00
crocodilestick df1173fe8f Fixed ill-aligned sort element in first column of book list table 2025-09-04 15:38:40 +02:00
crocodilestick f25650666b Changed metadata enforcement system to only trigger when meaningful metadata changes have been made.
Fixes #599
2025-09-04 14:46:45 +02:00
crocodilestick 3f25c24d92 Fixed send to ereader menu styling and added ability to enter emails not already saved to the users account 2025-09-04 12:58:50 +02:00
crocodilestick 57a741e71a Added Send-to-Ereader menu to the book details page 2025-09-04 11:27:01 +02:00
crocodilestick 931ad20fa6 Fixed issues with translations 2025-09-03 15:17:03 +02:00
crocodilestick 3fee95902b Corrected pyproject.toml not being in the repo 2025-09-03 14:43:43 +02:00
crocodilestick 54955f4e7f Fixed styling of new duplicates page 2025-09-03 14:40:35 +02:00
crocodilestick f1085e4602 Made it so that the Duplicates sidebar option is displayed for new and existing users alike 2025-09-03 14:11:54 +02:00
CrocodileStick 48599fe63c Merge pull request #511 from Domoel/main
Enhancement: Implement full two-way deletion sync for shelves + Make archiving on device deletion conditional
2025-09-03 12:08:07 +02:00
Dome 3d06da434c Merge branch 'main' into main 2025-09-03 07:22:26 +00:00
CrocodileStick de93350de0 Merge pull request #595 from HotGarbo/patch-1
Add default Instapaper config values to kobo.py
2025-09-02 22:22:14 +02:00
Hot Garbage 9cecbaf096 Add default Instapaper config values to kobo.py
Latest firmware version writes empty values for Instapaper parameters if missing from the /initialization response. Add default values to `NATIVE_KOBO_RESOURCES`
2025-09-02 10:36:21 -07:00
crocodilestick 1c0d92e083 Merge branch 'main' of https://github.com/crocodilestick/Calibre-Web-Automated 2025-09-02 18:32:36 +02:00
crocodilestick cf666f58c1 feat: Upgrade to Python 3.13 with full compatibility and modernization
- 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
2025-09-02 18:32:32 +02:00
CrocodileStick f4ba2c05f4 Merge pull request #589 from brunofin/ignore-temp-ingest
Add 'temp' to ignored formats list
2025-09-02 17:14:51 +02:00
crocodilestick 733da42df8 Removed duplicate scripts 2025-09-02 17:06:43 +02:00
crocodilestick 7124a955e5 Updated translation system to automatically detect and correct duplicate entries 2025-09-02 17:06:06 +02:00
CrocodileStick 31a05f0bb8 Merge pull request #581 from Valenth/Valenth-updage-message-fr
Update fr messages.po
2025-09-02 16:02:32 +02:00
CrocodileStick 89513d7a65 Merge pull request #592 from nstwfdev/feature/ru_translations
Add translations for 'ru' language
2025-09-02 16:01:44 +02:00
CrocodileStick 0cf8a668f8 Merge pull request #416 from dgruhin-hrizn/fork-calibre-web-automated-enhanced
Feature: Duplicate Book Management System & Enhanced Ingest Reliability
2025-09-02 15:54:20 +02:00
crocodilestick 789ebb834b Added fallback to db call for timeout duration 2025-09-02 15:44:19 +02:00
crocodilestick 955320d648 Added ability to change ingest timeout duration in CWA Settings 2025-09-02 15:37:38 +02:00
crocodilestick cbffdc95a4 Integrated PR [#416](https://github.com/crocodilestick/Calibre-Web-Automated/issues/416) with the most recent version of CWA 2025-09-02 15:34:20 +02:00
crocodilestick d40eafd744 Added Arabic to generate_translation_status.py 2025-09-02 15:33:47 +02:00
crocodilestick 00c1b6bcd3 Integrated PR #416 with the most recent version of CWA 2025-09-02 15:32:04 +02:00
crocodilestick 2de2bf691d Updated README with details on new OAuth system 2025-09-02 11:37:03 +02:00
crocodilestick 6b88c8b165 Fixed db config page styling 2025-09-02 11:24:31 +02:00
crocodilestick 6765ec8630 Temporarily reverted workflows dur to low arm64 runner availability 2025-09-01 22:52:40 +02:00
Dome 9e29c95730 Merge branch 'main' into main 2025-09-01 20:04:03 +00:00
Timur Sadullayev d4185404b0 Add translations for 'ru' language 2025-09-01 12:41:35 -04:00
crocodilestick b688766c36 Fixed syntax errors in workflows 2025-09-01 17:05:35 +02:00
crocodilestick 4aa444fa12 Enhanced OAuth implementation started in PR #590 to be more robust and have a better feature set 2025-09-01 17:01:05 +02:00
crocodilestick d5d9ef6860 Changed workflows to a matrix style that uses native runners to build each image rather than QEMU emulation 2025-09-01 16:39:01 +02:00
crocodilestick ff719cbf67 Merge branch 'main' of https://github.com/crocodilestick/Calibre-Web-Automated 2025-09-01 12:30:34 +02:00
CrocodileStick b45f47bc1b Merge pull request #590 from tseho/oauth
Generic OIDC/OAuth2 support
2025-09-01 12:30:15 +02:00
crocodilestick 0b433f4f8b Added Arabic Translations & Fixed syntax errors in other language files 2025-09-01 12:12:27 +02:00
Tseho 44b053b541 Add Generic OAuth support 2025-08-31 09:58:06 +02:00
Tseho 6f08fd8271 Enable ProxyFix to support https behind reverse proxy 2025-08-31 09:52:34 +02:00
Bruno Finger 0f03b4e2eb Add 'temp' to ignored formats list 2025-08-30 15:56:27 +02:00
crocodilestick 1dbc7b6ed0 Added settings persistence & progress tracking to Reader in Web UI (currently only writes to localStorage) 2025-08-29 12:42:02 +02:00
crocodilestick c7508590f4 Replaced outdated "apple-mobile-web-app-capable" with "mobile-web-app-capable" 2025-08-29 12:40:30 +02:00
Romain cd550f10f9 Update messages.po 2025-08-28 15:01:17 +02:00
crocodilestick 4052479a23 [bug]Author Sort is Sorting by Date Added
Fixes #360
2025-08-28 14:34:38 +02:00
crocodilestick 8d4dcc166c Fixed syntax error in Italian Translation PR 2025-08-28 13:22:13 +02:00
crocodilestick 94d06d58c2 Fixed syntax error from french translation PR 2025-08-28 13:20:12 +02:00