Get your Github news feed in Tweetie

A few weeks ago, I started hacking on twitter-server, an API wrapper for the Twitter API. It’s a Sinatra extension, where I toyed with the idea of adding top level API methods like #twitter_statuses_home_timeline to a Sinatra application. I’m not altogether happy with the way the XML is rendered, but it works with Tweetie.

As a good real-world example, I wrote a Github proxy for my News Feed:

Tweetie 2 for the iPhone and Spaz are the only Twitter clients I know of that let you customize the Twitter API urls that make this possible. I mostly use Tweetie, so right now that’s all that works currently. It’s all OSS on github, so I’m hoping I get some volunteers to help out :)

There is one major caveat: The news feed requires your Github API token. I’m going to ask that you set up your own github proxy if you want to access your news feed. I don’t want to be responsible for anything that might happen. Luckily, Heroku has your back.

Now on Tweetie 2, setup a new account. Enter your github username and your github token. Then, click the gear and set the API url to your heroku URL: http://USER-gh-twitter.heroku.com. If you don’t want to setup your own github proxy, you can just use mine: http://gh-twitter.heroku.com. Please don’t enter your token though, it caches the feed info. You’ll just see results for your public github feed.

iphone screenie

There are a few bugs that I want to mention:

  • Tweetie seems to have avatar issues if you have multiple accounts with the same name. For this reason, you can create your accounts with a gh_ prefix, and it’ll get stripped. I have my proxy username in Tweetie set to gh_technoweenie.
  • Abnormally large feeds may not be cached properly. I used this project as a pilot for Friendly ORM, and ran into a number of issues on Postgres. There are a few hacks for now, but I hope to work with James on resolving the issues between psql and Friendly.

Some major TODOS:

UPDATE The latest update requires you to reset the db. It’s simple to do on Heroku.