Name | todoist-digest JSON |
Version |
0.10.4
JSON |
| download |
home_page | None |
Summary | Generate a digest of comments that occured since the last checked in date. Useful for including in an email. |
upload_time | 2024-08-14 19:44:19 |
maintainer | None |
docs_url | None |
author | Michael Bianco |
requires_python | <4.0,>=3.11 |
license | MIT |
keywords |
todoist
digest
task
management
|
VCS |
|
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
[![Release Notes](https://img.shields.io/github/release/iloveitaly/todoist-digest)](https://github.com/iloveitaly/todoist-digest/releases) [![Downloads](https://static.pepy.tech/badge/todoist-digest/month)](https://pepy.tech/project/todoist-digest) [![Python Versions](https://img.shields.io/pypi/pyversions/todoist-digest)](https://pypi.org/project/todoist-digest) ![GitHub CI Status](https://github.com/iloveitaly/todoist-digest/actions/workflows/build_and_publish.yml/badge.svg) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
# Todoist Project Digest
[Todoist](https://mikebian.co/todoist) doesn't have a way to generate a digest of all recent comments in a project created by a specific user. This makes it challenging to see what changed and what requires your action if you are collaborating with someone on a project.
This is a simple project which generates a digest of all comments by a particular user on a particular project.
This project was also a good excuse to play around and test some functional programming/data manipulation tooling I've been messing with ([funcy](https://github.com/Suor/funcy), [funcy-pipe](https://github.com/iloveitaly/funcy-pipe), and [whatever](https://github.com/Suor/whatever)).
## Features
* Can send an email digest if auth is provided
* Retrieves comments on completed tasks
* Target projects by ID or name
## Usage
### Docker
```shell
docker pull ghcr.io/iloveitaly/todoist-digest:latest
docker run --env-file .env ghcr.io/iloveitaly/todoist-digest:latest
```
Want to run a one off execution?
```shell
docker run --env-file .env ghcr.io/iloveitaly/todoist-digest:latest todoist-digest --help
```
Want to inspect the docker container?
```shell
docker run -it ghcr.io/iloveitaly/todoist-digest:latest bash
```
Or, just use the [docker compose file](docker-compose.yml).
### Locally
Run this locally using:
```shell
bin/local-digest-html
```
If you need a tty, you can copy the `todoist-digest` execution line and run it manually in a shell.
Or run directly:
```shell
poetry run todoist-digest \
--last-synced "2023-12-04T15:52:48Z" \
--target-user user@gmail.com \
--target-project ProjectName
```
Or, email yourself the digest:
```shell
poetry run todoist-digest \
--last-synced $LAST_SYNC \
--target-user $TARGET_USER \
--target-project $TARGET_PROJECT \
--email-auth $EMAIL_AUTH \
--email-to $EMAIL_TO
```
## Development
### Manual API Calls
```
http --auth-type bearer --auth $TODOIST_API_KEY https://api.todoist.com/rest/v2/projects 'Content-Type: application/json'
```
### Docker Build
This repo uses [nixpacks](https://nixpacks.com/docs/getting-started) for building a Dockerfile. Why? Because I like trying new things.
[Asdf support](https://github.com/railwayapp/nixpacks/pull/1026) is built into nixpacks, so it will automatically pick up python and poetry versions.
### Playground
ipython shell with some helpful variables defined:
```shell
./playground.py
```
### Run with ipdb
Open up an exception when there's an exception:
```shell
ipdb3 $(which todoist-digest) --last-synced 2023-12-14T13:38:25Z ...
```
## Related
* https://www.smashlists.com ([discovered here](https://www.reddit.com/r/todoist/comments/l7mhfq/how_to_track_weekly_goals/))
Raw data
{
"_id": null,
"home_page": null,
"name": "todoist-digest",
"maintainer": null,
"docs_url": null,
"requires_python": "<4.0,>=3.11",
"maintainer_email": null,
"keywords": "todoist, digest, task, management",
"author": "Michael Bianco",
"author_email": "mike@mikebian.co",
"download_url": "https://files.pythonhosted.org/packages/23/af/9422e0a0ad3ca53cde6d68a42cb5fff61bf188bbd0901b3bdc9f4fd57a72/todoist_digest-0.10.4.tar.gz",
"platform": null,
"description": "[![Release Notes](https://img.shields.io/github/release/iloveitaly/todoist-digest)](https://github.com/iloveitaly/todoist-digest/releases) [![Downloads](https://static.pepy.tech/badge/todoist-digest/month)](https://pepy.tech/project/todoist-digest) [![Python Versions](https://img.shields.io/pypi/pyversions/todoist-digest)](https://pypi.org/project/todoist-digest) ![GitHub CI Status](https://github.com/iloveitaly/todoist-digest/actions/workflows/build_and_publish.yml/badge.svg) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\n# Todoist Project Digest\n\n[Todoist](https://mikebian.co/todoist) doesn't have a way to generate a digest of all recent comments in a project created by a specific user. This makes it challenging to see what changed and what requires your action if you are collaborating with someone on a project.\n\nThis is a simple project which generates a digest of all comments by a particular user on a particular project.\n\nThis project was also a good excuse to play around and test some functional programming/data manipulation tooling I've been messing with ([funcy](https://github.com/Suor/funcy), [funcy-pipe](https://github.com/iloveitaly/funcy-pipe), and [whatever](https://github.com/Suor/whatever)).\n\n## Features\n\n* Can send an email digest if auth is provided\n* Retrieves comments on completed tasks\n* Target projects by ID or name\n\n## Usage\n\n### Docker\n\n```shell\ndocker pull ghcr.io/iloveitaly/todoist-digest:latest\ndocker run --env-file .env ghcr.io/iloveitaly/todoist-digest:latest\n```\n\nWant to run a one off execution?\n\n```shell\ndocker run --env-file .env ghcr.io/iloveitaly/todoist-digest:latest todoist-digest --help\n```\n\nWant to inspect the docker container?\n\n```shell\ndocker run -it ghcr.io/iloveitaly/todoist-digest:latest bash\n```\n\nOr, just use the [docker compose file](docker-compose.yml).\n\n### Locally\n\n\nRun this locally using:\n\n```shell\nbin/local-digest-html\n```\n\nIf you need a tty, you can copy the `todoist-digest` execution line and run it manually in a shell.\n\nOr run directly:\n\n```shell\npoetry run todoist-digest \\\n --last-synced \"2023-12-04T15:52:48Z\" \\\n --target-user user@gmail.com \\\n --target-project ProjectName\n```\n\nOr, email yourself the digest:\n\n```shell\npoetry run todoist-digest \\\n --last-synced $LAST_SYNC \\\n --target-user $TARGET_USER \\\n --target-project $TARGET_PROJECT \\\n --email-auth $EMAIL_AUTH \\\n --email-to $EMAIL_TO\n```\n\n## Development\n\n### Manual API Calls\n\n```\nhttp --auth-type bearer --auth $TODOIST_API_KEY https://api.todoist.com/rest/v2/projects 'Content-Type: application/json'\n```\n\n### Docker Build\n\nThis repo uses [nixpacks](https://nixpacks.com/docs/getting-started) for building a Dockerfile. Why? Because I like trying new things.\n\n[Asdf support](https://github.com/railwayapp/nixpacks/pull/1026) is built into nixpacks, so it will automatically pick up python and poetry versions.\n\n### Playground\n\nipython shell with some helpful variables defined:\n\n```shell\n./playground.py\n```\n\n### Run with ipdb\n\nOpen up an exception when there's an exception:\n\n```shell\nipdb3 $(which todoist-digest) --last-synced 2023-12-14T13:38:25Z ...\n```\n\n## Related\n\n* https://www.smashlists.com ([discovered here](https://www.reddit.com/r/todoist/comments/l7mhfq/how_to_track_weekly_goals/))",
"bugtrack_url": null,
"license": "MIT",
"summary": "Generate a digest of comments that occured since the last checked in date. Useful for including in an email.",
"version": "0.10.4",
"project_urls": null,
"split_keywords": [
"todoist",
" digest",
" task",
" management"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "30843a8f8a8bb4bef8ad9c0bcb71c250e0903b8eff79c9dc45eb4c3a99da9c58",
"md5": "2df4042059c54e61260e6539fb9c9b35",
"sha256": "7ceb047155779535394489077ef8b77d8d73d16644edc777bd374d98ca8c2076"
},
"downloads": -1,
"filename": "todoist_digest-0.10.4-py3-none-any.whl",
"has_sig": false,
"md5_digest": "2df4042059c54e61260e6539fb9c9b35",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<4.0,>=3.11",
"size": 13104,
"upload_time": "2024-08-14T19:44:18",
"upload_time_iso_8601": "2024-08-14T19:44:18.186269Z",
"url": "https://files.pythonhosted.org/packages/30/84/3a8f8a8bb4bef8ad9c0bcb71c250e0903b8eff79c9dc45eb4c3a99da9c58/todoist_digest-0.10.4-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "23af9422e0a0ad3ca53cde6d68a42cb5fff61bf188bbd0901b3bdc9f4fd57a72",
"md5": "d7ff33ee673e5bfaff9fdddc74c096d7",
"sha256": "df810aa26f35d28fa4aecaa9dd9d37f2221ebc6e23714f56f89e9665e8c36221"
},
"downloads": -1,
"filename": "todoist_digest-0.10.4.tar.gz",
"has_sig": false,
"md5_digest": "d7ff33ee673e5bfaff9fdddc74c096d7",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4.0,>=3.11",
"size": 12361,
"upload_time": "2024-08-14T19:44:19",
"upload_time_iso_8601": "2024-08-14T19:44:19.572727Z",
"url": "https://files.pythonhosted.org/packages/23/af/9422e0a0ad3ca53cde6d68a42cb5fff61bf188bbd0901b3bdc9f4fd57a72/todoist_digest-0.10.4.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-08-14 19:44:19",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "todoist-digest"
}