A modern, feature-rich e-reader application built with Python and PyQt6 that supports EPUB, PDF, and TXT files. The application provides a clean, user-friendly interface with both grid and carousel view modes for your library.
- Grid and carousel view modes for book display
- Smart sorting options (Title, Author, Genre, Reading Progress)
- Book cover extraction and display
- Online cover search for books missing covers
- Book metadata extraction and management
- Multi-book selection and batch operations
- Search functionality
- Genre detection and categorization
- Support for multiple file formats (EPUB, PDF, TXT)
- Fullscreen reading mode
- Auto-hiding navigation in fullscreen
- Reading progress tracking
- Page-by-page navigation
- Keyboard shortcuts for navigation
- Automatic bookmarking
- Dark/light mode support
- Asynchronous book loading and processing
- Efficient image handling and caching
- Smooth animations and transitions
- Memory-optimized content handling
- Multi-threaded operations for better performance
- Python 3.8 or newer
- Operating System: Windows/Linux/MacOS
- Required Python packages (installed automatically via requirements.txt)
- Clone this repository:
git clone [repository-url]
cd e-reader- Create and activate a virtual environment (recommended):
python -m venv venv
# On Windows:
venv\Scripts\activate
# On Linux/MacOS:
source venv/bin/activate- Install the required dependencies:
pip install -r requirements.txt- Start the application:
python main.py-
Add books to your library:
- Click the "Add Books" button
- Select single or multiple books
- Supported formats: .epub, .pdf, .txt
-
Library Management:
- Toggle between grid and carousel views
- Sort books by title, author, genre, or reading progress
- Use the search bar to find specific books
- Select multiple books for batch operations
- Right-click books for additional options
-
Reading Books:
- Double-click any book to start reading
- Use arrow keys or on-screen buttons to navigate
- Press ESC to exit fullscreen mode
- Progress is automatically saved
Ctrl+F: Focus search barDelete: Delete selected booksEsc: Exit selection mode
Left Arrow: Previous pageRight Arrow: Next pageF11orF: Toggle fullscreenEsc: Exit fullscreen modeB: Return to library
The application includes smart genre detection using:
- Book metadata analysis
- Google Books API integration
- Keyword and pattern matching
- Machine learning-based categorization
- Automatic cover extraction from ebooks
- Online cover search capability
- High-quality cover display
- Cover caching for performance
- Asynchronous loading of library content
- Image optimization and caching
- Memory-efficient content handling
- Multi-threaded operations
This project is open source and available under the MIT License.
Contributions are welcome! Please feel free to submit pull requests.