Next week's code push
will see the removal of the /misc/interestdata script and the addition of its replacement, a journal-side /data/interests API that outputs in JSON format. (note: This is not part of the XML-RPC API.)
Currently, interest data can be obtained using an URL like http://www.dreamwidth.org/misc/interestdata?user=sophie
, which uses a custom format that has to be parsed specially. For example, here are my first five interests in this custom format:
# Note: Polite data miners cache on their end. Impolite ones get banned.
# <intid> <intcount> <interest ...>
10847 2 #!/usr/bin/perl
867 294 80's music
741 284 80s music
296200 5 a11y
273 118 acceptance
After the code push, this interest data will be obtainable from http://sophie.dreamwidth.org/data/interests
instead (obviously, the username will be different depending on who you want the interest data for), and will be in JSON format. The five interests above will be represented by the equivalent of the following JSON (note that the interests will be in no particular order, which I am simulating by putting the interests in a random order):
"interest": "80's music"
"interest": "80s music"
The actual JSON will not be beautified, and you can see an example of actual parseable output on my Dreamhack at http://sophie.sophie.hack.dreamwidth.net/data/interests
. (Note that my Dreamhack is very empty and all of the interest counts are therefore 1. If you'd like an account on my Dreamhack to test this new API before it goes live, let me know and I'll give you an invite code. If you already have a Dreamhack, you can also pull the newest code and test it yourself.)
Notice that the new JSON also includes basic user metadata - the username, account type and account ID. This should save people the bother of having to obtain this information from elsewhere.
The former /misc/interestdata script had an additional mode of operation where you could give it a single interest name and it would return the count of that interest. For now, this functionality will no longer exist after the next code push. (It was only of very limited use and as far as I know was never widely used.) If this is an issue for you, let me know; I'm thinking of ways to expand on that functionality, and while I can make no promises, I have Ideas.
If you have any questions or comments about this, please feel free to ask in the comments!