Twitter Digest #
There are quite a few people on Twitter that I'd like to follow but can't, since they update way too often. For example, I'd like to know how Craig Hockenberry's MobileTwitterrific work is going. John Gruber often posts advance tidbits from Daring Fireball. However, since Twitter doesn't seem to allow different notification levels for contacts, I'd rather not get overwhelmed with their updates on a regular basis.
Twitter does have an API though, and a pretty complete one at that. Additionally, python-twitter makes it pretty easy to code against it. The result is that it was pretty easy to make Twitter Digest. You can give it a bunch of usernames and it will update a page once a day with all of those people's tweets. Feeds can also be generated, so that you can subscribe to your digest in your favorite feed reader. To give an example, here's my digest (and its feed.)
Since python-twitter already has the the concept of caching API replies, this was especially easy to develop. Simply by juggling with cache timeout values, API replies are kept around for up to a day, thus I don't have to persist anything in my code. All digests are refreshed at GMT day boundaries because supporting timezones seemed like too much work.
Digests can be thematic too. Here's one for the Twitter team. I'm sure there are other uses too. I'm pretty happy with how this turned out, and the only thing missing is better reply support (if a message is in reply to another, then (optionally) show that message inline too). Right now the API is missing support for this (even though the regular UI surfaces this information), but I'm sure something can be hacked together.
Update on 9/3/2007: Adding support for "in reply to" messages turned out to be easy enough (look for the first message from the other username that's before the one that's replying, but only up to an hour earlier, in case it's not actually connected).
1 Comment
They all come back with an error message claiming that this is not a valid feed.
Only Google Reader seems to accept the feed link as is.
I'm wondering what I'm doing wrong?
Post a Comment