A CLI and GUI tool to download a book on https://shamela.ws to an EPUB book.


Keywords
epub3, shamela, book, epub, islamic
License
GPL-3.0-only
Install
pip install shamela2epub==1.4.3

Documentation

shamela2epub

A CLI and GUI tool to download a book on Shamela Library Website into an EPUB book.

en ara

logo

Codacy Badge PyPI version PyPI Downloads

GitHub release GitHub Downloads

made-with-python Open Source Love

PayPal LiberaPay

Disclaimer:

  • This software is freeware and open source and is only intended for personal or educational use.

Installation

From PyPI

pip install shamela2epub

From the cloned repository

# Using poetry
poetry install

# or using pip 18+
pip install .

Usage

Command-line Tool (CLI)

python3 -m shamela2epub download URL
# python3 -m shamela2epub download "https://shamela.ws/book/823"

python3 -m shamela2epub download --help
Usage: python -m shamela2epub download [OPTIONS] URL

  Download Shamela book form URL to ePub

Options:
  -o, --output TEXT  ePub output book custom name
  --help             Show this message and exit.

Graphical User Interface (GUI)

gui

  • If you installed the package from PyPI, you can use the following command:
shamela2epubgui
  • If you downloaded the latest gui exe file from releases you can open it normally and use it.
  • Otherwise, use normal python command:
python3 -m shamela2epub gui

Features

  • CLI and GUI!
  • Creates an EPUB3 RTL standard book.
  • Automatically adds a page for book information.
  • Automatically generated table of contents with support for nested chapters.
  • Automatically adds book part and page number to each page's footer.
  • Sanitizes the book HTML from unnecessary elements and classes.
  • Converts inline CSS color styles to CSS classes.
  • Inline footnotes for easier navigation, click any footnote, and it will appear in a popup instead of having all footnotes in page footer.

Known Issues

  • Books that have a last nested section with level deeper (e.g. 3) than its next section (e.g. 2) and both have the same page number (e.g. page_017.xhtml) cannot be converted to KFX unless that last nested section is removed.

TODO

Next

  • You tell me :)

Maybe

  • Fix TOC conversion problem when last nested section with level deeper than its next has the same page number by removing it from the TOC.

Acknowledgments

  • GUI icons are made by the amazing Phosphor Icons (books - duotone - #AB8B64).