Name | readwise-reader-cli JSON |
Version |
1.0.0
JSON |
| download |
home_page | |
Summary | Engage with your Readwise Reader library through your command-line. |
upload_time | 2023-09-25 20:14:35 |
maintainer | |
docs_url | None |
author | |
requires_python | >=3.8 |
license | |
keywords |
api
readwise
cli
python
|
VCS |
|
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# Reader API Command-Line Interface
![](./images/reader-terminal.png)
This repository provides a command-line interface (CLI) for interacting with [Readwise's Reader API](https://readwise.io/reader_api). This tool allows you to interact with the API directly from your command line, making it easy to `add` and `list` documents from your Reader library.
Also, you can `upload` documents from your browser reading list, such as Chrome ReadingList.
Please note that future updates will include support for additional browsers.
## Installation
Set up a virtual environment and then run:
```bash
pip install readwise-reader-cli
```
## Usage
Before using the CLI, make sure to set the READER_API_TOKEN environment variable. You can obtain your API token [here](https://readwise.io/access_token).
```bash
export READER_API_TOKEN={your_api_token}
```
The CLI provides the following commands:
```bash
Usage: python -m readercli [OPTIONS] COMMAND [ARGS]...
Interact with your Reader Library
Options:
--help Show this message and exit.
Commands:
add Add Document
lib Library breakdown
list List Documents
upload Upload Reading List File
validate Validate token
```
### List Documents
```bash
Usage: python -m readercli list [OPTIONS]
List Documents
Options:
-l, --location [new|archive|later|feed]
Document(s) location
-c, --category [article|tweet|pdf|epub|email|note|video|highlight|rss]
Document(s) category
-a, --update-after [%Y-%m-%d|%Y-%m-%dT%H:%M:%S|%Y-%m-%d %H:%M:%S]
Updated after date in ISO format. Default:
last 24hrs.
-d, --date-range TEXT View documents updated after choosen time:
today, week, month.
-L, --layout [table|list] Display documents either as a list or table.
Default: table.
-n, --num-results INTEGER The number of documents to show.
-P, --pager Use to page output.
--help Show this message and exit.
```
Examples:
```bash
python -m readercli list --location archive
```
```bash
python -m readercli list --location archive --category article
```
```bash
python -m readercli list --location archive --category article --update-after 2023-01-01
```
```bash
python -m readercli list --location archive --category article --update-after 2023-01-01 --layout list
```
```bash
python -m readercli list --location archive --category article --date-range week
```
### Layouts
![table](./images/table.png)
![list_table](./images/list.png)
### Upload a Reading List (Google Chrome support only)
**THINGS TO NOTE:**
- **RATE LIMIT - Due to Reader's API rate limit of 20 requests per minute, a larger list will take a few minutes to upload.**
- **LACK OF READING LIST APIs - There is no API to pull your ReadingList from Google, but it is being looked at [here](https://bugs.chromium.org/p/chromium/issues/detail?id=1238372).**
To `upload` your Chrome Reading List, you first need to download your data from your account, then follow these steps:
1. Navigate to the [Data & Privacy](https://myaccount.google.com/data-and-privacy) section.
2. Find the "Download your data" option and click on it.
3. A list of data to export will appear. Click "Deselect all" and then locate the Chrome section.
4. Click "All Chrome data Included" and select ONLY "ReadingList".
5. Save the downloaded `.html` file to your preferred directory and take note of the file path.
6. Run the `import` command.
```bash
Usage: python -m readercli upload [OPTIONS] INPUT_FILE
Upload Reading List File
Options:
--file-type [html|csv]
--help Show this message and exit.
```
Examples:
```bash
python -m readercli upload /path/to/ReadingList.html
```
```bash
python -m readercli upload --file-type csv /path/to/ReadingList.csv
```
### Add Document
```bash
Usage: python -m readercli add [OPTIONS] URL
Add Document
Options:
--help Show this message and exit.
```
Example:
```bash
python -m readercli add http://www.example.com
```
### Library Overview
```bash
Usage: python -m readercli lib [OPTIONS]
Library breakdown
Options:
-V, --view [category|location|tags]
--help Show this message and exit.
```
```bash
python -m readercli lib
Category Breakdown
┏━━━━━━━━━━━━━┳━━━━━━━┓
┃ Name ┃ Count ┃
┡━━━━━━━━━━━━━╇━━━━━━━┩
│ 🖍️ highlight│ 724 │
│ 📡️ rss │ 391 │
│ ✉️ email │ 363 │
│ 📰️ article │ 264 │
│ 📝️ note │ 140 │
│ 📄️ pdf │ 83 │
│ 🐦️ tweet │ 25 │
│ 📹️ video │ 10 │
│ 📖️ epub │ 0 │
└─────────────┴───────┘
python -m readercli lib --view [location | tags]
Location Breakdown
┏━━━━━━━━━━━┳━━━━━━━┓
┃ Name ┃ Count ┃
┡━━━━━━━━━━━╇━━━━━━━┩
│ 🗄️ archive│ 1124 │
│ 🕑️ later │ 241 │
│ ⭐️ new │ 10 │
│ 📥️ feed │ 2 │
└───────────┴───────┘
python -m readercli lib --view tags
Tags Breakdown
┏━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━┓
┃ Name ┃ Count ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━┩
│ python │ 32 │
│ documentation │ 9 │
│ programming │ 7 │
│ github │ 7 │
│ git │ 6 │
│ packages │ 6 │
│ design-patterns │ 6 │
│ mac │ 1 │
└────────────────────────┴───────┘
```
### Validate Token
```bash
Usage: python -m readercli validate [OPTIONS] TOKEN
Validate token
Options:
--help Show this message and exit.
```
## Main Third-Party Libraries
- [click](https://github.com/pallets/click)
- [pydantic](https://github.com/pydantic/pydantic)
- [requests](https://github.com/psf/requests)
- [rich](https://github.com/Textualize/rich)
## Inspiration
- [starcli](https://github.com/hedyhli/starcli)
## License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
Raw data
{
"_id": null,
"home_page": "",
"name": "readwise-reader-cli",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": "",
"keywords": "api,readwise,cli,python",
"author": "",
"author_email": "Scott Carvalho <scottcarvalho71@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/8f/33/8e3c08e54f4fb1493117f0b6f5fd19f2d2f8d9524d962355069ee769b0b9/readwise_reader_cli-1.0.0.tar.gz",
"platform": null,
"description": "# Reader API Command-Line Interface\n\n![](./images/reader-terminal.png)\n\nThis repository provides a command-line interface (CLI) for interacting with [Readwise's Reader API](https://readwise.io/reader_api). This tool allows you to interact with the API directly from your command line, making it easy to `add` and `list` documents from your Reader library.\n\nAlso, you can `upload` documents from your browser reading list, such as Chrome ReadingList.\n\nPlease note that future updates will include support for additional browsers.\n\n## Installation\n\nSet up a virtual environment and then run:\n\n```bash\npip install readwise-reader-cli\n```\n\n## Usage\n\nBefore using the CLI, make sure to set the READER_API_TOKEN environment variable. You can obtain your API token [here](https://readwise.io/access_token).\n\n```bash\nexport READER_API_TOKEN={your_api_token}\n```\n\nThe CLI provides the following commands:\n\n```bash\nUsage: python -m readercli [OPTIONS] COMMAND [ARGS]...\n\n Interact with your Reader Library\n\nOptions:\n --help Show this message and exit.\n\nCommands:\n add Add Document\n lib Library breakdown\n list List Documents\n upload Upload Reading List File\n validate Validate token\n```\n\n### List Documents\n\n```bash\nUsage: python -m readercli list [OPTIONS]\n\n List Documents\n\nOptions:\n -l, --location [new|archive|later|feed]\n Document(s) location\n -c, --category [article|tweet|pdf|epub|email|note|video|highlight|rss]\n Document(s) category\n -a, --update-after [%Y-%m-%d|%Y-%m-%dT%H:%M:%S|%Y-%m-%d %H:%M:%S]\n Updated after date in ISO format. Default:\n last 24hrs.\n -d, --date-range TEXT View documents updated after choosen time:\n today, week, month.\n -L, --layout [table|list] Display documents either as a list or table.\n Default: table.\n -n, --num-results INTEGER The number of documents to show.\n -P, --pager Use to page output.\n --help Show this message and exit.\n```\n\nExamples:\n\n```bash\npython -m readercli list --location archive\n```\n\n```bash\npython -m readercli list --location archive --category article\n```\n\n```bash\npython -m readercli list --location archive --category article --update-after 2023-01-01\n```\n\n```bash\npython -m readercli list --location archive --category article --update-after 2023-01-01 --layout list\n```\n\n```bash\npython -m readercli list --location archive --category article --date-range week\n```\n\n### Layouts\n\n![table](./images/table.png)\n\n![list_table](./images/list.png)\n\n### Upload a Reading List (Google Chrome support only)\n\n**THINGS TO NOTE:**\n\n- **RATE LIMIT - Due to Reader's API rate limit of 20 requests per minute, a larger list will take a few minutes to upload.**\n\n- **LACK OF READING LIST APIs - There is no API to pull your ReadingList from Google, but it is being looked at [here](https://bugs.chromium.org/p/chromium/issues/detail?id=1238372).**\n\nTo `upload` your Chrome Reading List, you first need to download your data from your account, then follow these steps:\n\n1. Navigate to the [Data & Privacy](https://myaccount.google.com/data-and-privacy) section.\n2. Find the \"Download your data\" option and click on it.\n3. A list of data to export will appear. Click \"Deselect all\" and then locate the Chrome section.\n4. Click \"All Chrome data Included\" and select ONLY \"ReadingList\".\n5. Save the downloaded `.html` file to your preferred directory and take note of the file path.\n6. Run the `import` command.\n\n```bash\nUsage: python -m readercli upload [OPTIONS] INPUT_FILE\n\n Upload Reading List File\n\nOptions:\n --file-type [html|csv]\n --help Show this message and exit.\n```\n\nExamples:\n\n```bash\npython -m readercli upload /path/to/ReadingList.html\n```\n\n```bash\npython -m readercli upload --file-type csv /path/to/ReadingList.csv\n```\n\n### Add Document\n\n```bash\nUsage: python -m readercli add [OPTIONS] URL\n\n Add Document\n\nOptions:\n --help Show this message and exit.\n```\n\nExample:\n\n```bash\npython -m readercli add http://www.example.com\n```\n\n### Library Overview\n\n```bash\nUsage: python -m readercli lib [OPTIONS]\n\n Library breakdown\n\nOptions:\n -V, --view [category|location|tags]\n --help Show this message and exit.\n```\n\n```bash\npython -m readercli lib\n\n Category Breakdown\n\u250f\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2533\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2513\n\u2503 Name \u2503 Count \u2503\n\u2521\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2547\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2529\n\u2502 \ud83d\udd8d\ufe0f highlight\u2502 724 \u2502\n\u2502 \ud83d\udce1\ufe0f rss \u2502 391 \u2502\n\u2502 \u2709\ufe0f email \u2502 363 \u2502\n\u2502 \ud83d\udcf0\ufe0f article \u2502 264 \u2502\n\u2502 \ud83d\udcdd\ufe0f note \u2502 140 \u2502\n\u2502 \ud83d\udcc4\ufe0f pdf \u2502 83 \u2502\n\u2502 \ud83d\udc26\ufe0f tweet \u2502 25 \u2502\n\u2502 \ud83d\udcf9\ufe0f video \u2502 10 \u2502\n\u2502 \ud83d\udcd6\ufe0f epub \u2502 0 \u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n\npython -m readercli lib --view [location | tags]\n\n Location Breakdown\n\u250f\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2533\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2513\n\u2503 Name \u2503 Count \u2503\n\u2521\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2547\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2529\n\u2502 \ud83d\uddc4\ufe0f archive\u2502 1124 \u2502\n\u2502 \ud83d\udd51\ufe0f later \u2502 241 \u2502\n\u2502 \u2b50\ufe0f new \u2502 10 \u2502\n\u2502 \ud83d\udce5\ufe0f feed \u2502 2 \u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n\npython -m readercli lib --view tags\n\nTags Breakdown\n\u250f\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2533\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2513\n\u2503 Name \u2503 Count \u2503\n\u2521\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2547\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2529\n\u2502 python \u2502 32 \u2502\n\u2502 documentation \u2502 9 \u2502\n\u2502 programming \u2502 7 \u2502\n\u2502 github \u2502 7 \u2502\n\u2502 git \u2502 6 \u2502\n\u2502 packages \u2502 6 \u2502\n\u2502 design-patterns \u2502 6 \u2502\n\u2502 mac \u2502 1 \u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n```\n\n### Validate Token\n\n```bash\nUsage: python -m readercli validate [OPTIONS] TOKEN\n\n Validate token\n\nOptions:\n --help Show this message and exit.\n```\n\n## Main Third-Party Libraries\n\n- [click](https://github.com/pallets/click)\n- [pydantic](https://github.com/pydantic/pydantic)\n- [requests](https://github.com/psf/requests)\n- [rich](https://github.com/Textualize/rich)\n\n## Inspiration\n\n- [starcli](https://github.com/hedyhli/starcli)\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n",
"bugtrack_url": null,
"license": "",
"summary": "Engage with your Readwise Reader library through your command-line.",
"version": "1.0.0",
"project_urls": {
"Homepage": "https://github.com/Scarvy/readwise-reader-cli"
},
"split_keywords": [
"api",
"readwise",
"cli",
"python"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "e27e8f16b7075cfc45b8c27240b24e551cc46a32690bcf5cbe02704925de2120",
"md5": "e4cbafdf45da715b4cc7c2572ed5df37",
"sha256": "81fbfe430f9116d9dc1456fec1d0cbd43ee3aa742615d03f9e7c6c28a0aadcb8"
},
"downloads": -1,
"filename": "readwise_reader_cli-1.0.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "e4cbafdf45da715b4cc7c2572ed5df37",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 17233,
"upload_time": "2023-09-25T20:14:33",
"upload_time_iso_8601": "2023-09-25T20:14:33.463658Z",
"url": "https://files.pythonhosted.org/packages/e2/7e/8f16b7075cfc45b8c27240b24e551cc46a32690bcf5cbe02704925de2120/readwise_reader_cli-1.0.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "8f338e3c08e54f4fb1493117f0b6f5fd19f2d2f8d9524d962355069ee769b0b9",
"md5": "afefda9a091b12e0cb18dd20f0078fbd",
"sha256": "141daa1c49202b30b993f0a0a9b4df1b2210405d745e18ee2cf13021d9c82f95"
},
"downloads": -1,
"filename": "readwise_reader_cli-1.0.0.tar.gz",
"has_sig": false,
"md5_digest": "afefda9a091b12e0cb18dd20f0078fbd",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 15608,
"upload_time": "2023-09-25T20:14:35",
"upload_time_iso_8601": "2023-09-25T20:14:35.407063Z",
"url": "https://files.pythonhosted.org/packages/8f/33/8e3c08e54f4fb1493117f0b6f5fd19f2d2f8d9524d962355069ee769b0b9/readwise_reader_cli-1.0.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-09-25 20:14:35",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "Scarvy",
"github_project": "readwise-reader-cli",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [],
"tox": true,
"lcname": "readwise-reader-cli"
}