# shamela2epub
> A CLI and GUI tool to download a book on [Shamela Library Website](https://shamela.ws) into an EPUB book.
[![en](https://img.shields.io/badge/README-English-AB8B64.svg)](README.md)
[![ara](https://img.shields.io/badge/README-Arabic-AB8B64.svg)](README.ar.md)
![logo](shamela2epub/assets/books-duotone.svg)
[![Codacy Badge](https://app.codacy.com/project/badge/Grade/901b1123964c4468a88b0cfcde9147fe)](https://www.codacy.com/gh/yshalsager/shamela2epub/dashboard?utm_source=github.com&utm_medium=referral&utm_content=yshalsager/shamela2epub&utm_campaign=Badge_Grade)
[![PyPI version](https://badge.fury.io/py/shamela2epub.svg)](https://pypi.org/project/shamela2epub/)
[![PyPI Downloads](https://static.pepy.tech/personalized-badge/shamela2epub?period=total\&units=international_system\&left_color=grey\&right_color=blue\&left_text=Total%20Downloads%20\(PyPI\))](https://pepy.tech/project/shamela2epub)
[![GitHub release](https://img.shields.io/github/release/yshalsager/shamela2epub.svg)](https://github.com/yshalsager/shamela2epub/releases/)
[![GitHub Downloads](https://img.shields.io/github/downloads/yshalsager/shamela2epub/total.svg)](https://github.com/yshalsager/shamela2epub/releases/latest)
[![made-with-python](https://img.shields.io/badge/Made%20with-Python%203-3776AB?style=flat\&labelColor=3776AB\&logo=python\&logoColor=white\&link=https://www.python.org/)](https://www.python.org/)
[![Open Source Love](https://badges.frapsoft.com/os/v1/open-source.svg?v=103)](https://github.com/ellerbrock/open-source-badges/)
[![PayPal](https://img.shields.io/badge/PayPal-Donate-00457C?style=flat\&labelColor=00457C\&logo=PayPal\&logoColor=white\&link=https://www.paypal.me/yshalsager)](https://www.paypal.me/yshalsager)
[![LiberaPay](https://img.shields.io/badge/Liberapay-Support-F6C915?style=flat\&labelColor=F6C915\&logo=Liberapay\&logoColor=white\&link=https://liberapay.com/yshalsager)](https://liberapay.com/yshalsager)
**Disclaimer:**
* This software is freeware and open source and is only intended for personal or educational use.
## Installation
### From PyPI
```bash
pip install shamela2epub
```
### From the cloned repository
```bash
# Using poetry
poetry install
# or using pip 18+
pip install .
```
## Usage
### Command-line Tool (CLI)
```bash
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](gui.png)
* If you installed the package from PyPI, you can use the following command:
```bash
shamela2epubgui
```
* If you downloaded the latest gui exe file from releases you can open it normally and use it.
* Otherwise, use normal python command:
```bash
python3 -m shamela2epub gui
```
## Features
* CLI and GUI!
* Creates an [EPUB3](https://www.w3.org/publishing/epub3/epub-spec.html) 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](https://phosphoricons.com/) (books - duotone - `#AB8B64`).
Raw data
{
"_id": null,
"home_page": "https://github.com/yshalsager/shamela2epub/",
"name": "shamela2epub",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.12,<3.13",
"maintainer_email": "",
"keywords": "epub3,shamela,book,epub,islamic",
"author": "yshalsager",
"author_email": "ysh-alsager@hotmail.com",
"download_url": "https://files.pythonhosted.org/packages/ff/b2/4b9ffaa962463ab7ca4942057cd3e5493ffa87d9ca67e4e9ca5a3885e6bb/shamela2epub-1.4.3.tar.gz",
"platform": null,
"description": "# shamela2epub\n\n> A CLI and GUI tool to download a book on [Shamela Library Website](https://shamela.ws) into an EPUB book.\n\n[![en](https://img.shields.io/badge/README-English-AB8B64.svg)](README.md)\n[![ara](https://img.shields.io/badge/README-Arabic-AB8B64.svg)](README.ar.md)\n\n![logo](shamela2epub/assets/books-duotone.svg)\n\n[![Codacy Badge](https://app.codacy.com/project/badge/Grade/901b1123964c4468a88b0cfcde9147fe)](https://www.codacy.com/gh/yshalsager/shamela2epub/dashboard?utm_source=github.com&utm_medium=referral&utm_content=yshalsager/shamela2epub&utm_campaign=Badge_Grade)\n[![PyPI version](https://badge.fury.io/py/shamela2epub.svg)](https://pypi.org/project/shamela2epub/)\n[![PyPI Downloads](https://static.pepy.tech/personalized-badge/shamela2epub?period=total\\&units=international_system\\&left_color=grey\\&right_color=blue\\&left_text=Total%20Downloads%20\\(PyPI\\))](https://pepy.tech/project/shamela2epub)\n\n[![GitHub release](https://img.shields.io/github/release/yshalsager/shamela2epub.svg)](https://github.com/yshalsager/shamela2epub/releases/)\n[![GitHub Downloads](https://img.shields.io/github/downloads/yshalsager/shamela2epub/total.svg)](https://github.com/yshalsager/shamela2epub/releases/latest)\n\n[![made-with-python](https://img.shields.io/badge/Made%20with-Python%203-3776AB?style=flat\\&labelColor=3776AB\\&logo=python\\&logoColor=white\\&link=https://www.python.org/)](https://www.python.org/)\n[![Open Source Love](https://badges.frapsoft.com/os/v1/open-source.svg?v=103)](https://github.com/ellerbrock/open-source-badges/)\n\n[![PayPal](https://img.shields.io/badge/PayPal-Donate-00457C?style=flat\\&labelColor=00457C\\&logo=PayPal\\&logoColor=white\\&link=https://www.paypal.me/yshalsager)](https://www.paypal.me/yshalsager)\n[![LiberaPay](https://img.shields.io/badge/Liberapay-Support-F6C915?style=flat\\&labelColor=F6C915\\&logo=Liberapay\\&logoColor=white\\&link=https://liberapay.com/yshalsager)](https://liberapay.com/yshalsager)\n\n**Disclaimer:**\n\n* This software is freeware and open source and is only intended for personal or educational use.\n\n## Installation\n\n### From PyPI\n\n```bash\npip install shamela2epub\n```\n\n### From the cloned repository\n\n```bash\n# Using poetry\npoetry install\n\n# or using pip 18+\npip install .\n```\n\n## Usage\n\n### Command-line Tool (CLI)\n\n```bash\npython3 -m shamela2epub download URL\n# python3 -m shamela2epub download \"https://shamela.ws/book/823\"\n\npython3 -m shamela2epub download --help\nUsage: python -m shamela2epub download [OPTIONS] URL\n\n Download Shamela book form URL to ePub\n\nOptions:\n -o, --output TEXT ePub output book custom name\n --help Show this message and exit.\n```\n\n### Graphical User Interface (GUI)\n\n![gui](gui.png)\n\n* If you installed the package from PyPI, you can use the following command:\n\n```bash\nshamela2epubgui\n```\n\n* If you downloaded the latest gui exe file from releases you can open it normally and use it.\n* Otherwise, use normal python command:\n\n```bash\npython3 -m shamela2epub gui\n```\n\n## Features\n\n* CLI and GUI!\n* Creates an [EPUB3](https://www.w3.org/publishing/epub3/epub-spec.html) RTL standard book.\n* Automatically adds a page for book information.\n* Automatically generated table of contents with support for nested chapters.\n* Automatically adds book part and page number to each page's footer.\n* Sanitizes the book HTML from unnecessary elements and classes.\n* Converts inline CSS color styles to CSS classes.\n* Inline footnotes for easier navigation, click any footnote, and it will appear in a popup instead of having all\n footnotes in page footer.\n\n## Known Issues\n\n* 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\n page number (e.g. `page_017.xhtml`) cannot be converted to KFX unless that last nested section is removed.\n\n## TODO\n\n### Next\n\n* You tell me :)\n\n### Maybe\n\n* Fix TOC conversion problem when last nested section with level deeper than its next has the same page number by\n removing it from the TOC.\n\n## Acknowledgments\n\n* GUI icons are made by the amazing [Phosphor Icons](https://phosphoricons.com/) (books - duotone - `#AB8B64`).\n",
"bugtrack_url": null,
"license": "GPL-3.0-only",
"summary": "A CLI and GUI tool to download a book on https://shamela.ws to an EPUB book.",
"version": "1.4.3",
"project_urls": {
"Homepage": "https://github.com/yshalsager/shamela2epub/",
"Repository": "https://github.com/yshalsager/shamela2epub/"
},
"split_keywords": [
"epub3",
"shamela",
"book",
"epub",
"islamic"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "9b5a8237185b1d94478603437a044889702496efc621fb17e3692f8b61e29217",
"md5": "dc398389ee93afd0e37a92b80de9249e",
"sha256": "5048c93be0c8b9ddbf2e19ce8f6552571375f7e3d1e5a813b8079eb781a0e67d"
},
"downloads": -1,
"filename": "shamela2epub-1.4.3-py3-none-any.whl",
"has_sig": false,
"md5_digest": "dc398389ee93afd0e37a92b80de9249e",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.12,<3.13",
"size": 198234,
"upload_time": "2024-03-15T12:21:01",
"upload_time_iso_8601": "2024-03-15T12:21:01.261994Z",
"url": "https://files.pythonhosted.org/packages/9b/5a/8237185b1d94478603437a044889702496efc621fb17e3692f8b61e29217/shamela2epub-1.4.3-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "ffb24b9ffaa962463ab7ca4942057cd3e5493ffa87d9ca67e4e9ca5a3885e6bb",
"md5": "87ed2f535fda195e7e6c39b33cf5d952",
"sha256": "a0357b62b89769fe9ecc04accd1d229aed245ef19f5b7a6a35ae0a80f9425cf1"
},
"downloads": -1,
"filename": "shamela2epub-1.4.3.tar.gz",
"has_sig": false,
"md5_digest": "87ed2f535fda195e7e6c39b33cf5d952",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.12,<3.13",
"size": 193560,
"upload_time": "2024-03-15T12:21:12",
"upload_time_iso_8601": "2024-03-15T12:21:12.992733Z",
"url": "https://files.pythonhosted.org/packages/ff/b2/4b9ffaa962463ab7ca4942057cd3e5493ffa87d9ca67e4e9ca5a3885e6bb/shamela2epub-1.4.3.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-03-15 12:21:12",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "yshalsager",
"github_project": "shamela2epub",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "shamela2epub"
}