moranje / alfred-workflow-todoist Goto Github PK
View Code? Open in Web Editor NEWAn Alfred workflow for managing tasks in Todoist
License: MIT License
An Alfred workflow for managing tasks in Todoist
License: MIT License
Hi there,
I think you are Dutch as am I but for the sake of others I will stick to English. I created a server based set of php file to filter through a text blob and look for markers that signify a todo item. Then parse it for a specific structure that allow the string to contain todo, date & time, project and labels. It then connects to your account and shoves all the Todo's into your account.
Have a look here:
https://github.com/s3frank/todoist-processor
It was my first time, and last so far, with PHP just a hobby thing really. I'm more of a C and Java guy though not much time these days for programming.
Anyway, I thought I'd reach out and see if you are interested in leveraging the parsing and string format I have used as I have found yours to be a bit more limiting. It appears to be very strict on the date parsing for example.
I might end up forking your code and spin my own version of it with the same parsing logic as in mine just so that I can leverage both your workflow in Alfred as well as my generic parsing mechanism.
The way I use mine is I have a short cut in Alfred that calls a bash script, puts the selected text into a param which ends up in a CURL call to my service...et voila I can literally parse todo's from any application I might be using.
If you wanna collaborate on this in your project I'd be happy to do so as well. I can read enough javascript to be dangerous...it's time that I don't have much of these days.
Cheers!
Frank
First of all thank you for great work.
In Alfred workflow, the most important priority can be set as !!4, but this is not the correct notion according to default Todoist shortcuts. It should be !!1.
You can see details on https://support.todoist.com/hc/en-us/articles/205873321
You can give your tasks one of four priority levels – 1 being the most important (marked as red) and 4 being everything else (no color).
Also, it would be great to support p1,p2,p3,p4 notion like Todoist.
I don't know if this is the correct place to ask features, if not please let me know so I can move/delete.
Option to view task in browser instead of marking as complete when pressing enter. I don't know if this is technically possible, but it would be more than great if it opens in the Todoist app (if installed).
Adding comments & files to created tasks.
Again, thanks for great work @moranje !
The Todoist API has started returning a 400 error when adding a task:
Invalid argument value ({"threshold":1,"expected":"minlen","argument":"temp_id"})
Please update the published version of the workflow to generate a uuid for temp_id
rather than sending a blank string. Users facing this glitch can edit line 214 of js/todoist.js
in the workflow to replace the blank string with utilities_1.uuid()
:
- temp_id: '',
+ temp_id: utilities_1.uuid(),
The purpose of the temp_id
in Todoist API calls is to allow objects to cross-reference other objects that are being created in the same request, and to provide a mechanism for mapping creation of multiple new objects to the proper final IDs. The workflow does not need this mapping but it seems the temp_id
must be provided with a valid value regardless.
I forked the repo to submit a pull request increasing the maximum characters for matching projects and tags from 3 to unlimited, only to realize that you had already made that change. The binary on master seems to be for an older version that is still parsing tasks in JS; the new shell scripts (which for the purpose of my tweak already use [^ ,]*
rather than [^ ,]{0,3}
) are not bundled.
I'm grateful for this workflow since the Todoist Quick Add feature can be horribly slow and it's a very easy transition from my Wunderlist workflow.
I'm getting a file not found... when i have time, i'll dig into this, but I wanted to leave a note here with the debug information.
This happens when typing "tod" and using the mouse or keyboard to select the list todos item
[ERROR: alfred.workflow.input.scriptfilter] Code 1: 340:377: execution error: Error on line 15: Error: File wasn't found. (-43)
I'm back! 😄
It would be great to be able to assign a task to a certain project using the comma separator syntax. I am adding tasks and then going through my inbox later to sort them to my different projects. It would save me the hassle.
Thanks again for the great workflow! 👍
Sometimes I create empty todos, when I tried to start the Todoist app and confirmed to fast with enter. Is or could be there an option to disable the creation of empty todo-entrys?
I love the workflow. It's awesome. I would like to be able to see today's tasks when I type "todo" or hit the hotkey I set up. It'd it super convenient to list them there! Thanks for a great workflow!
🚨 You need to enable Continuous Integration on Greenkeeper branches of this repository. 🚨
To enable Greenkeeper, you need to make sure that a commit status is reported on all branches. This is required by Greenkeeper because it uses your CI build statuses to figure out when to notify you about breaking changes.
Since we didn’t receive a CI status on the greenkeeper/initial
branch, it’s possible that you don’t have CI set up yet. We recommend using Travis CI, but Greenkeeper will work with every other CI service as well.
If you have already set up a CI for this repository, you might need to check how it’s configured. Make sure it is set to run on all new branches. If you don’t want it to run on absolutely every branch, you can whitelist branches starting with greenkeeper/
.
Once you have installed and configured CI on this repository correctly, you’ll need to re-trigger Greenkeeper’s initial pull request. To do this, please click the 'fix repo' button on account.greenkeeper.io.
When you download from packal, even though it says it's downloading the 3.1.1 release on the web site, what is actually downloaded isn't 3.1.1 in Alfred, as it didn't have your PATH changes in calls.js. I had to put those in manually, and also this one #9
Issue created with imdone.io
TODO: Update README for v3.1.5 +docs id:2
README.md:4
@imdone Issue Creator. The developer's task board. imdone.io
On a fresh install of v4.0.2 (Alfred v3.5.1) a lot of central commands don't seem to work.
The "todo"-command doesn't do anything, "todos" get's listed in Alfred, but searching doesn't work.The "t"-command get's listed in Alfred, but only ":update" works. Neither ":token", nor ":language" or ":nodejs" works.
Debugging only gives back the following – (at least to me) not very informative – errors:
For inputting the "todo"-command (without any following text):
[2017-11-08 21:06:12][ERROR: input.scriptfilter] Code 127: chmod: build: No such file or directory /Users/jmayer/Library/Caches/com.runningwithcrayons.Alfred-3/Workflow Scripts/B78E5FE2-06E0-4C32-9159-4FA06B4ABE27: line 15: node: command not found [2017-11-08 21:06:12][ERROR: input.scriptfilter] Code 127: /bin/bash: line 9: node: command not found
For inputting the "t:token"-command:
[2017-11-08 21:07:16][ERROR: input.scriptfilter] Code 127: chmod: build: No such file or directory /Users/jmayer/Library/Caches/com.runningwithcrayons.Alfred-3/Workflow Scripts/F5219386-C6A8-433E-A9F8-4B886DFC44AB: line 15: node: command not found [2017-11-08 21:07:16][ERROR: input.scriptfilter] Code 127: /bin/bash: line 14: node: command not found [2017-11-08 21:07:16][ERROR: input.scriptfilter] Code 127: /bin/bash: line 14: node: command not found [2017-11-08 21:07:16][ERROR: input.scriptfilter] Code 127: /bin/bash: line 14: node: command not found [2017-11-08 21:07:17][ERROR: input.scriptfilter] Code 127: /bin/bash: line 14: node: command not found [2017-11-08 21:07:17][ERROR: input.scriptfilter] Code 127: /bin/bash: line 14: node: command not found [2017-11-08 21:07:17][ERROR: input.scriptfilter] Code 127: /bin/bash: line 14: node: command not found
I don't know if this means anything (I have absolutely no clue how Alfred workflows work), but comparing the src with the contents of the installed workflow I found, that there are certain differences. For example the "shell"-folder only contains three .sh-files, while the source contains eight.
Getting an error when passing a nested project name.
I can no longer add a task in todoist directly from alfred. As soon as I type todo + space + typing the todo text, I only get the search engines options. And not "create a task".
Other workflow I have are working as expected.
Steps to reproduce the behavior:
I used to just type in todo Remember to
and hitting enter.
I'm on Alfred 3.7 and Alfred Workflow 5.6.1.
A queried task gets deleted but feedback is "task completed"
Steps to reproduce the behavior:
Task should be under completed task to receive Karma-points
Setting this workflow up on a new machine and unable to add the api token.
t:status {{api token}}
This error "not a valid token" is returned.
The string passes the regex check but errors afterwards.
It looks like there are some other users seeing this behaviour in the last couple of weeks: https://www.alfredforum.com/topic/8554-todoist-workflow/?page=3
First, thanks for doing this!
Second, I saw you started working through the static PATH issues so others could use the workflow. There was one more to go before it started working.
Howdy. I am getting an error anytime I try to create a new todo. Listing items is not an issue. Here is the error console output.
[2017-07-31 11:03:11][input.scriptfilter] Queuing argument '(null)'
[2017-07-31 11:03:11][input.scriptfilter] Queuing argument ''
[2017-07-31 11:03:11][input.scriptfilter] Script with argument '' finished
[2017-07-31 11:03:11][STDERR: input.scriptfilter] ./shell/todo.parse.sh: line 52: INBOX : command not found
./shell/todo.parse.sh: line 53: todoist_create_task: command not found
./shell/todo.parse.sh: line 54: : command not found
[2017-07-31 11:03:11][input.scriptfilter] {"items":[ {"uid":"title","arg":"","valid":true,"autocomplete":"","icon":"icon.png","title":"Create new task - ","subtitle":" #"}]}
[2017-07-31 11:03:12][input.scriptfilter] Queuing argument 'g'
[2017-07-31 11:03:12][input.scriptfilter] Script with argument 'g' finished
[2017-07-31 11:03:13][STDERR: input.scriptfilter] ./shell/todo.parse.sh: line 52: INBOX : command not found
./shell/todo.parse.sh: line 53: todoist_create_task: command not found
./shell/todo.parse.sh: line 54: : command not found
[2017-07-31 11:03:13][input.scriptfilter] {"items":[ {"uid":"title","arg":"","valid":true,"autocomplete":"","icon":"icon.png","title":"Create new task - g","subtitle":" #"}]}
[2017-07-31 11:03:13][input.scriptfilter] Queuing argument 'ge'
[2017-07-31 11:03:13][input.scriptfilter] Queuing argument 'get'
[2017-07-31 11:03:13][input.scriptfilter] Script with argument 'ge' finished
[2017-07-31 11:03:13][STDERR: input.scriptfilter] ./shell/todo.parse.sh: line 52: INBOX : command not found
./shell/todo.parse.sh: line 53: todoist_create_task: command not found
./shell/todo.parse.sh: line 54: : command not found
[2017-07-31 11:03:13][input.scriptfilter] {"items":[ {"uid":"title","arg":"","valid":true,"autocomplete":"","icon":"icon.png","title":"Create new task - ge","subtitle":" #"}]}
[2017-07-31 11:03:13][input.scriptfilter] Queuing argument 'get '
[2017-07-31 11:03:13][input.scriptfilter] Script with argument 'get' finished
[2017-07-31 11:03:13][STDERR: input.scriptfilter] ./shell/todo.parse.sh: line 52: INBOX : command not found
./shell/todo.parse.sh: line 53: todoist_create_task: command not found
./shell/todo.parse.sh: line 54: : command not found
[2017-07-31 11:03:13][input.scriptfilter] {"items":[ {"uid":"title","arg":"","valid":true,"autocomplete":"","icon":"icon.png","title":"Create new task - get","subtitle":" #"}]}
[2017-07-31 11:03:13][input.scriptfilter] Queuing argument 'get m'
[2017-07-31 11:03:13][input.scriptfilter] Script with argument 'get ' finished
[2017-07-31 11:03:13][STDERR: input.scriptfilter] ./shell/todo.parse.sh: line 52: INBOX : command not found
./shell/todo.parse.sh: line 53: todoist_create_task: command not found
./shell/todo.parse.sh: line 54: : command not found
[2017-07-31 11:03:13][input.scriptfilter] {"items":[ {"uid":"title","arg":"","valid":true,"autocomplete":"","icon":"icon.png","title":"Create new task - get","subtitle":" #"}]}
[2017-07-31 11:03:13][input.scriptfilter] Script with argument 'get m' finished
[2017-07-31 11:03:13][STDERR: input.scriptfilter] ./shell/todo.parse.sh: line 52: INBOX : command not found
./shell/todo.parse.sh: line 53: todoist_create_task: command not found
./shell/todo.parse.sh: line 54: : command not found
[2017-07-31 11:03:13][input.scriptfilter] {"items":[ {"uid":"title","arg":"","valid":true,"autocomplete":"","icon":"icon.png","title":"Create new task - get m","subtitle":" #"}]}
[2017-07-31 11:03:13][input.scriptfilter] Queuing argument 'get mi'
[2017-07-31 11:03:13][input.scriptfilter] Script with argument 'get mi' finished
[2017-07-31 11:03:13][STDERR: input.scriptfilter] ./shell/todo.parse.sh: line 52: INBOX : command not found
./shell/todo.parse.sh: line 53: todoist_create_task: command not found
./shell/todo.parse.sh: line 54: : command not found
[2017-07-31 11:03:13][input.scriptfilter] {"items":[ {"uid":"title","arg":"","valid":true,"autocomplete":"","icon":"icon.png","title":"Create new task - get mi","subtitle":" #"}]}
[2017-07-31 11:03:13][input.scriptfilter] Queuing argument 'get mil'
[2017-07-31 11:03:14][input.scriptfilter] Queuing argument 'get milk'
[2017-07-31 11:03:14][input.scriptfilter] Script with argument 'get mil' finished
[2017-07-31 11:03:14][STDERR: input.scriptfilter] ./shell/todo.parse.sh: line 52: INBOX : command not found
./shell/todo.parse.sh: line 53: todoist_create_task: command not found
./shell/todo.parse.sh: line 54: : command not found
[2017-07-31 11:03:14][input.scriptfilter] {"items":[ {"uid":"title","arg":"","valid":true,"autocomplete":"","icon":"icon.png","title":"Create new task - get mil","subtitle":" #"}]}
[2017-07-31 11:03:14][input.scriptfilter] Script with argument 'get milk' finished
[2017-07-31 11:03:14][STDERR: input.scriptfilter] ./shell/todo.parse.sh: line 52: INBOX : command not found
./shell/todo.parse.sh: line 53: todoist_create_task: command not found
./shell/todo.parse.sh: line 54: : command not found
[2017-07-31 11:03:14][input.scriptfilter] {"items":[ {"uid":"title","arg":"","valid":true,"autocomplete":"","icon":"icon.png","title":"Create new task - get milk","subtitle":" #"}]}
[2017-07-31 11:03:15][input.scriptfilter] Processing output of 'action.script' with arg ''
[2017-07-31 11:03:16][ERROR: action.script] module.js:487
throw err;
^
Error: Cannot find module '/Users/shane/Dropbox (Personal)/Alfred.alfredpreferences/workflows/user.workflow.CD76D52B-76B1-4244-9C26-FE9AEFCC0358/index.js'
at Function.Module._resolveFilename (module.js:485:15)
at Function.Module._load (module.js:437:25)
at Function.Module.runMain (module.js:605:10)
at startup (bootstrap_node.js:158:16)
at bootstrap_node.js:575:3
[2017-07-31 11:03:16][action.script] Processing output of 'utility.junction' with arg 'Error: Invalid argument value","command_type":"item_add","error_code":20,"http_code":400}},"temp_id_mapping":{},"full_sync":true,"sync_token":"J7SsbmklDw6ctwUmOhtBz7Me9c9lufgJE1PS9nltVRqRbNaVp5H7AKMLCD08fZGeutRzqHFwp6Feqe8i2NAg9XQqnsupYCMdjhu0diMw6uS4QYk'
[2017-07-31 11:03:16][utility.junction] Processing output of 'utility.filter' with arg 'Error: Invalid argument value","command_type":"item_add","error_code":20,"http_code":400}},"temp_id_mapping":{},"full_sync":true,"sync_token":"J7SsbmklDw6ctwUmOhtBz7Me9c9lufgJE1PS9nltVRqRbNaVp5H7AKMLCD08fZGeutRzqHFwp6Feqe8i2NAg9XQqnsupYCMdjhu0diMw6uS4QYk'
[2017-07-31 11:03:16][utility.filter] Processing output of 'output.notification' with arg 'Error: Invalid argument value","command_type":"item_add","error_code":20,"http_code":400}},"temp_id_mapping":{},"full_sync":true,"sync_token":"J7SsbmklDw6ctwUmOhtBz7Me9c9lufgJE1PS9nltVRqRbNaVp5H7AKMLCD08fZGeutRzqHFwp6Feqe8i2NAg9XQqnsupYCMdjhu0diMw6uS4QYk'
[2017-07-31 11:03:16][utility.junction] Processing output of 'utility.filter' with arg 'Error: Invalid argument value","command_type":"item_add","error_code":20,"http_code":400}},"temp_id_mapping":{},"full_sync":true,"sync_token":"J7SsbmklDw6ctwUmOhtBz7Me9c9lufgJE1PS9nltVRqRbNaVp5H7AKMLCD08fZGeutRzqHFwp6Feqe8i2NAg9XQqnsupYCMdjhu0diMw6uS4QYk'
Please let me know if there is anything I can do to help debug this.
🚨 You need to enable Continuous Integration on Greenkeeper branches of this repository. 🚨
To enable Greenkeeper, you need to make sure that a commit status is reported on all branches. This is required by Greenkeeper because it uses your CI build statuses to figure out when to notify you about breaking changes.
Since we didn’t receive a CI status on the greenkeeper/initial
branch, it’s possible that you don’t have CI set up yet. We recommend using Travis CI, but Greenkeeper will work with every other CI service as well.
If you have already set up a CI for this repository, you might need to check how it’s configured. Make sure it is set to run on all new branches. If you don’t want it to run on absolutely every branch, you can whitelist branches starting with greenkeeper/
.
Once you have installed and configured CI on this repository correctly, you’ll need to re-trigger Greenkeeper’s initial pull request. To do this, please click the 'fix repo' button on account.greenkeeper.io.
I have listing items bound to Alt+t, but it says it's retrieving my Todos and then shows nothing at all.
Thank you for this extension, it's been incredible and I'm loving it so far! I ran into an issue last night where for some reason, adding my project labels don't work anymore and they all go to my inbox. I've tried capitalizing and adding hashtags to no avail.
Does your extension support Sub-Projects? I made a new test folder without sub-projects to test, but it still failed. I did add sub-projects for the first time last night though, so I'm wondering if it was a trigger somehow.
Continuing from this (closed) issue:
Originally posted by @raygan in #40 (comment)
To reproduce, type in a todo and hit enter without waiting a beat. You will often have missing letters at the end of your todo.
Fantastic plugin btw .. use it non-stop and will attempt to hack away at this issue myself when I have a moment.
master
branch failed. 🚨I recommend you give this issue a high priority, so other packages depending on you could benefit from your bug fixes and new features.
You can find below the list of errors reported by semantic-release. Each one of them has to be resolved in order to automatically publish your package. I’m sure you can resolve this 💪.
Errors are usually caused by a misconfiguration or an authentication problem. With each error reported below you will find explanation and guidance to help you to resolve it.
Once all the errors are resolved, semantic-release will release your package the next time you push a commit to the master
branch. You can also manually restart the failed CI job that runs semantic-release.
If you are not sure how to resolve this, here is some links that can help you:
If those don’t help, or if this issue is reporting something you think isn’t right, you can always ask the humans behind semantic-release.
package.json
file.A package.json file at the root of your project is required to release on npm.
Please follow the npm guideline to create a valid package.json
file.
Good luck with your project ✨
Your semantic-release bot 📦🚀
Right now it takes an hour (or however long you've set cache_timeout
) before the cache is updated.
Hi,
I am unable to set the token. When running the command manually, I get :
node alfred-workflow-todoist.js settings:store {"key":"token","value":"XX2ca926568d6XXXXXXXXXXXXXXXX4d10aXX"}
undefined:1
key:token value:XX2ca926568d6XXXXXXXXXXXXXXXX4d10aXX
^
SyntaxError: Unexpected token k in JSON at position 0
at JSON.parse (<anonymous>)
at Object.<anonymous> (/Users/mich/Dropbox/AlfredSync/Alfred.alfredpreferences/workflows/user.workflow.FFA6C1E7-2D50-40E4-BF0B-E517D78738EF/alfred-workflow-todoist.js:55008:39)
at Module._compile (internal/modules/cjs/loader.js:678:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:689:10)
at Module.load (internal/modules/cjs/loader.js:589:32)
at tryModuleLoad (internal/modules/cjs/loader.js:528:12)
at Function.Module._load (internal/modules/cjs/loader.js:520:3)
at Function.Module.runMain (internal/modules/cjs/loader.js:719:10)
at startup (internal/bootstrap/node.js:228:19)
at bootstrapNodeJSCore (internal/bootstrap/node.js:576:3)
node: v10.1.0
OS: mojave
Workflow: 5.4.3
Alfred: 3.7
Issue created with imdone.io
todo: Update README for v3.1.5 +docs id:0
README.md:4
@imdone Issue Creator. The developer's task board. imdone.io
🚨 You need to enable Continuous Integration on Greenkeeper branches of this repository. 🚨
To enable Greenkeeper, you need to make sure that a commit status is reported on all branches. This is required by Greenkeeper because it uses your CI build statuses to figure out when to notify you about breaking changes.
Since we didn’t receive a CI status on the greenkeeper/initial
branch, it’s possible that you don’t have CI set up yet. We recommend using Travis CI, but Greenkeeper will work with every other CI service as well.
If you have already set up a CI for this repository, you might need to check how it’s configured. Make sure it is set to run on all new branches. If you don’t want it to run on absolutely every branch, you can whitelist branches starting with greenkeeper/
.
Once you have installed and configured CI on this repository correctly, you’ll need to re-trigger Greenkeeper’s initial pull request. To do this, please click the 'fix repo' button on account.greenkeeper.io.
Thanks for the workflow!
Could you please add search by tag/project in the same was as it is implemented in todoist search?
Thanks,
Roman
🚨 You need to enable Continuous Integration on Greenkeeper branches of this repository. 🚨
To enable Greenkeeper, you need to make sure that a commit status is reported on all branches. This is required by Greenkeeper because it uses your CI build statuses to figure out when to notify you about breaking changes.
Since we didn’t receive a CI status on the greenkeeper/initial
branch, it’s possible that you don’t have CI set up yet. We recommend using Travis CI, but Greenkeeper will work with every other CI service as well.
If you have already set up a CI for this repository, you might need to check how it’s configured. Make sure it is set to run on all new branches. If you don’t want it to run on absolutely every branch, you can whitelist branches starting with greenkeeper/
.
Once you have installed and configured CI on this repository correctly, you’ll need to re-trigger Greenkeeper’s initial pull request. To do this, please click the 'fix repo' button on account.greenkeeper.io.
When trying to create a new task with a due date, everything is working fine (@, #, p, text, etc...) except the due date. I'm using todoist in french and have configured the workflow in fr too
Steps to reproduce the behavior:
Was expecting to have a new task with a due date set to tomorrow 14h00
Labels with hyphens aren't parsed correctly.
Almost all of my labels have hyphens. Here are a few examples:
Alfred Input:
When I try to add one of these labels (eg. "@now-work"), like so:
No label is added (even though preview suggests it will be added) & the preview doesn't match what was typed.
When adding @label-with-hyphen
, that is applied to the newly created task. Also, preview text in Alfred omnibox reflects that it's going to be added.
Starting debug for 'Alfred Workflow Todoist'
[2018-11-02 09:58:26][utility.debug] 'ALFRED WORKFLOW TODOIST: ✓ Happy days!
Task added
', {}
[2018-11-02 10:00:48][input.scriptfilter] Queuing argument 'N'
[2018-11-02 10:00:48][input.scriptfilter] Queuing argument 'Ne'
[2018-11-02 10:00:48][input.scriptfilter] Queuing argument 'New'
[2018-11-02 10:00:48][input.scriptfilter] Queuing argument 'New '
[2018-11-02 10:00:48][input.scriptfilter] Script with argument '(null)' finished
[2018-11-02 10:00:48][input.scriptfilter] {"items":[{"uid":"693e9af84d3dfcc71e640e005bdc5e2e","title":"CREATE: N","subtitle":"INBOX","icon":{"path":"icon.png"},"arg":"{\"content\":\"N\",\"priority\":1}","type":"default","valid":true}]}
[2018-11-02 10:00:48][input.scriptfilter] Queuing argument 'New t'
[2018-11-02 10:00:48][input.scriptfilter] Queuing argument 'New ta'
[2018-11-02 10:00:48][input.scriptfilter] Queuing argument 'New tas'
[2018-11-02 10:00:48][input.scriptfilter] Queuing argument 'New task'
[2018-11-02 10:00:48][input.scriptfilter] Queuing argument 'New task '
[2018-11-02 10:00:48][input.scriptfilter] Script with argument '(null)' finished
[2018-11-02 10:00:48][input.scriptfilter] {"items":[{"uid":"693e9af84d3dfcc71e640e005bdc5e2e","title":"CREATE: New","subtitle":"INBOX","icon":{"path":"icon.png"},"arg":"{\"content\":\"New\",\"priority\":1}","type":"default","valid":true}]}
[2018-11-02 10:00:48][input.scriptfilter] Queuing argument 'New task #'
[2018-11-02 10:00:49][input.scriptfilter] Script with argument '(null)' finished
[2018-11-02 10:00:49][input.scriptfilter] {"items":[{"uid":"693e9af84d3dfcc71e640e005bdc5e2e","title":"CREATE: New task","subtitle":"INBOX","icon":{"path":"icon.png"},"arg":"{\"content\":\"New task\",\"priority\":1}","type":"default","valid":true}]}
[2018-11-02 10:00:49][input.scriptfilter] Queuing argument 'New task #W'
[2018-11-02 10:00:49][input.scriptfilter] Script with argument '(null)' finished
[2018-11-02 10:00:49][input.scriptfilter] {"items":[{"uid":"693e9af84d3dfcc71e640e005bdc5e2e","title":"Inbox","subtitle":"Move task to Inbox","icon":{"path":"icon.png"},"type":"default","valid":false,"autocomplete":"New task #Inbox "},{"uid":"693e9af84d3dfcc71e640e005bdc5e2e","title":"Alec","subtitle":"Move task to Alec","icon":{"path":"icon.png"},"type":"default","valid":false,"autocomplete":"New task #Alec "},{"uid":"693e9af84d3dfcc71e640e005bdc5e2e","title":"Pray","subtitle":"Move task to Pray","icon":{"path":"icon.png"},"type":"default","valid":false,"autocomplete":"New task #Pray "},{"uid":"693e9af84d3dfcc71e640e005bdc5e2e","title":"Health","subtitle":"Move task to Health","icon":{"path":"icon.png"},"type":"default","valid":false,"autocomplete":"New task #Health "},{"uid":"693e9af84d3dfcc71e640e005bdc5e2e","title":"Home","subtitle":"Move task to Home","icon":{"path":"icon.png"},"type":"default","valid":false,"autocomplete":"New task #Home "},{"uid":"693e9af84d3dfcc71e640e005bdc5e2e","title":"Finance","subtitle":"Move task to Finance","icon":{"path":"icon.png"},"type":"default","valid":false,"autocomplete":"New task #Finance "},{"uid":"693e9af84d3dfcc71e640e005bdc5e2e","title":"Groceries","subtitle":"Move task to Groceries","icon":{"path":"icon.png"},"type":"default","valid":false,"autocomplete":"New task #Groceries "},{"uid":"693e9af84d3dfcc71e640e005bdc5e2e","title":"Wishlist","subtitle":"Move task to Wishlist","icon":{"path":"icon.png"},"type":"default","valid":false,"autocomplete":"New task #Wishlist "},{"uid":"693e9af84d3dfcc71e640e005bdc5e2e","title":"Hustle","subtitle":"Move task to Hustle","icon":{"path":"icon.png"},"type":"default","valid":false,"autocomplete":"New task #Hustle "},{"uid":"693e9af84d3dfcc71e640e005bdc5e2e","title":"Rise","subtitle":"Move task to Rise","icon":{"path":"icon.png"},"type":"default","valid":false,"autocomplete":"New task #Rise "},{"uid":"693e9af84d3dfcc71e640e005bdc5e2e","title":"Render","subtitle":"Move task to Render","icon":{"path":"icon.png"},"type":"default","valid":false,"autocomplete":"New task #Render "},{"uid":"693e9af84d3dfcc71e640e005bdc5e2e","title":"Release","subtitle":"Move task to Release","icon":{"path":"icon.png"},"type":"default","valid":false,"autocomplete":"New task #Release "},{"uid":"693e9af84d3dfcc71e640e005bdc5e2e","title":"Raze","subtitle":"Move task to Raze","icon":{"path":"icon.png"},"type":"default","valid":false,"autocomplete":"New task #Raze "},{"uid":"693e9af84d3dfcc71e640e005bdc5e2e","title":"Seek","subtitle":"Move task to Seek","icon":{"path":"icon.png"},"type":"default","valid":false,"autocomplete":"New task #Seek "},{"uid":"693e9af84d3dfcc71e640e005bdc5e2e","title":"Media","subtitle":"Move task to Media","icon":{"path":"icon.png"},"type":"default","valid":false,"autocomplete":"New task #Media "},{"uid":"693e9af84d3dfcc71e640e005bdc5e2e","title":"Work","subtitle":"Move task to Work","icon":{"path":"icon.png"},"type":"default","valid":false,"autocomplete":"New task #Work "},{"uid":"693e9af84d3dfcc71e640e005bdc5e2e","title":"CapDock","subtitle":"Move task to CapDock","icon":{"path":"icon.png"},"type":"default","valid":false,"autocomplete":"New task #CapDock "},{"uid":"693e9af84d3dfcc71e640e005bdc5e2e","title":"OSS / Shared","subtitle":"Move task to OSS / Shared","icon":{"path":"icon.png"},"type":"default","valid":false,"autocomplete":"New task #[OSS / Shared] "},{"uid":"693e9af84d3dfcc71e640e005bdc5e2e","title":"Bubblegum","subtitle":"Move task to Bubblegum","icon":{"path":"icon.png"},"type":"default","valid":false,"autocomplete":"New task #Bubblegum "},{"uid":"693e9af84d3dfcc71e640e005bdc5e2e","title":"Ideas","subtitle":"Move task to Ideas","icon":{"path":"icon.png"},"type":"default","valid":false,"autocomplete":"New task #Ideas "},{"uid":"693e9af84d3dfcc71e640e005bdc5e2e","title":"Research","subtitle":"Move task to Research","icon":{"path":"icon.png"},"type":"default","valid":false,"autocomplete":"New task #Research "},{"uid":"693e9af84d3dfcc71e640e005bdc5e2e","title":"Finance","subtitle":"Move task to Finance","icon":{"path":"icon.png"},"type":"default","valid":false,"autocomplete":"New task #Finance "},{"uid":"693e9af84d3dfcc71e640e005bdc5e2e","title":"People","subtitle":"Move task to People","icon":{"path":"icon.png"},"type":"default","valid":false,"autocomplete":"New task #People "},{"uid":"693e9af84d3dfcc71e640e005bdc5e2e","title":"Events","subtitle":"Move task to Events","icon":{"path":"icon.png"},"type":"default","valid":false,"autocomplete":"New task #Events "}]}
[2018-11-02 10:00:49][input.scriptfilter] Queuing argument 'New task #Wo'
[2018-11-02 10:00:49][input.scriptfilter] Queuing argument 'New task #Wor'
[2018-11-02 10:00:49][input.scriptfilter] Queuing argument 'New task #Work'
[2018-11-02 10:00:49][input.scriptfilter] Queuing argument 'New task #Work '
[2018-11-02 10:00:49][input.scriptfilter] Script with argument '(null)' finished
[2018-11-02 10:00:49][input.scriptfilter] {"items":[{"uid":"693e9af84d3dfcc71e640e005bdc5e2e","title":"Work","subtitle":"Move task to Work","icon":{"path":"icon.png"},"type":"default","valid":false,"autocomplete":"New task #Work "},{"uid":"693e9af84d3dfcc71e640e005bdc5e2e","title":"Wishlist","subtitle":"Move task to Wishlist","icon":{"path":"icon.png"},"type":"default","valid":false,"autocomplete":"New task #Wishlist "}]}
[2018-11-02 10:00:50][input.scriptfilter] Queuing argument 'New task #Work @'
[2018-11-02 10:00:50][input.scriptfilter] Queuing argument 'New task #Work @n'
[2018-11-02 10:00:50][input.scriptfilter] Queuing argument 'New task #Work @no'
[2018-11-02 10:00:50][input.scriptfilter] Script with argument '(null)' finished
[2018-11-02 10:00:50][input.scriptfilter] {"items":[{"uid":"693e9af84d3dfcc71e640e005bdc5e2e","title":"CREATE: New task","subtitle":"WORK","icon":{"path":"icon.png"},"arg":"{\"content\":\"New task\",\"priority\":1,\"project\":\"Work\"}","type":"default","valid":true}]}
[2018-11-02 10:00:50][input.scriptfilter] Queuing argument 'New task #Work @now'
[2018-11-02 10:00:50][input.scriptfilter] Queuing argument 'New task #Work @now-'
[2018-11-02 10:00:50][input.scriptfilter] Queuing argument 'New task #Work @now-w'
[2018-11-02 10:00:50][input.scriptfilter] Queuing argument 'New task #Work @now-wo'
[2018-11-02 10:00:50][input.scriptfilter] Script with argument '(null)' finished
[2018-11-02 10:00:50][input.scriptfilter] {"items":[{"uid":"693e9af84d3dfcc71e640e005bdc5e2e","title":"noon","subtitle":"Add label noon to task","icon":{"path":"icon.png"},"type":"default","valid":false,"autocomplete":"New task #Work @noon "},{"uid":"693e9af84d3dfcc71e640e005bdc5e2e","title":"now-me","subtitle":"Add label now-me to task","icon":{"path":"icon.png"},"type":"default","valid":false,"autocomplete":"New task #Work @now-me "},{"uid":"693e9af84d3dfcc71e640e005bdc5e2e","title":"now-work","subtitle":"Add label now-work to task","icon":{"path":"icon.png"},"type":"default","valid":false,"autocomplete":"New task #Work @now-work "},{"uid":"693e9af84d3dfcc71e640e005bdc5e2e","title":"next-work","subtitle":"Add label next-work to task","icon":{"path":"icon.png"},"type":"default","valid":false,"autocomplete":"New task #Work @next-work "},{"uid":"693e9af84d3dfcc71e640e005bdc5e2e","title":"info-read","subtitle":"Add label info-read to task","icon":{"path":"icon.png"},"type":"default","valid":false,"autocomplete":"New task #Work @info-read "},{"uid":"693e9af84d3dfcc71e640e005bdc5e2e","title":"info-watch","subtitle":"Add label info-watch to task","icon":{"path":"icon.png"},"type":"default","valid":false,"autocomplete":"New task #Work @info-watch "},{"uid":"693e9af84d3dfcc71e640e005bdc5e2e","title":"info-sermon","subtitle":"Add label info-sermon to task","icon":{"path":"icon.png"},"type":"default","valid":false,"autocomplete":"New task #Work @info-sermon "},{"uid":"693e9af84d3dfcc71e640e005bdc5e2e","title":"info-curate","subtitle":"Add label info-curate to task","icon":{"path":"icon.png"},"type":"default","valid":false,"autocomplete":"New task #Work @info-curate "},{"uid":"693e9af84d3dfcc71e640e005bdc5e2e","title":"info-listen","subtitle":"Add label info-listen to task","icon":{"path":"icon.png"},"type":"default","valid":false,"autocomplete":"New task #Work @info-listen "},{"uid":"693e9af84d3dfcc71e640e005bdc5e2e","title":"min-background","subtitle":"Add label min-background to task","icon":{"path":"icon.png"},"type":"default","valid":false,"autocomplete":"New task #Work @min-background "},{"uid":"693e9af84d3dfcc71e640e005bdc5e2e","title":"before-leaving-home","subtitle":"Add label before-leaving-home to task","icon":{"path":"icon.png"},"type":"default","valid":false,"autocomplete":"New task #Work @before-leaving-home "},{"uid":"693e9af84d3dfcc71e640e005bdc5e2e","title":"before-arriving-home","subtitle":"Add label before-arriving-home to task","icon":{"path":"icon.png"},"type":"default","valid":false,"autocomplete":"New task #Work @before-arriving-home "},{"uid":"693e9af84d3dfcc71e640e005bdc5e2e","title":"type-routine-potential","subtitle":"Add label type-routine-potential to task","icon":{"path":"icon.png"},"type":"default","valid":false,"autocomplete":"New task #Work @type-routine-potential "}]}
[2018-11-02 10:00:50][input.scriptfilter] Queuing argument 'New task #Work @now-wor'
[2018-11-02 10:00:50][input.scriptfilter] Queuing argument 'New task #Work @now-work'
[2018-11-02 10:00:50][input.scriptfilter] Queuing argument 'New task #Work @now-work '
[2018-11-02 10:00:51][input.scriptfilter] Script with argument '(null)' finished
[2018-11-02 10:00:51][input.scriptfilter] {"items":[{"uid":"693e9af84d3dfcc71e640e005bdc5e2e","title":"CREATE: New task-wo","subtitle":"WORK @ now","icon":{"path":"icon.png"},"arg":"{\"content\":\"New task-wo\",\"priority\":1,\"project\":\"Work\",\"labels\":[\"now\"]}","type":"default","valid":true}]}
[2018-11-02 10:00:51][input.scriptfilter] Queuing argument 'New task #Work @now-work'
[2018-11-02 10:00:51][input.scriptfilter] Script with argument '(null)' finished
[2018-11-02 10:00:51][input.scriptfilter] {"items":[{"uid":"693e9af84d3dfcc71e640e005bdc5e2e","title":"CREATE: New task-work","subtitle":"WORK @ now","icon":{"path":"icon.png"},"arg":"{\"content\":\"New task-work\",\"priority\":1,\"project\":\"Work\",\"labels\":[\"now\"]}","type":"default","valid":true}]}
[2018-11-02 10:00:51][input.scriptfilter] Script with argument '(null)' finished
[2018-11-02 10:00:51][input.scriptfilter] {"items":[{"uid":"693e9af84d3dfcc71e640e005bdc5e2e","title":"CREATE: New task-work","subtitle":"WORK @ now","icon":{"path":"icon.png"},"arg":"{\"content\":\"New task-work\",\"priority\":1,\"project\":\"Work\",\"labels\":[\"now\"]}","type":"default","valid":true}]}
[2018-11-02 10:00:54][input.scriptfilter] Processing output of 'action.script' with arg '{"content":"New task-work","priority":1,"project":"Work","labels":["now"]}'
[2018-11-02 10:01:00][action.script] Processing output of 'utility.debug' with arg 'ALFRED WORKFLOW TODOIST: ✓ Happy days!
Task added
'
[2018-11-02 10:01:00][utility.debug] 'ALFRED WORKFLOW TODOIST: ✓ Happy days!
Task added
', {}
Great workflow, love that I can add a new todo in <1 sec now! Quick question on the todos
list... is there something I can type or configure to see only overdue + today's tasks? Right now when I type todos
I'll see a list of (somewhat) arbitrarily-sorted items. Thanks! 😃
After downloading the workflow, the given configuration steps are not working
Download the workflow, type todo:setting token
set the token as workflow config
[2018-11-26 16:32:47][ERROR: input.scriptfilter] Code 1: /Users/Timpi/Library/Application Support/Alfred 3/Alfred.alfredpreferences/workflows/user.workflow.BCBD9574-3DE4-4B5C-A686-8DDD0D2FE3F3/alfred-workflow-todoist.js:39872
url = normalizeUrlObject({ ...opts, pathname, search });
^^^
SyntaxError: Unexpected token ...
at Object.exports.runInThisContext (vm.js:76:16)
at Module._compile (module.js:542:28)
at Object.Module._extensions..js (module.js:579:10)
at Module.load (module.js:487:32)
at tryModuleLoad (module.js:446:12)
at Function.Module._load (module.js:438:3)
at Module.runMain (module.js:604:10)
at run (bootstrap_node.js:394:7)
at startup (bootstrap_node.js:149:9)
at bootstrap_node.js:509:3
EDIT:
same behaviour for every configuration option
thanks for your time
When I DL and try to import the workflow, it does not get imported. I was able to import the previous version of the workflow before the the "rewrite".
Alfred: v3.7 [938]
Thanks!
Hi,
This workflow isn't working for me after inserting my token. I get the success popup, but nothing shows up in todoist.
Thank!
Issue created with imdone.io
todo: Update README for v3.1.5 +docs id:1
README.md:4
@imdone Issue Creator. The developer's task board. imdone.io
Nothing works.
Alfred Todoist workflow v5.0.0
Alfred v3.7
Node.js v10.11.0
[2018-10-03 21:06:23][ERROR: input.scriptfilter] JSON error: JSON text did not start with array or object and option to allow fragments not set. in JSON:
TypeError: Cannot read property 'explanation' of undefined
Stack: TypeError: Cannot read property 'explanation' of undefined
I've just tried to import the workflow into Alfred 2.8.6, and it shows me a message stating that this version of Alfred is too old. Did you create this in Alfred 3?
It would be nice to show Due Dates in todos
command.
Generally, each item from Alfred API contains either the date_string
(natural language format) or due_date_utc
date. UTC date can be processed and shown in the Alfred item content.
comment is necessary for task.
Hi,
The latest version of this workflow @ http://www.packal.org/workflow/alfred-workflow-todoist is 3.1.4 and should be updated to the latest
Hi,
I'm running into an issue with this workflow. I've followed the setup instructions (minus installing NodeJS, since I already have that installed as I am a web developer).
When I open Alfred and type todo pickup the milk tomorrow @ 9am
, hit enter, I get the OSX notification that the task was saved. However, when I open my todoist app or check my account online, the task is not there.
Any ideas what may be causing this issue? I tried re-issuing an API key to see if that would work, but it did not help.
I am a Premium user of Todoist, and have the Alfred PowerPack, if that helps at all.
OSX Version: 10.11.5
Alfred version: 3.0..3
Todoist version: 813
Node version: 5.5.0
Cheers
I've got error like below message.
Failure
Error: Unable to verify the first certificate
This is alfred workflow log.
[2018-01-10 17:04:56][input.scriptfilter] Processing output of 'action.script' with arg '{"labels":[],"priority":1,"project":"Inbox","date":"","task":"test"}'
[2018-01-10 17:04:56][action.script] Processing output of 'utility.junction' with arg 'Error: unable to verify the first certificate
Error: unable to verify the first certificate
Error: unable to verify the first certificate
'
[2018-01-10 17:04:56][utility.junction] Processing output of 'utility.filter' with arg 'Error: unable to verify the first certificate
Error: unable to verify the first certificate
Error: unable to verify the first certificate
'
[2018-01-10 17:04:56][utility.filter] Processing output of 'output.notification' with arg 'Error: unable to verify the first certificate
Error: unable to verify the first certificate
Error: unable to verify the first certificate
'
[2018-01-10 17:04:56][utility.junction] Processing output of 'utility.filter' with arg 'Error: unable to verify the first certificate
Error: unable to verify the first certificate
Error: unable to verify the first certificate
'
This is my npm global config.
global = true
metrics-registry = "http://registry.npmjs.org/"
scope = ""
user-agent = "npm/5.6.0 node/v8.9.3 darwin x64"
registry = "http://registry.npmjs.org/"
strict-ssl = false
Please let me know how to resolve this error message.
I have a few lists that I use with the the Todoist API which are not really todos that I need to see often. I would love them to be hidden from the Alfred interface, but I don't see a option.
What I was thinking is that if a list began with a specific character it would not show up in the list eg _hidden list
would not be shown.
Any thoughts?
When adding a todo task with "todo test" I get the following error:
[2018-01-27 00:14:06][utility.junction] Processing output of 'utility.filter' with arg 'Error: getaddrinfo ENOTFOUND todoist.com todoist.com:443
Error: getaddrinfo ENOTFOUND todoist.com todoist.com:443
Error: getaddrinfo ENOTFOUND todoist.com todoist.com:443
My Mac does not have a direct route to the internet. Adding tasks works when having a direct route.
Alfred-workflow-todoist version: v4.0.2
Alfred version: v.3.5.1
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.