cbrooker / mmm-todoist Goto Github PK
View Code? Open in Web Editor NEWThis is an extension for the MagicMirror2 platform. It will display your Todoist todos on your MagicMirror.
License: MIT License
This is an extension for the MagicMirror2 platform. It will display your Todoist todos on your MagicMirror.
License: MIT License
Hi there. Great module! Love it! Only issue I'm having right now is that it is only displaying one project. I have copied over the project ID's (3 of 'em) but it will only show one. If I try each one individually, only one is displaying which is really weird. I know I'm copying the right project number: https://todoist.com/app#project%2F<this_number>%2Ffull
Any ideas on what could be wrong here? Thanks!
Hi,
I want to extend the module a little bit:
Could you please give us a hint, where I have to make the changes?
Thanks, best regards
Maurice
to filter to only have max number of indent levels shown to only show the high level items as reminders rather than filling whole screen of details.
ReadMe:
Add Configuration Option text: indent: 1,
This will determine the maximum number of indent to display
Possible values: int
Default value: 10
Note: Todoist only currently allows 4 levels of indent. Default kept high for future compatibility should this change.
MMM-Todoist.js
add line 60: indent: 10,
change line 245: if (item.project_id == project && item.indent <= self.config.indent){
great app - but How is it possible to find the Project ID number to display the list you want?
I've made the fun discovery that when this module is running, other todoist clients that use the sync API (the web app, native OSX app, etc) can't load/are stuck in Offline mode. I have not yet taken a deep look into the sync API methods so I don't know how, but it's been driving me nuts that I can't use Todoist on a desktop for a couple of weeks, and I only just now figured out that this is the culprit.
Now that I know, I can at least quit the MagicMirror to use todoist on the web but that's pretty hacky. When I have a chance I'll read through their documentation to see if I can figure out what the deal is -- it used to work just fine so I'll bet that when they updated their API (which caused this module to blank before!), something changed that it doesn't like anymore.
line 148:
table.style.opacity = 1 - (1 / steps * currentStep);
should be:
todoCell.style.opacity = 1 - (1 / steps * currentStep);
I'd like to be able to show completed tasks with a strikethrough. The goal is to have a chore list that can be updated by the family member on their personal device when they've completed it. After that it will show on the MM as done (strikethrough) instead of just disappearing. When it disappears it's more likely just going to be forgotten.
Would it be possible to sort first by projectname and then by date?
So you have al things for one project grouped?
Is there a way to add multiple Todoist accounts? E.g. add multiple access tokens, or add another ProjectID from someone else's account? I tried simply adding another project ID from a different account separated by a common and it did not seem to work, I assume each account needs its own unique access token
I have done everything you described in the readme file, but it schows only the title of the module but no Tasks.
Hey all,
I can get the module to sort by date, but I can't quite figure out what the default "todoist" sortType does. It doesn't seem to sort by the time/date I created my to dos and it definitely doesn't seem to mirror whatever sorting option I select for a particular project on either the todoist web interface or the app. How is the default "todoist" sortType sorting?
Thanks!
Hey there! :)
I'm trying to create a list what showing every item containing the label "Monitor". Unfortunately it does not show anything besides the header.
I tried single & double quotes, with or without a prefix "@" or "%40", with the capital or only lowercase but everything does not seem to help. I'm I the only one with this problem? And if so, can some one maybe tell me what I'm doing wrong? :)
position: 'bottom_left',
header: 'Monitor',
config: {
accessToken: 'mytoken',
maximumEntries: 60,
updateInterval: 60*1000,
fade: false,
labels: [ "Monitor" ],
displayTasksWithoutDue: true,
displayTasksWithinDays: -1,
maxTitleLength: 50,
}
Hi Chris,
Could you please add a screenshot somewhere. I would like to see how this look.
Thanks.
I carefully read all treads and tried all possible solutions to get the module to work (Feb 2020)
My configs are all updated, the module runs, but it doesnt show any items. I have some images of the todisih developer hub, config.js and MMM-Todoist.js.
Im really stuck, can anyone have a look with me? Would be very much appreciated.
It literally will not display the list... no errors to go by either.
How can the fonts of the Project Title and/or the events be changed? Specifically I would like to change the size
Hello,
Since commit #58 (4a0af4b) todoist module is breaking images from other modules (e.g. MMM-Wallpaper or MMM-reddit).
I think it's because of the css file in the .img section, it affects ALL images.
I'm not very familiar with MM² or JS, so i'm not able to find a clean fix for it and do a PR.
I have temporarily commented the img section in /MMM-Todoist.css
This project is currently using the Sync API over the REST API.
It strikes me that this is not the best approach - the purpose of this module is to display to-dos. Rather than pulling in all of the account data via a sync request and filtering it out, it seems like it would be better to use the REST API to query for the specific tasks to be shown.
This is beneficial for multiple reasons:
Looking at the REST API docs for getting active tasks, it seems pretty simple to retrieve tasks in this way.
It easily allows for filtering tasks by project ID and label for all (making this an easy under-the-hood swap-out for the current implementation, with no breaking changes to the config layout), and also allows for filtering by labels for Todoist Premium, which can be added to the config specification.
This would change behaviour in one way, though:
Currently, if both projects and labels are specified, then tasks from both will be shown. In this new implementation, then it would only show tasks that matched all filtering in the request (i.e. only tasks in the specified projects with specified labels and filters.
However, I feel that this is more appropriate. If this is important, then perhaps it can be added as a flag, which would choose which API to use, based on required functionality? I can imagine that someone on the free version of Todoist might want the existing functionality, but someone on Todoist Premium can get that level of control via a filter quite easily, and more precisely.
I have 2 different ToDo lists, one for the week (Monday-Friday) and one for the weekend (Sat-Sun), it would be awesome if the module would only show me the project depending on the day. might be a very specific case so I'll fork the project and work on a solution that works for me
If two MMM-Todoist modules are added to the magic mirror, (one in the top left and one in the bottom right) and you want to have one show the tasks of a project with a due date and the other show tasks with a label, if the tasks displayed in the top left are being filtered, they won't be displayed in the bottom right, despite having a different filter.
look at line 5268
var isAdded=0; // To prevent a task in added twice. Far from fancy, can be improved. But it works.
5269
5270 // Filter using label if a label is configured
-271 if (labelIds.length>0 && item.labels.length > 0) {
6272 // Check all the labels assigned to the task. Add to items if match with configured label
+273 for (let label of item.labels) {...}
For me this works fine and it is far more manageable.
Would be nice if you could make a blacklist, so you choose which projects not to display
Originally posted by @tintinmaster in #47 (comment)
Hi,
Would it be possible to display to whom the task is assign to?
Thanks in advance, the code is awesome!!!! :)
It looks like a similar ask was raised in #27, so close this if it's the same answer.
Is there a max width I can apply? I'm not super familiar w/ how MMirror does all it's layouts and width calculations for the grid, but it looks like the do not put a hard limit on width?
I have one really long task in Todoist/Inbox. It's not a common thing, just a kinda occasional edge-case. This really long task is stretching out the widget so it's clobbering others. I'll get this task cleaned up / organized soon, so it'll stop being an issue soon... I just wanted to ask while i still noticed / could take a screenshot.
Is there something that i can do w/ the API to limit this or should i get a quick PR in?
JS is ... not a core strength of mine, so it'd be dirty / look something like:
item.length >= 60 ? item.substring(0,60) : item
(where 60 should probably be something users can override...)
somewhere around here:
https://github.com/cbrooker/MMM-Todoist/blob/master/MMM-Todoist.js#L95
-K
Not really sure what's going on with this one. It worked excellently for awhile (several weeks at least!) and then boom it's stopped showing up since the other day. The module header is there, but there's no list. I've checked my config and I've deleted/reinstalled the module entirely, but there's just no content. Thought I had maybe messed it up while trying to change CSS but I didn't modify this one at all.
Hi,
since the newest changes fpr API V8 the project colors are not visible anymore.
Could you please check that?
Best regards
Maurice
If I add a to do list entry without a due date, the module does not load on startup and if it's already running, it stops updating. I've been able to reproduce this error consistently.
Here’s the log
Create new todo fetcher for list: 2153843199 - Interval: 60000
0|mm | Whoops! There was an uncaught exception…
0|mm | TypeError: Cannot read property ‘substring’ of null
0|mm | at Request._callback (/home/pi/MagicMirror/modules/MMM-Todoist/fetcher.js:69:35)
0|mm | at Request.self.callback (/home/pi/MagicMirror/modules/MMM-Todoist/node_modules/request/request.js:188:22)
0|mm | at emitTwo (events.js:106:13)
0|mm | at Request.emit (events.js:191:7)
0|mm | at Request. (/home/pi/MagicMirror/modules/MMM-Todoist/node_modules/request/request.js:1171:10)
0|mm | at emitOne (events.js:96:13)
0|mm | at Request.emit (events.js:188:7)
0|mm | at IncomingMessage. (/home/pi/MagicMirror/modules/MMM-Todoist/node_modules/request/request.js:1091:12)
0|mm | at Object.onceWrapper (events.js:290:19)
0|mm | at emitNone (events.js:91:20)
0|mm | MagicMirror will not quit, but it might be a good idea to check why this happened. Maybe no internet connection?
0|mm | If you think this really is an issue, please open an issue on GitHub: https://github.com/MichMich/MagicMirror/issues
I am currently using eouia's MMM-CalendarEXT2, and when I use Todoist module as well, everything on the monthly look ahead view of my calendar is underlined. Should I edit Todoist's module's CSS to be more module specific (I am assuming maybe some of the variables between these two modules are the same...) Thanks for any pointers.
When arraying multiple projects to a single module and displaying the name in the module, my project names do not alight right as the due date does. Is there a parameter that can adjust this?
Thanks!
Nick
Hi,
I have tried to install and setup MMM-Todoist on my mirror but it literally shows nothing, not even the title?! I have the RPi3B+ and am using the latest Raspbian release and MagicMirror2 release. I have other modules working but cannot seem to get this to work at all?!
Hello,
I just noticed that the module suddenly stopped working. After some research I found out that the used API V7 is no longer supported.
Can you maybe update the module so it supports the newest API?
Thank you!
Since this past update, I have been seeing several error like:
0|mm | Whoops! There was an uncaught exception...
0|mm | TypeError: Cannot read property 'substring' of null
0|mm | at Request._callback (/home/pi/MagicMirror/modules/MMM-Todoist/fetcher.js:69:35)
0|mm | at Request.self.callback (/home/pi/MagicMirror/modules/MMM-Todoist/node_modules/request/request.js:187:22)
0|mm | at emitTwo (events.js:106:13)
0|mm | at Request.emit (events.js:191:7)
0|mm | at Request.<anonymous> (/home/pi/MagicMirror/modules/MMM-Todoist/node_modules/request/request.js:1126:10)
0|mm | at emitOne (events.js:96:13)
0|mm | at Request.emit (events.js:188:7)
0|mm | at IncomingMessage.<anonymous> (/home/pi/MagicMirror/modules/MMM-Todoist/node_modules/request/request.js:1046:12)
0|mm | at IncomingMessage.g (events.js:286:16)
0|mm | at emitNone (events.js:91:20)
0|mm | MagicMirror will not quit, but it might be a good idea to check why this happened. Maybe no internet connection?
0|mm | If you think this really is an issue, please open an issue on GitHub: https://github.com/MichMich/MagicMirror/issues
I don't know much about node but it appears it's not happy with request. All of my other plugins work so I don't think it's related to he latest MM update but I'm feeling around in the dark here.
My configs look like:
{
module: 'MMM-Todoist',
position: 'bottom_left',
header: 'Personal Goals',
config: {
accessToken: 'removed-but-verified',
maximumEntries: 10,
interval: 60,
lists: [ removed-but-verified ],
fade: false
}
I'm happy to help troubleshoot.
When looking for the projectID using the method described (from the URL taking the %2F out) doesn't seem to work ?
I found the correct ones using an sample from the toDoist API documentation :
https://todoist.com/api/v7/sync?token=_INSERT_YOUR_TOKEN_HERE_&sync_token=*&resource_types=["projects"]
this way I got totally different projectID's , and those work just fine !
Using the following config, I get three copies of the same project list, despite using separate project IDs, in the below example the list with "projectID3".
Earlier versions of MMM-Todoist allowed separate instances to access different project lists, potentially with different access tokens, ie my wife vs my own accounts.
I find the new showProject tag to be a little distracting, hence me wanting to group my lists manually; 1 title vs 20 copies of "Alexa Shopping List", for example.
Here's my config:
module: 'MMM-Todoist',
position: 'top_center',
header: 'To Do List', // This is optional
config: {
accessToken: 'accessToken',
maximumEntries: 10,
interval: 30,
projects: [ projectID1 ],
showProject: true,
fade: false
}
},
{
module: 'MMM-Todoist',
position: 'top_center',
header: 'Ikea', // This is optional
config: {
accessToken: 'accessToken',
maximumEntries: 10,
interval: 30,
projects: [ projectID2 ],
showProject: true,
fade: false
}
},
{
module: 'MMM-Todoist',
position: 'top_center',
header: 'Shopping List', // This is optional
config: {
accessToken: 'accessToken',
maximumEntries: 10,
interval: 30,
projects: [ projectID3 ],
showProject: true,
fade: false
}
},
Currently outputs:
To Do List
Bacon Alexa Shopping List
Eggs Alexa Shopping List
Milk Alexa Shopping List
Bread Alexa Shopping List
Ikea
Bacon Alexa Shopping List
Eggs Alexa Shopping List
Milk Alexa Shopping List
Bread Alexa Shopping List
Shopping List
Bacon Alexa Shopping List
Eggs Alexa Shopping List
Milk Alexa Shopping List
Bread Alexa Shopping List
Hey there :). Thanks for putting this module together!
I have a question. Has the ToDoist module been tested with serveronly
? (see: https://github.com/MichMich/MagicMirror#server-only)
I have a working MagicMirror install running in a Docker container. I am able to pull up the magic mirror web-page in a chrome browser.
I am not a JS expert, much less super familiar with node
, but it appears that there is some form of node helper script that this plugin relies on. I think this is the case because i see code like this:
this.sendSocketNotification("FETCH_TODOIST", this.config);
and not a whole lot of code that i would expect to see in a ToDoist API client... but i do see it in the node_helper.js
Basically, I see the todoist plugin loading in my browser, but there is no data under it. I suspect that there is something preventing the helper from loading / fetching the data, but i'm not 100% sure where to being looking / if serveronly
supports node-helpers.
here's what i see in STDOUT
when i launch the magic-mirror server:
Starting MagicMirror: v2.4.0
Loading config ...
Loading module helpers ...
No helper found for module: alert.
Initializing new module helper ...
Module helper loaded: updatenotification
No helper found for module: clock.
Initializing new module helper ...
Module helper loaded: calendar
No helper found for module: compliments.
No helper found for module: currentweather.
No helper found for module: weatherforecast.
No helper found for module: MMM-CountDown.
All module helpers loaded.
Starting server on port 8080 ...
Server started ...
Connecting socket for: updatenotification
Connecting socket for: calendar
Starting node helper for: calendar
Sockets connected & modules started ...
Ready to go! Please point your browser to: http://0.0.0.0:8080
Create new calendar fetcher for url: http://www.calendarlabs.com/templates/ical/US-Holidays.ics - Interval: 300000
Note: the lack of No helper found for module: MMM-Todoist.
implying that node_helper.js
was found / loaded...
Note: the lack of Starting node helper for: MMM-Todoist
Thoughts?
My raspberry pi has the timezone set for New York and displays time correctly. I have my ToDoist account in the same time zone. But the MM module is showing list items with the incorrect due date. Example an item due on 3/20 (today) is saying it was due yesterday. Is this a UTC issue?
Hello,
Not sure if this is the right place, I'm a noob to GitHub. I've just started using this module and I was able to install and get it working with few issues. I noticed that there are 3 columns there is space reserved for. The task description, a due date, and then what list it is from. Is it possible to remove due date and/or the list its from are from so the description can fill more of the width? I didn't see such an option in your description maybe I missed it. Let me know I'd love to be able to just have tasks listed, no need for the date or what list they are from. Great module by the way.
Thank you!
Hi -
My todoist module isnt updating - no error messages either in the console. Items dont come off the todo list.
Looking at the readme file - is the update interval in seconds or minutes? I noticed that in the readme file MaximumEntries and Interval both refers how often it updates:
maximumEntries
Possible values: time in min
Default value: 60
interval
How often the module should load new todos.
Possible values: int in seconds
Default value: 60
can you clarify? Is the interval in seconds or mins?
Thanks
Do You think, its easy to change the Look?
I use the Module “Mmm-my calendar”, and it would be great to have the same Look.
(two lines, one with Taskname, one with date, and a Symbol)
Let me know how to alter the width as I have this in the center and need it wider, also how to remove the project name, I dont mind the dots but dont need to see the project name for every item on my shopping list. (also "Inbox" for the todo list) Many thanks for a great module.
The idea is to only show what you have to do for today. Is this possible? I can't find it anywhere in the doc :(
Hey there,
just got into the MagicMirror thing and I love it. Your Todoist module was the first I installed and instantly got it to work.
Now there is one issue and one request:
I have several tasks already marked as done, but they still appear on the smart mirror as if they were new. Is there a fix for this?
I have a large amount of projects in Todoist but I don't really care for them. I normally use the "today" and the "next 7 days" views.
Is it somehow possible to get the module show these views instead of just projects, that I manually need to add to the config?
Would be great hearing from you.
Have a nice day.
Jan
Hey.
is it possible to add a function to change the maximumNumberOfDays where shown the tasks?
(like in the calendar-module)
It would be nice to not enforce the project Id inside the configuration, since a user may have short-lived projects and does not want to update the configuration every time.
Thank you for providing us this fantastic module!
My MMM-Todoist works fine. But I found a error log in console:
[12208:0523/220203.528255:INFO:CONSOLE(201)] "ToDoIst update OK, project : 22107111111 at : Invalid date", source: http://0.0.0.0:8080/modules/MMM-Todoist//MMM-Todoist.js (201)
I'd like to know what it mean. How can I make it disappear? Could you give me some suggestions? Thanks.
It appears that Todoist might have defaulted to a floating time zone. Which means that the Today/Tomorrow label changes according to GMT. So I (-8 GMT) keep having tomorrow's due dates, show as today. I'm able to work around by adding a time due (which adds a local timezone).
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.