Generate EPUB files from unread Instapaper articles
Project description
Portable Wisdom
Portable Wisdom is a command-line tool to generate an EPUB file from your unread articles in Instapaper. You can then copy this file to your ereader.
Technologies
- Python 3
Features
- Retrieves unread articles from Instapaper
- Finds and downloads articles' images from the web, downsizes them, converts them to greyscale, and embeds them into the file
- Caches articles and images, runs fast for frequent users
- Creates well-formatted EPUB files tailored for your ereader
Quick Start
Before you begin, you'll need to request an Instapaper API key or copy one from a friend.
Python
-
Download and install Portable Wisdom from PyPI:
$ pip install portable-wisdom
-
Run Portable Wisdom from the command line:
$ portable-wisdom \ --instapaper-api-key KEY \ --instapaper-api-secret SECRET \ --instapaper-login USER \ --instapaper-password PASS
On success, the script will print the output filename. To view all of the options, run $ portable-wisdom -h
.
Docker
Alternatively, using Docker, to download and execute Portable Wisdom from Docker Hub, run:
$ docker pull jacobbudin/portable-wisdom:latest
$ docker run jacobbudin/portable-wisdom:latest \
--instapaper-api-key KEY \
--instapaper-api-secret SECRET \
--instapaper-login USER \
--instapaper-password PASS
Environment
Alternatively, you can supply the Instapaper credentials via environment variables: INSTAPAPER_API_KEY
, INSTAPAPER_API_SECRET
, INSTAPAPER_LOGIN
, and INSTAPAPER_PASSWORD
.
Transformers
Transformers are functions that modify the EPUB before writing the file to disk. There are many built-in transformers including:
beautify_hr
— converts lines of asterisks to horizontal rulesremove_duplicative_blockquotes
— removes magazine-style "pull quotes"strip_emojis
— replaces emojis with shortcodesstrip_links
— removesa
elementsembed_images
— embeds remote web images
Compatibility
Portable Wisdom uses EbookLib
to create EPUB files. These files are compatible with most ereaders—including Nook, Kobo, and Sony—as well as most ebook software. Kindle owners can use Pandoc or a similar tool to convert from EPUB to MOBI.
Styles
Portable Wisdom supports styles (--style
) to create EPUB files optimized for your ereader's rendering engine. These styles are regular CSS files. They specify header sizes, image layout, quote formatting, etc. Use the default style or create your own.
Contributing
To report a bug or request a feaure, create an issue on GitHub. Developers are welcome and encouraged to submit pull requests, but contributors should strongly consider creating an issue and requesting comments before starting work.
Source
You can run Portable Wisdom from its source like so:
$ python3 -m portable_wisdom.wisdom
Guidelines
- Comply with PEP 8 (use Flake8 to confirm, autopep8 can help)
- Run and pass all tests
- Create new tests or refine existing ones, if necessary
License
MIT License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file portable_wisdom-1.0.1.tar.gz
.
File metadata
- Download URL: portable_wisdom-1.0.1.tar.gz
- Upload date:
- Size: 78.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.11.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 13d65a219d88f3dbc304f61b8a80ea1259023baac5ced5e3c3ed2be266c77833 |
|
MD5 | 7691c66032cb35208b59854b69701b96 |
|
BLAKE2b-256 | 41c30edd3242bae182a85441bb3a61c390fae29f510bb594644bae19bd276bec |
File details
Details for the file portable_wisdom-1.0.1-py3-none-any.whl
.
File metadata
- Download URL: portable_wisdom-1.0.1-py3-none-any.whl
- Upload date:
- Size: 14.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.11.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1272f18d74ce0f2f0998a854708d00b8c13cd0dac368c3ba6df316a02637e613 |
|
MD5 | 2dcca64a7cb449ae0b8dd2c3cd9220ae |
|
BLAKE2b-256 | d6d16fe68a456d6c5b31377ea18291e44b3954d8f11ea06ac908ed610371ff77 |