Archive for March, 2009

Birds of a feather

Sunday, March 8th, 2009

For well over a year now, Twitter has been an often-requested addition to our repertoire of services. As a user of the service I absolutely understand. The current base of Twitter clients often leave something to be desired, behave in a weird way, or just add an additional application you need to keep open.

Fear not! Using Matt Gemmell‘s MGTwitterEngine, a library used to communicate with the Twitter API, I’ve managed to make what I consider to be a very good Twitter client into Adium. Your friends (people you follow) are displayed in a group on the Contact List: adding or removing will follow or unfollow them, and chatting with them will send (or receive) direct messages. Note that you can only send a direct message to someone who follows you, so it might be a one-way conversation.


A group chat named “Timeline (username)” (you can rename it like I have above) will appear alongside your Twitter contacts. When new tweets arrive, this group chat will open; you can close it to help keep your place in the tweets, or leave it open and watch them arrive. Of course, the check interval is customizable (between never checking and checking every hour), and you can force an update through the chat’s context menu. There’s also an option to automatically update tweets when you send one.

When an incoming tweet is a reply to one of yours, the message style you are using will highlight the message for you. I’m going to be modifying all of the message styles included in Adium to support this (it’s been around for group chats since 1.3 was released, but not many have added it). You can also set an Event to fire when a reply comes in: display a growl notification, play a sound, whatever floats your boat!

You can get information on any of your Twitter contacts, and their biographical information (with links to friends, followers, and updates) and their latest 20 statuses will be loaded.


Next to every Tweet is a set of action links. “original” will go to the post which the tweet is replying to, “link” will go to the permanent link for the status, and the “reply” link will set up a reply like below. The “@” character next to the character count indicates that the Tweet you are sending is replying to a specific tweet.


If you come across a tweet online, you can open the “Reply to a Tweet” window, which lets you either enter the username and status ID, or paste the URL to fill in the information. This makes replying to tweets other people reference a great deal easier! For example, if I didn’t click the “reply” link for Ryan’s status above, I could paste the URL into the window and see something like this:


My goal has been to integrate the service seamlessly into the Adium experience, and I think I’m meeting or exceeding my own expectations. However, I’m definitely open for suggestions which could go in before this is released. There’s still a few bugs to iron out, a few things to finish up, and a few new ideas which are bound to pop into my head. We also need to beat Twitter into submission about giving us a service identifier.

I’ve got a fun few ideas for ways Adium could save you time and effort, like automatically uploading images you insert into a message (like you would a direct IM on AIM) to Twitpic. This will largely depend on how much time and effort are available before Adum 1.4 is released (hopefully in the next few months we’ll see a beta!) and how many insane stints of programming I can slip in between now and then.