Extra integrations for Beeminder (it currently has integrations for Pinboard, Memrise, Last.fm, Codecademy, Leetcode, Codewars, Project Euler, and the Beeminder Forum), and
A way to quickly create integrations for Beeminder without having to write boilerplate code for OAuth, data persistence, etc.
For a more detailed explanation of how this works and how to write a new integration using Akrasia, see my blog post on the project which covers more of the technical aspects.
Also, check out the source code for the Beeminder Forum: Posts Count integration for a quick example of what this looks like (the whole integration is just the integration.json file and the server.js file, which only has a single endpoint handler) (remixing/forking an existing integration, you could write a new integration in just ~30 lines of code, including the JSON config).
Any feedback, suggestions, or questions/comments would be welcome!
Edit: updated blog post with more formal specification of the protocol/requests between Akrasia and the integration fetch endpoint
1: Not the most creative name, I know :p
2: A disclaimer: all the functionality seems pretty stable now, but the project is still under fairly active development, so a few bugs may pop up. If enough people start using it, I'll begin following best practices more (e.g. separating staging/testing from prod more, etc.).
Thanks for the feedback and for trying out akr.asia! It looks like the datapoints on the goal are showing 8.0 when you have āTotal Completed Kata: 8ā, which is correct (it is intended to return the total number every time, to be used with an Odometer goal).
It looks like youāre using a Do More goal though. Try using an Odometer goal instead and the graph should make more sense! I donāt think thereās a way to change the goal type on an existing goal through the website, but you could try emailing support@beeminder.com and asking them to switch it for you. The integration also mentions you should use this goal type when you set it up through akr.asia, but the hint doesnāt really stand out on the page.
Thanks for the quick answer! I emailed support about it. May I still suggest that you have some kind issue tracker (at github for example). It would make life easier for you tooā¦
P.S.: Thanks for your work on akr.asia. Your framework actually made me discover codewars and memrise, which I both use now!
Good idea; Iāve been meaning to make a place for issue submissions. Iāll add a link to this forum thread for support, for now! I would use GitHub, but then people without GitHub accounts wouldnāt be able to open issues. Anyone with a Beeminder account should be able to post on the forum
The pinboard integration seems to have stopped working for me - and it seems like the certificate ran out on the site. Iām not sure if these two things are related but just wanted to point both out.
More generally, Thanks for akr.asia, itās great!
Should be fixed now. Integrations should be working again and akr.asia
should soon redirect to the new manage site. Sorry this took so long to get
sorted!
@dreev Ah, that worked. Edited the original post and updated the links!
@matti Huh, I havenāt changed anything, but itās possible something changed on their end that broke something. Just scanning the integration code though, it seems like it should still be working.
If you want to mess with the code there a bit, you could try manually hitting the Glitch endpoint with HTTP requests and seeing if the console output/response is working as expected.
Iām not really actively maintaining the integrations anymore. If you do change anything though, feel free to send me a different endpoint for the integration and I can point it to that instead.
var solvedProblemsCount = parseInt(elem.text().replace(',', ''));
The problem is that str.replace will only replace the first occurence if the first argument is a string. Meaning when the number is something like this ā1,010,632ā it becomes this: ā1010,632ā. parseInt intreprets this as parseInt(1010, 632), the second argument (radix) being not within the limit and therefore ignored. Thatās how we end up at ca. 1000 points in beeminder instead of a million points.
Another thing: As said by @hmowilliams in her thread about FreeCodeCamp: FCC and also KhanAcademy might lend themselves perfectly for simple integrations just like the memrise one is. Can we get that going @csu? I might be able to contribute if you tell me how.