forked from mirrors/autodoist
Compare commits
19 Commits
Author | SHA1 | Date |
---|---|---|
earnest ma | 9949984269 | |
earnest ma | 13eb8ad46a | |
Hoffelhas | 67935a5b0c | |
Hoffelhas | 5f3fef0e8f | |
Hoffelhas | 50c126b332 | |
Hoffelhas | 11f9830fea | |
Hoffelhas | 0215af31fd | |
Hoffelhas | a38f14e40c | |
Hoffelhas | 319171251f | |
Hoffelhas | c7ab4e564c | |
Hoffelhas | d129885bbc | |
Hoffelhas | 097ea0caae | |
Hoffelhas | 4c421b7577 | |
Hoffelhas | a4ac562068 | |
Hoffelhas | bd9e5d021b | |
Hoffelhas | f97c7e70e0 | |
Hoffelhas | 376e176d6b | |
Hoffelhas | 17cc3a8418 | |
Hoffelhas | 16d404a9ed |
46
README.md
46
README.md
|
@ -5,9 +5,9 @@ This program adds four major functionalities to Todoist to help automate your wo
|
|||
1) Assign automatic next-action labels for a more GTD-like workflow
|
||||
- Flexible options to label tasks sequentially or in parallel
|
||||
- Limit labels based on a start-date or hide future tasks based on the due date
|
||||
2) Enable regeneration of sub-tasks in lists with a recurring date
|
||||
2) Enable regeneration of sub-tasks in lists with a recurring date. Multiple modes possile.
|
||||
3) Postpone the end-of-day time to after midnight to finish your daily recurring tasks
|
||||
4) Make multiple items uncheckable / re-checkable at the same time
|
||||
4) Make multiple items (un)checkable at the same time
|
||||
|
||||
If this tool helped you out, I would really appreciate your support by providing me with some coffee!
|
||||
|
||||
|
@ -17,8 +17,15 @@ If this tool helped you out, I would really appreciate your support by providing
|
|||
|
||||
# Requirements
|
||||
|
||||
* Python 3.8
|
||||
* ```todoist-python``` package.
|
||||
Autodoist has been build with Python 3.9.1, which is the recommended version. Older versions of 3.x should be compatible, however be aware that they have not been tested.
|
||||
|
||||
To run Autodoist the following packages are required:
|
||||
* ```todoist-python```
|
||||
* ```requests```
|
||||
|
||||
For your convenience a requirements.txt is provided, which allows you to install them by using pip:
|
||||
|
||||
`pip install -r requirements.txt`
|
||||
|
||||
# 1. Automatic next action labels
|
||||
|
||||
|
@ -26,7 +33,13 @@ The program looks for pre-defined tags in the name of every project, section, or
|
|||
|
||||
Projects, sections, and parentless tasks can be tagged independently from each other to create the required functionality. If this tag is not defined, it will not activate this functionality. The result will be a clear, current and comprehensive list of next actions without the need for further thought.
|
||||
|
||||
See the example given at [running autodoist](#running-autodoist) on how to run this mode. If the label does not exist yet in your Todoist, a possibility is given to automatically create it. Todoist Premium is required in order to use labels and to make this functionality possible.
|
||||
See the example given at [running Autodoist](#running-autodoist) on how to run this mode. If the label does not exist yet in your Todoist, a possibility is given to automatically create it. Todoist Premium is required in order to use labels and to make this functionality possible.
|
||||
|
||||
## Useful filter tip
|
||||
|
||||
For a more GTD-like workflow, you can use Todoist filters to create a clean and cohesive list that only contains your actionable tasks. As a simple example you could use the following filter:
|
||||
|
||||
`@next_action & #PROJECT_NAME`
|
||||
|
||||
## Sequential processing
|
||||
|
||||
|
@ -40,7 +53,7 @@ If a project, section, or parentless task name ends with `//`, both the parentle
|
|||
|
||||
![Parallel task](https://i.imgur.com/NPTLQ8B.gif)
|
||||
|
||||
## Added labelling flexibility
|
||||
## Advanced labelling
|
||||
|
||||
If a project or section ends with `-/`, all parentless tasks are processed sequentially, and its sub-tasks in parallel.
|
||||
|
||||
|
@ -56,7 +69,7 @@ Any parentless task can also be be given a type by appending `//` or `--` to the
|
|||
|
||||
[See example 2 with a serial project](https://i.imgur.com/JfaAOzZ.gif)
|
||||
|
||||
Note: Todoist sections don't like to have a slash in the name, it will automatically change to an underscore. The default label options will recognise this to make it work regardless. Of course you're always free to define your own custom label symbols.
|
||||
Note: Todoist sections don't like to have a slash in the name, it will automatically change to an underscore. The default label options will recognize this to make it work regardless. Of course you're always free to define your own custom label symbols.
|
||||
|
||||
## Start/Due date enhanced experience
|
||||
|
||||
|
@ -74,9 +87,18 @@ The program looks for all parentless tasks with a recurring date. If they contai
|
|||
|
||||
![See example](https://i.imgur.com/WKKd14o.gif)
|
||||
|
||||
To give you more flexibility, multiple modes are provided:
|
||||
1. No regeneration
|
||||
2. Checking the main task regenerates all sub-tasks
|
||||
3. Checking the main task regenerates all sub-tasks only if all sub-tasks have been checked first
|
||||
|
||||
When this functionality is activated, it is possible to chose which mode is used as overall functionality for your Todoist. See the example given at [running Autodoist](#running-autodoist).
|
||||
|
||||
In addition you can override the overall mode by adding the labels `Regen_off`, `Regen_all`, or `Regen_all_if_completed` to one of your main recurrings task. These labels will automatically be created for you.
|
||||
|
||||
# 3. Postpone the end-of-day
|
||||
|
||||
You have a daily recurring task, but you're up working late and now it's past midnight. Todoist will automatically mark it overdue and when you check it, it moved to tomorrow. After a good nights rest you can't complete the task that day!
|
||||
You have a daily recurring task, but you're up working late and now it's past midnight. When this happens Todoist will automatically mark it overdue, and when checked by you it moves to tomorrow. This means that after a good nights rest you can't complete the task that day!
|
||||
|
||||
By setting an alternative time for the end-of-day you can now finish your work after midnight and the new date will automatically be corrected for you. Todoist Premium is not required for this functionality.
|
||||
|
||||
|
@ -86,7 +108,7 @@ By setting an alternative time for the end-of-day you can now finish your work a
|
|||
|
||||
Todoist allows the asterisk symbol `* ` to be used to ensure tasks can't be checked by turning them into headers. Now you are able to do this en masse!
|
||||
|
||||
Simply add `** ` or `!* ` in front of a project, section, or top item, to automatically turn all the items that it includes into respectively headers or checkable tasks.
|
||||
Simply add `** ` or `!* ` in front of a project, section, or top item, to automatically turn all the items that it includes into respectively headers or checkable tasks. Note: when used in a project title or section title, Todoist will replace an exclamation mark with an underscore; this functionality should nevertheless still work.
|
||||
|
||||
# Executing Autodoist
|
||||
|
||||
|
@ -94,15 +116,15 @@ You can run Autodoist from any system that supports Python.
|
|||
|
||||
## Running Autodoist
|
||||
|
||||
Autodoist will read your environment to retrieve your Todoist API key and additional arguments. In order to run on Windows/Linux/Mac OSX you can use the following commandlines.
|
||||
Autodoist will read your environment to retrieve your Todoist API key and additional arguments. In order to run on Windows/Linux/Mac OSX you can use the following command lines.
|
||||
|
||||
If you want to enable labelling mode, run with the `-l` argument:
|
||||
|
||||
python autodoist.py -a <API Key> -l <LABEL_NAME>
|
||||
|
||||
If you want to enable regeneration of sub-tasks in recurring lists, run with the `-r` argument:
|
||||
If you want to enable regeneration of sub-tasks in recurring lists, run with the `-r` argument followed by a mode number for the overall functionality (1: no regeneration, 2: regenerate all, 3: regenerate ony if all sub-tasks are completed):
|
||||
|
||||
python autodoist.py -a <API Key> -r
|
||||
python autodoist.py -a <API Key> -r <NUMBER>
|
||||
|
||||
If you want to enable an alternative end-of-day, run with the `-e` argument and a number from 1 to 24 to specify which hour:
|
||||
|
||||
|
|
1587
autodoist.py
1587
autodoist.py
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,17 @@
|
|||
[Unit]
|
||||
Description=Autodoist
|
||||
After=syslog.target
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
RestartSec=5s
|
||||
Type=simple
|
||||
User=earne
|
||||
Group=earne
|
||||
WorkingDirectory=/home/earne/autodoist
|
||||
ExecStart=/home/earne/autodoist/run.sh
|
||||
Restart=always
|
||||
# Environment=
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
|
@ -1 +1,2 @@
|
|||
todoist-python>=8.1.1
|
||||
requests>=2.25.1
|
||||
todoist_python>=8.1.3
|
||||
|
|
|
@ -0,0 +1,14 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
if [ ! -d venv ]; then
|
||||
echo "Creating virtualenv and installing requirements"
|
||||
python3 -m venv venv
|
||||
venv/bin/pip3 install -r requirements.txt
|
||||
fi
|
||||
|
||||
venv/bin/python3 autodoist.py \
|
||||
-a $(cat .api-token) \
|
||||
-l Next \
|
||||
-r 2 \
|
||||
-e 1 \
|
||||
--delay 7
|
5
setup.py
5
setup.py
|
@ -2,14 +2,15 @@ from setuptools import setup
|
|||
|
||||
setup(
|
||||
name='autodoist',
|
||||
version='1.0',
|
||||
version='1.5',
|
||||
py_modules=['autodoist'],
|
||||
url='https://github.com/Hoffelhas/automation-todoist',
|
||||
license='MIT',
|
||||
author='Alexander Haselhoff',
|
||||
author_email='alexander.haselhoff@outlook.com',
|
||||
description='Added functionality for Todoist: 1) next-action labels and 2) re-use recurring sub-tasks',
|
||||
description='Added functionality for Todoist: 1) next-action labels, 2) sub-task regeneration, 3) postpone end of day, and 4) (un)header items simultaneously)',
|
||||
install_requires=[
|
||||
'todoist-python',
|
||||
'requests',
|
||||
]
|
||||
)
|
||||
|
|
Loading…
Reference in New Issue