{ "info": { "author": "Marvin Heimbrodt", "author_email": "marvin@6uhrmittag.de", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "==========\nTaskbutler\n==========\n\nTaskbutler enriches your Todoist tasks by adding progress bars, Office365 Files and Dropbox Paper papers directly to your tasks.\n\n.. image:: https://travis-ci.org/6uhrmittag/taskbutler.svg?branch=master\n :target: https://travis-ci.org/6uhrmittag/taskbutler\n :alt: Travis\n\n.. image:: https://www.codefactor.io/repository/github/6uhrmittag/taskbutler/badge/master\n :target: https://www.codefactor.io/repository/github/6uhrmittag/taskbutler/overview/master\n :alt: CodeFactor\n\n.. image:: https://api.codeclimate.com/v1/badges/02c45c0604ad57ffc504/maintainability\n :target: https://codeclimate.com/github/6uhrmittag/taskbutler/maintainability\n :alt: Maintainability\n\n.. image:: https://pyup.io/repos/github/6uhrmittag/taskbutler/shield.svg\n :target: https://pyup.io/repos/github/6uhrmittag/taskbutler/\n :alt: Updates\n\n.. image:: https://readthedocs.org/projects/taskbutler/badge/?version=latest\n :target: https://taskbutler.readthedocs.io/en/latest/?badge=latest\n :alt: Documentation Status\n\nFeatures\n========\n\n- **add progress bars to task-lists in Todoist (unicode,\n cross-plattform)**\n\n - Create a new task list and add the label \"progressbar\". Now you always know the progress without scrolling to your entire list.\n\n .. image:: /_static/win-web-demo-list.png\n\n- **add and link a Word/Office365 template to tasks** (with help of\n your Dropbox)\n\n - 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\n Microsoft Office365. Now, by clicking the task in Todoist,\n Microsoft Word online opens in your browser and you can start\n writing.\n\n .. image:: /_static/feature-office.gif\n\n- **add and link Dropbox Paper papers to tasks**\n\n - Tired of the missing task-note feature in Todoist?\n Add the label \"paper\" to a task. Now, with a click on the title,\n you'll get a new Dropbox Paper with all its features just for this\n task.\n\n .. image:: /_static/feature-paper.gif\n\nPrerequisites and notes\n=======================\n**Taskbutler is not associated or connected with Todoist, Dropbox,\nGithub or Microsoft.**\n\n1. You'll need a `Todoist `_ premium account\n2. The Dropbox Paper and Github features require a free account at\n Dropbox. The Microsoft Office365 feature requires a paid Office365\n subscription(or a free Microsoft Office 365 Education subscription).\n3. Taskbutler is tested on Ubuntu\n4. For optimal use, Taskbutler should run periodical on a\n server/computer to continuously update your tasks\n\n*Even though I never experienced any data loss, it's nice to know\nthat* \\ `Todoist provides a daily backup of your data. `_\n\n\nSetup\n=====\n\nrequirements\n------------\n\n- Ubuntu 16 and up\n- tested with Python 3.5 and up\n\ninstall\n-------\n\nTo install the latest taskbutler in your home directory, run this commands in your terminal:\n\n.. code-block:: console\n\n pip install taskbutler --user\n # To start taskbutler without full path:\n echo 'PATH=\"$PATH:$HOME/.local/bin/\"' >> ~/.bash_profile\n\n\nconfiguration\n-------------\n\nThe configuration is stored in your home directory: `/home/$YourUsername/.taskbutler/config/config.ini`\n\nEach feature can be disabled by leaving the corresponding labelname in\nthe config.ini emtpy. Each feature is configured in the config.ini.\nOpen, edit and save the file to configure Taskbutler.\n\nIf you used Taskbutler before and want to change a setting: **Remember\nto stop Taskbutler before changing any setting and always update your\nexisting Todoist tasks manually according to your changes before\nstarting Taskbutler again.**\n\nTaskbutler is not aware of your changes and will mix and mess up your\ntasks. Changes can easily be tested by using a different labelname.\n\nSetup Progress bars\n^^^^^^^^^^^^^^^^^^^\n\nEdit the config section in config.ini:\n\n.. code:: ini\n\n [todoist]\n apikey =\n label_progress = progressbar\n progress_seperator=\u2023\n progress_bar_0=\u2b1c\u2b1c\u2b1c\u2b1c\u2b1c\n progress_bar_20=\u2b1b\u2b1c\u2b1c\u2b1c\u2b1c\n progress_bar_40=\u2b1b\u2b1b\u2b1c\u2b1c\u2b1c\n progress_bar_60=\u2b1b\u2b1b\u2b1b\u2b1c\u2b1c\n progress_bar_80=\u2b1b\u2b1b\u2b1b\u2b1b\u2b1c\n progress_bar_100=\u2b1b\u2b1b\u2b1b\u2b1b\u2b1b\n\nChange progressbar symbols\n\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\n\nThe bar is implemented by adding `unicode charaters`_ to the existing\ntext. e.g. \u2b1b\u2b1b\u2b1c\u2b1c\u2b1c 33 %\n\n.. code:: ini\n\n [todoist]\n progress_bar_0=\u2b1c\u2b1c\u2b1c\u2b1c\u2b1c\n progress_bar_20=\u2b1b\u2b1c\u2b1c\u2b1c\u2b1c\n progress_bar_40=\u2b1b\u2b1b\u2b1c\u2b1c\u2b1c\n progress_bar_60=\u2b1b\u2b1b\u2b1b\u2b1c\u2b1c\n progress_bar_80=\u2b1b\u2b1b\u2b1b\u2b1b\u2b1c\n progress_bar_100=\u2b1b\u2b1b\u2b1b\u2b1b\u2b1b\n\n.. _unicode charaters: http://jrgraphix.net/r/Unicode/2600-26FF\n\n\nTo change the bar to bullets, just overwrite the\ncharacters with other characters ''\u26ab\u26ab\u26ab\u26aa\u26aa''.\n\nChange progressbar seperator\n\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\nTo separate the task-text from the progressbar, a rare unicode character\nis used. Just replace the seperator in the ''config.ini'' file.\n\n.. code:: ini\n\n [todoist]\n progress_seperator=\u2023\n\nRemember to rename the separator manually in Todoist before running\nTaskbutler again!\n\nEdit progressbar label\n\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\nThe bar added to every task with the label ''progressbar''. The\nlabel-name can be changed in the ''config.ini'' file:\n\n.. code:: ini\n\n label_progress=progressbar\n\nRemember to rename the label in Todoist when renaming labels!\n\nSetup Dropbox features\n^^^^^^^^^^^^^^^^^^^^^^\n\n\nTo use any Dropbox feature you need to create a Dropbox API token. You\nneed to create an Dropbox app for that. Don't worry, you only need to\nsetup it once and it is only accessible for you.\n\nGet a API key for your Dropbox(by creating a Dropbox app):\n\n1. Go to `https://www.dropbox.com/developers/apps/create `_\n2. Select *Dropbox API*\n3. Select *Full Dropbox- Access to all files and folders in a user's Dropbox.*\n4. Give it a name (doesn't matter)\n5. Click *Create app*\n6. On the app settings page click *Generated access token* and copy\n the token\n\n\n\n\nSetup Office365 Sync\n^^^^^^^^^^^^^^^^^^^^\n\nYou need:\n\n- an Dropbox account\n- an Microsoft Office365/office.com account\n- an .docx template you want to add by the label\n\nPre-tasks\n\"\"\"\"\"\"\"\"\"\n\n\n- create a new folder in `your Dropbox `_. All files will be saved here\n- connect Microsoft Office Online to 'your\n Dropbox ``__\n\nEdit the config section in config.ini:\n\n.. code:: ini\n\n [dropbox]\n apikey =\n\n [dropboxoffice]\n labelname = letter\n templatefile = ./templates/\n folder=todoist\n dropbox_prepart_files = https://www.dropbox.com/ow/msft/edit/home/\n\n- apikey: add the Dropbox API key you created above\n- labelame: add the Todoist label you want to use for this feature\n- templatefile: add the path to your .docx file you want to add to your\n tasks (Linux style, full or relative from /tasbutler)\n- folder: add the Dropbox folder you created above\n- dropbox_prepart_files: don't change. Needed to create the Office365\n direct link\n\nSetup Dropbox Paper\n^^^^^^^^^^^^^^^^^^^\n\n\nPre-tasks\n^^^^^^^^^\n\n\n- create a new folder in your `Dropbox Paper `_. All papers will be\n saved here\n- Create an empty paper in this folder(Taskbutler only recognises\n folders once a paper is placed in it)\n- Edit your config.ini:\n\nEdit the config section in config.ini:\n\n.. code:: ini\n\n [dropbox]\n apikey =\n\n [dropboxpaper]\n todoistfolderid =\n url = https://paper.dropbox.com/doc/\n labelname = paper\n foldername = todoist\n sharing = false\n\n\n- apikey: add the Dropbox API key you created above\n- todoistfolderid: don't change. Will get set automatically by\n Taskbutler. ID of the Dropbox Paper folder you created above\n- url: don't change. Needed to create the Dropbox Paper direct link\n- labelame: add the Todoist label you want to use for this feature\n- foldername: add the Dropbox Paper folder you created above\n- sharing: don't change. Sets the created papers to \"private only\" (so\n only you, once logged into Dropbox, will be able to access it)\n\nStart Taskbutler\n^^^^^^^^^^^^^^^^\n\nMake sure you added the Python default path to your PATH via: `echo 'PATH=\"$PATH:$HOME/.local/bin/\"' >> ~/.bash_profile`\n\n\n.. code:: console\n\n # taskbutler now starts by simply typing:\n taskbutler\n\n\nContinuous progress-update\n^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nTo continuously update your tasks run Taskbutler periodical on a internet connected server\nor your computer\n\nUbuntu Server\n\"\"\"\"\"\"\"\"\"\"\"\"\"\n\nTo run taskbutler every 20Min via crontab (see `crontab.guru `_ for setting\ntime):\n\n1. type: :code:`crontab -e`\n2. add the line: :code:`*/20 * * * * $HOME/.local/bin/taskbutler`\n3. 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.)\n\n\nTaskbutler will log to: `/home/$YourUsername/.taskbutler/log/todoist.log`\n\nComputer(Win/Mac/Linux)\n\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\nTaskbutler doesn't need to run on a server. It is also possible to run\nTaskbutler on your running computer. Just start Taskbutler manually or\nadd it to your scheduled tasks.\n\nUpdates\n-------\n\n\nTaskbutler checks for updates by checking the 'releases page'_ and\nleaves a message in the console.\n\nTo update:\n\n- See releasenotes at `releases page `_ and check for compatibility.\n- Backup your current configuration/setup-folder\n- Download release from 'releases page'_ and overwrite files or \"git\n pull origin\" when you cloned this repository\n- Check and set all configurations. Use a different label name for\n testing (set ''label_progress'' and create a task with the test\n label)\n\n\nLogging\n-------\n\nTaskbutler logs to `/home/$YourUsername/.taskbutler/logs`\nThe filename can be changed in the config.ini. You can also set the logging level. Default is `INFO`, `DEBUG` outputs logs of details.\n\n.. code:: ini\n\n [log]\n loglevel= INFO\n logfile = todoist.log\n\n\n\nDevelopment\n===========\n\n\nTo activate dev-mode add to ini file:\n\n.. code:: ini\n\n [config]\n devmode = true\n\nDevmode doesn't submit changes to Todoist, Dropbox or Github. Set the\nlogging level to DEBUG to get all messages.\n\n.. code:: ini\n\n [log]\n loglevel=DEBUG\n logfile = ./todoist.log\n\nBuilt With\n==========\n\n\n- `Doist/todoist-python `_ - The official Todoist Python API library\n- `dropbox/dropbox-sdk-python `_ - The official Python SDK for Dropbox API v2\n- `PyGithub python sdk `_ - Unofficial Python SDK for Github API\n- `Cookiecutter template for a Python package `_\n\nContributing\n\n\nPlease open a issue in the 'Github issue tracker ``_.\n\n\nAbout Author\n============\n\n**Marvin Heimbrodt** - `github.com/6uhrmittag `_\n\n\n=======\nHistory\n=======\n\n\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/6uhrmittag/taskbutler", "keywords": "taskbutler", "license": "MIT license", "maintainer": "", "maintainer_email": "", "name": "taskbutler", "package_url": "https://pypi.org/project/taskbutler/", "platform": "", "project_url": "https://pypi.org/project/taskbutler/", "project_urls": { "Homepage": "https://github.com/6uhrmittag/taskbutler" }, "release_url": "https://pypi.org/project/taskbutler/2.1.10/", "requires_dist": [ "Click (>=6.0)", "todoist-python", "PyGithub", "requests", "dropbox" ], "requires_python": "", "summary": "Taskbutler enriches your Todoist tasks by adding progress bars, Office365 Files and Dropbox Paper papers directly to your tasks.", "version": "2.1.10" }, "last_serial": 5830429, "releases": { "2.1.1": [ { "comment_text": "", "digests": { "md5": "9edfe99e183639054a8063a1a8a198fe", "sha256": "6bf6cc51881d44fedcd851929a0725a839efb9a94356388eb15b7be7156d4bd9" }, "downloads": -1, "filename": "taskbutler-2.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "9edfe99e183639054a8063a1a8a198fe", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 15892, "upload_time": "2018-11-11T18:18:11", "url": "https://files.pythonhosted.org/packages/ce/57/d29948c8e50f4728d23d9ac2bd353f9d45013123c91e58ac0a477ac3cb4c/taskbutler-2.1.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4f81b9d11f8aab81908aeb7ed8994dcf", "sha256": "f69e478a181123f48f16393b40571fb1d978920fd5d2aba6cb67b01e4abe75e8" }, "downloads": -1, "filename": "taskbutler-2.1.1.tar.gz", "has_sig": false, "md5_digest": "4f81b9d11f8aab81908aeb7ed8994dcf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30131, "upload_time": "2018-11-11T18:18:12", "url": "https://files.pythonhosted.org/packages/71/69/0cd87b739a50f8b18074acb38e5b70949e48af95c30361e5360e56751158/taskbutler-2.1.1.tar.gz" } ], "2.1.10": [ { "comment_text": "", "digests": { "md5": "3250f57bdc8f950f795c910e84608daf", "sha256": "c5487e5d60134cc969211f6c5bede20d59643ce5d0472506b307e5cfeef9363c" }, "downloads": -1, "filename": "taskbutler-2.1.10-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "3250f57bdc8f950f795c910e84608daf", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 15019, "upload_time": "2019-09-14T22:49:27", "url": "https://files.pythonhosted.org/packages/ba/79/3bfeb911f60d8682e7308f252d733879569bb544573be6ce43f01d37eb7a/taskbutler-2.1.10-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "103512b691ef70a012ffb26beed1a48b", "sha256": "ab0d02908b14eba2977fefb8f6ec5c1b68a09ee2d16fc00cc6c4d140bf1c8ac7" }, "downloads": -1, "filename": "taskbutler-2.1.10.tar.gz", "has_sig": false, "md5_digest": "103512b691ef70a012ffb26beed1a48b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25414, "upload_time": "2019-09-14T22:49:28", "url": "https://files.pythonhosted.org/packages/93/b7/f7ee1621e0ce3c02bcb705373834090dcbc23cc9a23402430aaa8237e103/taskbutler-2.1.10.tar.gz" } ], "2.1.7": [ { "comment_text": "", "digests": { "md5": "64a924a5f4d53e42ddfd39f3c5cd1df4", "sha256": "170c6666e59580d1f9a1c13b106f3168742275a664ef05781fb9076fb3a4d8a8" }, "downloads": -1, "filename": "taskbutler-2.1.7-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "64a924a5f4d53e42ddfd39f3c5cd1df4", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 15758, "upload_time": "2019-04-23T15:45:56", "url": "https://files.pythonhosted.org/packages/ac/f9/23061e5ab0cc13ffef7a261d1e2acd5a493fbd5a598be09aa7ec9aae192a/taskbutler-2.1.7-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2353dc671bb2b853ec5dab10c17bd036", "sha256": "e9d04bca87300a7243ac96f47f4f54979192dc108bde3458d7f28a5f5211bd5a" }, "downloads": -1, "filename": "taskbutler-2.1.7.tar.gz", "has_sig": false, "md5_digest": "2353dc671bb2b853ec5dab10c17bd036", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 28484, "upload_time": "2019-04-23T15:46:00", "url": "https://files.pythonhosted.org/packages/06/67/5a79b4b6d8465913da8c05278675be9ab9ebd367703a8119ffc004b6afbe/taskbutler-2.1.7.tar.gz" } ], "2.1.8": [ { "comment_text": "", "digests": { "md5": "a423236b2a3f8a414da9a57ea14acfa3", "sha256": "346609cd56e4bfda3b3fb5f65ab0199f0ec2030a52b763ff65aa5f5344fa44d0" }, "downloads": -1, "filename": "taskbutler-2.1.8-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "a423236b2a3f8a414da9a57ea14acfa3", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 15016, "upload_time": "2019-04-23T17:16:53", "url": "https://files.pythonhosted.org/packages/84/68/e57d60292ab996e79abbc2326906773885724f90722edbe949edaf4ba367/taskbutler-2.1.8-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "14bd8ca4e614641592f00a7e4f0106bc", "sha256": "1418e491ded9c2114c4d95c9ebafa85bd47c633429460a879d9a2831847cfdb7" }, "downloads": -1, "filename": "taskbutler-2.1.8.tar.gz", "has_sig": false, "md5_digest": "14bd8ca4e614641592f00a7e4f0106bc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27929, "upload_time": "2019-04-23T17:16:55", "url": "https://files.pythonhosted.org/packages/65/1e/e1f32448a0163bf2cf6f64d9b0ed2aece0d7f867bb0ba979627450fae505/taskbutler-2.1.8.tar.gz" } ], "2.1.9": [ { "comment_text": "", "digests": { "md5": "65ac2375706c20d54f429620f523d902", "sha256": "d3b92a45d8f54c10435f7f124e44d8fcc617416b5dc1c35cf43101d3aaa7754e" }, "downloads": -1, "filename": "taskbutler-2.1.9-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "65ac2375706c20d54f429620f523d902", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 15007, "upload_time": "2019-04-23T18:05:19", "url": "https://files.pythonhosted.org/packages/e3/7b/f311fd34a433cedc6ab835fc3fc3816974e5691f661154e6c3c66a99e476/taskbutler-2.1.9-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "99f687b2f8f034ddfcf5a6805e708a45", "sha256": "4c69ba16a4638def067e9b4d0478bb7178da072ff34534fcd945f720e8faef4f" }, "downloads": -1, "filename": "taskbutler-2.1.9.tar.gz", "has_sig": false, "md5_digest": "99f687b2f8f034ddfcf5a6805e708a45", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27917, "upload_time": "2019-04-23T18:05:20", "url": "https://files.pythonhosted.org/packages/8f/1f/bbcbef78ba5029622fd4b1aac7da38eabbd6037bafededdd436418a38021/taskbutler-2.1.9.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "3250f57bdc8f950f795c910e84608daf", "sha256": "c5487e5d60134cc969211f6c5bede20d59643ce5d0472506b307e5cfeef9363c" }, "downloads": -1, "filename": "taskbutler-2.1.10-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "3250f57bdc8f950f795c910e84608daf", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 15019, "upload_time": "2019-09-14T22:49:27", "url": "https://files.pythonhosted.org/packages/ba/79/3bfeb911f60d8682e7308f252d733879569bb544573be6ce43f01d37eb7a/taskbutler-2.1.10-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "103512b691ef70a012ffb26beed1a48b", "sha256": "ab0d02908b14eba2977fefb8f6ec5c1b68a09ee2d16fc00cc6c4d140bf1c8ac7" }, "downloads": -1, "filename": "taskbutler-2.1.10.tar.gz", "has_sig": false, "md5_digest": "103512b691ef70a012ffb26beed1a48b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25414, "upload_time": "2019-09-14T22:49:28", "url": "https://files.pythonhosted.org/packages/93/b7/f7ee1621e0ce3c02bcb705373834090dcbc23cc9a23402430aaa8237e103/taskbutler-2.1.10.tar.gz" } ] }