Skip to content

This is a small passion project I am starting to make a simple but clean e-reader program that I intend to initially build for desktop, but to later expand to docker and app form. I am a newbie at this sort of thing. So please forgive my being green. Open to any help or advice.

Notifications You must be signed in to change notification settings

TaleWarden/Flipr-E-Reader

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

E-Reader Application

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.

Features

Library Management

  • 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

Reading Experience

  • 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

Performance

  • Asynchronous book loading and processing
  • Efficient image handling and caching
  • Smooth animations and transitions
  • Memory-optimized content handling
  • Multi-threaded operations for better performance

Requirements

  • Python 3.8 or newer
  • Operating System: Windows/Linux/MacOS
  • Required Python packages (installed automatically via requirements.txt)

Installation

  1. Clone this repository:
git clone [repository-url]
cd e-reader
  1. Create and activate a virtual environment (recommended):
python -m venv venv
# On Windows:
venv\Scripts\activate
# On Linux/MacOS:
source venv/bin/activate
  1. Install the required dependencies:
pip install -r requirements.txt

Usage

  1. Start the application:
python main.py
  1. Add books to your library:

    • Click the "Add Books" button
    • Select single or multiple books
    • Supported formats: .epub, .pdf, .txt
  2. 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
  3. 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

Keyboard Shortcuts

Library View

  • Ctrl+F: Focus search bar
  • Delete: Delete selected books
  • Esc: Exit selection mode

Reader View

  • Left Arrow: Previous page
  • Right Arrow: Next page
  • F11 or F: Toggle fullscreen
  • Esc: Exit fullscreen mode
  • B: Return to library

Advanced Features

Genre Detection

The application includes smart genre detection using:

  • Book metadata analysis
  • Google Books API integration
  • Keyword and pattern matching
  • Machine learning-based categorization

Cover Management

  • Automatic cover extraction from ebooks
  • Online cover search capability
  • High-quality cover display
  • Cover caching for performance

Performance Optimization

  • Asynchronous loading of library content
  • Image optimization and caching
  • Memory-efficient content handling
  • Multi-threaded operations

License

This project is open source and available under the MIT License.

Contributing

Contributions are welcome! Please feel free to submit pull requests.

About

This is a small passion project I am starting to make a simple but clean e-reader program that I intend to initially build for desktop, but to later expand to docker and app form. I am a newbie at this sort of thing. So please forgive my being green. Open to any help or advice.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages