Common Lisp OAuth/Twitter Client

Background

My wife wanted to be able to create some Twitter lists based on various search terms, and do some other stuff that wasn't covered by the standard Twitter clients available.  I could have picked up some freeware Java libraries and written a small Java app to do this, but I thought it would be a good candidate for a small Common Lisp (LispWorks) project.  I looked for some off-the-shelf freeware OAuth libraries, but got bored trying to get them to compile because of the cross-library dependencies, so I decided to write my own.  The code is neither well commented, nor optimized, but it does at least work. I've pushed the code up here in case it is of any use to anyone else.  It comes with no warranties, etc, etc, and I put no restrictions on usage - feel free to use, extend, plagiarize,or whatever.  Attribution, whilst it would be nice, is not required.

I'm happy to try answer questions about the code if you hit problems trying to use it - email me at Guy @ Footring.net

Files

defsys.lisp Simple LispWorks defsystem handling compile dependencies

packages.lisp Defines all the packages used

json.lisp Simple JSON parser, returning JSON objects as Sexprs.

http-utils.lisp Base64 encode/decode, url encode/decode, etc

hmac-sha1.lisp HMAC SHA1 encryption/signing algorithm.  Not suitable for heavy duty work, but quick enough for OAuth clients...

oauth.lisp The OAuth client used by Twitter, Google, etc (OAuth 1.0?)

twitter.lisp Twitter client.   Only a few of the API calls are implemented, but it is trivial to add any others of interest.

twapper.lisp TwapperKeeper client (http://twapperkeeper.com)

GDFT.zip The whole thing in a zip file.