All Projects → 6uhrmittag → taskbutler

6uhrmittag / taskbutler

Licence: MIT license
Create and add progress bars, Office365 Files and Dropbox Paper papers by labels and link them to your Todoist tasks.

Programming Languages

python
139335 projects - #7 most used programming language
Makefile
30231 projects
shell
77523 projects

Projects that are alternatives of or similar to taskbutler

Vdirsyncer
📇 Synchronize calendars and contacts.
Stars: ✭ 872 (+1881.82%)
Mutual labels:  sync, todo
Dstask
Single binary terminal-based TODO manager with git-based sync + markdown notes per task
Stars: ✭ 431 (+879.55%)
Mutual labels:  sync, todo
github-project-todo-md
A Tool that sync between GitHub Project Board <-> Todo Markdown text.
Stars: ✭ 17 (-61.36%)
Mutual labels:  sync, todo
To Do
一个无后端待办事项应用,数据用 LeanCloud 进行同步。
Stars: ✭ 238 (+440.91%)
Mutual labels:  sync, todo
thingshub
[UNMAINTAINED] Synchronize issues assigned to you from a Github repo into Things.
Stars: ✭ 17 (-61.36%)
Mutual labels:  sync
myplanet
🌕 myPlanet android app reads data from 🌎 for offline use as well as it collect usage data and sends them back to the Planet.
Stars: ✭ 17 (-61.36%)
Mutual labels:  sync
obsidian-todoist-plugin
Materialize Todoist tasks in Obsidian notes
Stars: ✭ 521 (+1084.09%)
Mutual labels:  todoist
HTML5Sticky
📌 HTML5Sticky - sticky notes app for the web !
Stars: ✭ 51 (+15.91%)
Mutual labels:  todo
Todo-List
✔️ Create to-do lists to easily manage your ideas and work.
Stars: ✭ 30 (-31.82%)
Mutual labels:  todo
sync-fork
the quickest way to sync your fork: npx sync-fork
Stars: ✭ 15 (-65.91%)
Mutual labels:  sync
noaftodo
NOAFtodo - an ncurses TODO-manager No One Asked For
Stars: ✭ 15 (-65.91%)
Mutual labels:  todo
putio-sync
Command-line program to sync a folder between put.io and your computer.
Stars: ✭ 50 (+13.64%)
Mutual labels:  sync
tdls
command-line Todo-list & Tech-blogging Service
Stars: ✭ 19 (-56.82%)
Mutual labels:  todo
errgroup
errgroup with goroutine worker limits
Stars: ✭ 143 (+225%)
Mutual labels:  sync
saisoku
Saisoku is a Python module that helps you build complex pipelines of batch file/directory transfer/sync jobs.
Stars: ✭ 40 (-9.09%)
Mutual labels:  sync
todoist-linux
Todoist for Linux
Stars: ✭ 32 (-27.27%)
Mutual labels:  todoist
mongomeili
Keep your Mongoose Schemas synced with MeiliSearch
Stars: ✭ 33 (-25%)
Mutual labels:  sync
action-github-workflow-sync
Github Action To Sync Github Action's Workflow Files Across Repositories
Stars: ✭ 51 (+15.91%)
Mutual labels:  sync
gae-vue-webapp2-starter
A simple GAE Vue Webapp2 starter project.
Stars: ✭ 17 (-61.36%)
Mutual labels:  sync
learn-react
Step-by-step React - Learn by doing
Stars: ✭ 24 (-45.45%)
Mutual labels:  todo

Taskbutler

Taskbutler enriches your Todoist tasks by adding progress bars, Office365 Files and Dropbox Paper papers directly to your tasks.

Travis CodeFactor Maintainability Updates Documentation Status

Features

  • add progress bars to task-lists in Todoist (unicode, cross-plattform)

    • Create a new task list and add the label "progressbar". Now you always know the progress without scrolling to your entire list.
    /_static/win-web-demo-list.png
  • add and link a Word/Office365 template to tasks (with help of your Dropbox)

    • Upload your favorite Word template by adding a label to your Todoist task. Taskbutler uploads the template to your Dropbox and the task get liked to Microsoft Office365. Now, by clicking the task in Todoist, Microsoft Word online opens in your browser and you can start writing.
    /_static/feature-office.gif
  • add and link Dropbox Paper papers to tasks

    • Tired of the missing task-note feature in Todoist? Add the label "paper" to a task. Now, with a click on the title, you'll get a new Dropbox Paper with all its features just for this task.
    /_static/feature-paper.gif
  • calculate total sums of grocery lists or financial planning

    • Want to know how much a list with $/€ values will cost you ? Add the label "grocery" to a list of task and taskbutler will calculate the total of all items in the list. It also works for a list of lists! Now you can e.g. plan how much money you'll need for each week of a month and the total of the month.
    /_static/feature_grocery.gif

