Skip to content

Generate a digest of comments that occured since the last checked in date. Useful for including in an email.

Notifications You must be signed in to change notification settings

iloveitaly/todoist-digest

Repository files navigation

Release Notes Downloads Python Versions GitHub CI Status License: MIT

Todoist Project Digest

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, funcy-pipe, and whatever).

Features

  • Can send an email digest if auth is provided
  • Retrieves comments on completed tasks
  • Target projects by ID or name

Usage

Docker

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?

docker run --env-file .env ghcr.io/iloveitaly/todoist-digest:latest todoist-digest --help

Want to inspect the docker container?

docker run -it ghcr.io/iloveitaly/todoist-digest:latest bash

Or, just use the docker compose file.

Locally

Run this locally using:

bin/local-digest-html

Or run directly:

poetry run todoist-digest \
  --last-synced "2023-12-04T15:52:48Z" \
  --target-user user@gmail.com \
  --target-project ProjectName

Or, email yourself the digest:

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

Docker Build

This repo uses nixpacks for building a Dockerfile. Why? Because I like trying new things.

Until asdf support is built into nixpacks, you'll have to do something like:

export NIXPACKS_POETRY_VERSION=$(asdf-current-version poetry)
export NIXPACKS_PYTHON_VERSION=$(asdf-current-version python)

(asdf-current-version is a function I have in my shell which returns the current version of a tool)

In order to pass the py + poetry versions properly to nixpacks:

nixpacks build . --name todoist-digest --env NIXPACKS_PYTHON_VERSION --env NIXPACKS_POETRY_VERSION --start-cmd bin/cron-digest

Playground

ipython shell with some helpful variables defined:

./playground.py

Run with ipdb

Open up an exception when there's an exception:

ipdb3 $(which todoist-digest) --last-synced 2023-12-14T13:38:25Z ...

Related

About

Generate a digest of comments that occured since the last checked in date. Useful for including in an email.

Topics

Resources

Stars

Watchers

Forks

Sponsor this project

 

Packages

No packages published