delightedcrow / mmm-habiticastats Goto Github PK
View Code? Open in Web Editor NEWMMM-HabiticaStats is a module for MagicMirror² that displays player statistics for Habitica.
License: MIT License
MMM-HabiticaStats is a module for MagicMirror² that displays player statistics for Habitica.
License: MIT License
Hi @delightedCrow , Matteo from Habitica here.
We've had some issues with an user of this module unknowingly making hundreds of thousands of requests to the content API in a very short period of time.
We're still unsure if this was caused by setting a zero refreshRate
or if there's some loop in the code but I've noticed a few things:
JSON.parse(fetchError)
200
but for example the content api often returns a 304 code if the browser (in this case the Electron app) has already cached the last version of the file and nothing has changed. It would be considered as an error even though it's not. I would suggest to use an external library that's been built specifically for making AJAX requests as it's not easy to make it right (for example jQuery.ajax, axios) or the Fetch API which is now available in every browser https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_FetchscheduleUpdate
from here https://github.com/delightedCrow/MMM-HabiticaStats/blob/master/MMM-HabiticaStats.js#L68 a new interval is created because the previous one is never cleared. So for example after 10 times that scheduleUpdate
has been called you'll have 10 timers that will call the Habitica API at the refresh rate and every time one of them returns correctly a new timer is created increasing exponentially the number of intervalsplease let me know if you can fix these issues and if you have any question :)
Ah, I'd also make sure the refresh rate cannot be set lower than 30s to avoid API calls being made too often as explained here https://habitica.fandom.com/wiki/Guidance_for_Comrades
I get the error Could not connect to Habitica server..
when I load it.
{
module: "MMM-HabiticaStats",
position: "bottom_right",
config: {
userID: "a22efff0-2af3-4bce-8075-e810ea228871",
APIToken: "truncated"
}
},
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.