Prerequisites and notes

Taskbutler is not associated or connected with Todoist, Dropbox, Github or Microsoft.

  1. You'll need a Todoist premium account
  2. The Dropbox Paper and Github features require a free account at Dropbox. The Microsoft Office365 feature requires a paid Office365 subscription(or a free Microsoft Office 365 Education subscription). This is optional and not required to use the other features of taskbutler!
  3. Taskbutler is tested on Ubuntu
  4. For optimal use, Taskbutler should run periodical on a server/computer to continuously update your tasks

Even though I never experienced any data loss, it's nice to know that Todoist provides a daily backup of your data.

Setup

requirements

  • Ubuntu 16 and up
  • tested with Python 3.5 and up

install

To install the latest taskbutler in your home directory, run this commands in your terminal:

pip install taskbutler --user
# To start taskbutler without full path:
echo 'PATH="$PATH:$HOME/.local/bin/"' >> ~/.bash_profile

configuration

The configuration is stored in your home directory: /home/$YourUsername/.taskbutler/config/config.ini

Each feature can be disabled by leaving the corresponding labelname in the config.ini emtpy. Each feature is configured in the config.ini. Open, edit and save the file to configure Taskbutler.

If you used Taskbutler before and want to change a setting: Remember to stop Taskbutler before changing any setting and always update your existing Todoist tasks manually according to your changes before starting Taskbutler again.

Taskbutler is not aware of your changes and will mix and mess up your tasks. Changes can easily be tested by using a different labelname.

Setup Todoist access

