A really simple Emacs extension for working with Beeminder.
This is very much in the early stages, so there’s not really any error checking.
It’s designed to integrate with org-mode, and adds support for submitting data directly to Beeminder when a task is closed (see usage for some examples).
Thanks to Sacha Chau for providing the inspiration and initial code for this extension: https://gist.github.com/sachac/9700455
All Emacs installs are a little different, but the basic outline is this:
- Download the source code and put it somewhere Emacs can find it (probably
(require 'beeminder)somewhere in your Emacs startup
- Set your API authorization token and Beeminder username configuration variables using the following:
(setq beeminder-username "username") (setq beeminder-auth-token "token")
You can find your token by logging into Beeminder and then visiting the following URI: https://www.beeminder.com/api/v1/auth_token.json
beeminder.el adds the following shortcuts:
C-c b a - Add data to a Beeminder goal. Prompts for the goal identifier, a
numeric value and an (optional) comment
C-c b g - Fetches all of your goals from Beeminder and inserts them as a list
of org-mode headlines.
C-c b w - Fetches your username from Beeminder. Not really useful, but good
for checking if your authorization token is set and valid
Integrating with org-mode
This extension listens for changes to the state of org-mode todo items, and can
automatically add data to Beeminder once a task is complete. In order to do
this, the task (or its ancestors) must have a ”
beeminder” property that is set
to the name of the goal to add to.
Tasks can also set a ”
value” property, which will be sent when the task is
complete. If no ”
value” property is set, the value will default to 1.
Here’s an example:
* Beeminder.el Tasks :PROPERTIES: :beeminder: beeminder-el :END: ** TODO Write documentation
When “Write documentation” is changed to “DONE”,
beeminder.el will submit a
value of “1” to the ”
Future Improvements / TODO
Add a way to create goals on Beeminder from an org-mode headline
Add some error checking!
Allow tasks to use clocked time as their value
Copyright (C) 2014 Phil Newton
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.