taskbutler needs access to your Todoist account. This is done via an API key, you'll need to create. This key is like a password - don't share it!

  1. Login to Todoist and got to settings -> Integrations (https://todoist.com/prefs/integrations)
  2. Scroll down to "API-Token" and copy the token
  3. paste the token into the config.ini and save:
[todoist]
apikey = PUT_TOKEN_HERE

Setup Progress bars

Edit the config section in config.ini:

[todoist]
apikey =
label_progress = progressbar
progress_seperator=‣
progress_bar_0=⬜⬜⬜⬜⬜
progress_bar_20=⬛⬜⬜⬜⬜
progress_bar_40=⬛⬛⬜⬜⬜
progress_bar_60=⬛⬛⬛⬜⬜
progress_bar_80=⬛⬛⬛⬛⬜
progress_bar_100=⬛⬛⬛⬛⬛
Change progressbar symbols

The bar is implemented by adding unicode charaters to the existing text. e.g. 33 %

[todoist]
progress_bar_0=⬜⬜⬜⬜⬜
progress_bar_20=⬛⬜⬜⬜⬜
progress_bar_40=⬛⬛⬜⬜⬜
progress_bar_60=⬛⬛⬛⬜⬜
progress_bar_80=⬛⬛⬛⬛⬜
progress_bar_100=⬛⬛⬛⬛⬛

To change the bar to bullets, just overwrite the characters with other characters ''''.

Change progressbar seperator

To separate the task-text from the progressbar, a rare unicode character is used. Just replace the seperator in the ''config.ini'' file.

[todoist]
progress_seperator=‣

Remember to rename the separator manually in Todoist before running Taskbutler again!

Edit progressbar label

The bar added to every task with the label ''progressbar''. The label-name can be changed in the ''config.ini'' file:

label_progress=progressbar

Remember to rename the label in Todoist when renaming labels!

Setup Dropbox features

To use any Dropbox feature you need to create a Dropbox API token. You need to create an Dropbox app for that. Don't worry, you only need to setup it once and it is only accessible for you.

Get a API key for your Dropbox(by creating a Dropbox app):

  1. Go to https://www.dropbox.com/developers/apps/create
  2. Select Dropbox API
  3. Select Full Dropbox- Access to all files and folders in a user's Dropbox.
  4. Give it a name (doesn't matter)
  5. Click Create app
  6. On the app settings page click Generated access token and copy the token

Setup Office365 Sync

You need:

  • an Dropbox account
  • an Microsoft Office365/office.com account
  • an .docx template you want to add by the label
Pre-tasks

Edit the config section in config.ini:

[dropbox]
apikey =

[dropboxoffice]
labelname = letter
templatefile = ./templates/
folder=todoist
dropbox_prepart_files = https://www.dropbox.com/ow/msft/edit/home/
  • apikey: add the Dropbox API key you created above
  • labelame: add the Todoist label you want to use for this feature
  • templatefile: add the path to your .docx file you want to add to your tasks (Linux style, full or relative from /tasbutler)
  • folder: add the Dropbox folder you created above
  • dropbox_prepart_files: don't change. Needed to create the Office365 direct link

Setup Dropbox Paper

Pre-tasks

  • create a new folder in your Dropbox Paper. All papers will be saved here
  • Create an empty paper in this folder(Taskbutler only recognises folders once a paper is placed in it)
  • Edit your config.ini:

Edit the config section in config.ini:

[dropbox]
apikey =

[dropboxpaper]
todoistfolderid =
url = https://paper.dropbox.com/doc/
labelname = paper
foldername = todoist
sharing = false
  • apikey: add the Dropbox API key you created above
  • todoistfolderid: don't change. Will get set automatically by Taskbutler. ID of the Dropbox Paper folder you created above
  • url: don't change. Needed to create the Dropbox Paper direct link
  • labelame: add the Todoist label you want to use for this feature
  • foldername: add the Dropbox Paper folder you created above
  • sharing: don't change. Sets the created papers to "private only" (so only you, once logged into Dropbox, will be able to access it)

Setup Grocery list/Cost calulator

Edit the config section in config.ini:

[todoist]
label_grocery = grocery
grocery_seperator = 💰
grocery_currency = €
  • label_grocery: add the Todoist label you want to use for this feature
  • grocery_seperator: the character that seperates the task name and calculated value
  • grocery_currency: your currency. Tested with $ and € - but it should work with all symbols

Start Taskbutler

Make sure you added the Python default path to your PATH via: echo 'PATH="$PATH:$HOME/.local/bin/"' >> ~/.bash_profile

# taskbutler now starts by simply typing:
taskbutler

Continuous progress-update

To continuously update your tasks run Taskbutler periodical on a internet connected server or your computer

Ubuntu Server

To run taskbutler every 20Min via crontab (see crontab.guru for setting time):

  1. type: crontab -e
  2. add the line: */20 * * * * $HOME/.local/bin/taskbutler
  3. make sure to leave the last line in crontab empty or add a line with just a # at the end!(crontab needs this to work.)

Taskbutler will log to: /home/$YourUsername/.taskbutler/log/todoist.log

Computer(Win/Mac/Linux)

Taskbutler doesn't need to run on a server. It is also possible to run Taskbutler on your running computer. Just start Taskbutler manually or add it to your scheduled tasks.

Updates

Taskbutler checks for updates by checking the 'releases page'_ and leaves a message in the console.

To update:

  • See releasenotes at releases page and check for compatibility.
  • Backup your current configuration/setup-folder
  • run pip install taskbutler --user --upgrade --upgrade-strategy eager to update
  • Check and set all configurations. Use a different label name for testing (set ''label_progress'' and create a task with the test label)

Logging

Taskbutler logs to /home/$YourUsername/.taskbutler/logs The filename can be changed in the config.ini. You can also set the logging level. Default is INFO, DEBUG outputs logs of details.

[log]
loglevel= INFO
logfile = todoist.log

Development

To activate dev-mode add to ini file:

[config]
devmode = true

Devmode doesn't submit changes to Todoist, Dropbox or Github. Set the logging level to DEBUG to get all messages.

[log]
loglevel=DEBUG
logfile = ./todoist.log

Built With

Contributing

Please open a issue in the 'Github issue tracker https://github.com/6uhrmittag/taskbutler/issues.

About Author

Marvin Heimbrodt - github.com/6uhrmittag | twitter.com/6uhrmittag

Donate Coffein via Ko-fi
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].