Image of the glider from the Game of Life by John Conway
Skip to content

Improved Twitter Integration In Bitlbee

I just recently received the Bitlbee 3.0.3 update in Debian Sid, so I thought I would checkout the changelog, and see if there is anything I would get excited about. And indeed, there is. Very much so. Here's the relevant changelog:

Version 3.0.3:
- Fixed Twitter compatibility. (The API call used to get the following list was deprecated.)
- Twitter: Enable the show_ids setting to assign a two-digit short ID to recent tweets to use for retweets and replies (so you can RT/reply to more than just a person's last message).
- Some other Twitter fixes/improvements.
- "otr reconnect" command and some other fixes.
- GnuTLS 2.12 compatibility fix.
- Include "FLOOD=0/9999" in the 005/ISUPPORT line at login to hint the IRC client that rate limiting is not required. (Next step: Get IRC clients to parse it.)
- Other stuff too small to mention.

The second point in the changelog got me pretty excited. To appreciate this, let me give you some background. I'm an user first, Twitter user second. The main reason for this is the integrated XMPP support. I'd much rather drink from the fire hose, then wait for refresh intervals to give me notice dumps. I want the data live, as it happens, in real time. Twitter used to have an XMPP bot, but I guess they couldn't scale it well enough, and ended up pulling it.

Anyway, with, when using the XMPP bot, you get the notice ID at the end of each "dent". Something like this:

toros: !Ubuntu Cloud Portal: Zero to Ensemble in 5 mins [76347696]

I can reply directly to that notice, rather than just replying to the last notice of @toros, by sending "reply #[notice_id]" to the XMPP bot. Then, everything stays in context on the website. Further, keeps a stellar view of contextual threads, as shown in this example, something Twitter could learn from.

However, with previous versions of Bitlbee, all you could do with Twitter was reply to the last notice, rather than a specific notice. This was frustrating, as other clients have been able to keep things in context if implemented correctly. Well, the recent change fixes that. Now, at the beginning of each message, there is a short two-digit number identifying that notice. This number is unique to your running instance of Bitlbee. Further, if a reply or retweet is sent to you, you can see which notice the reply is referring to, which makes it trivial to scroll through your back buffer to find the post you sent, in case you forgot.

At any rate, here's a screenshot of Twitter in action with the new release. Notice the hilights, the notice IDs and the references to other posts. Pretty slick. Here's how you set it up:

  1. Upgrade Bitlbee to 3.0.3, using either your operating system repository, or using the upstream tarball.
  2. Restart Bitlbee after the upgrade is successful.
  3. From the Bitlbee window, disconnect from your Twitter account.
  4. Type "account # set show_ids true" where "#" is the account number for your Twitter connection.
  5. Reconnect to your Twitter account.
  6. Profit!

If you still don't have the notice IDs for each post, you may need to disconnect from Bitlbee entirely in your IRC client, and reconnect.

Now, the only thing left to do is reply to a notice. Use "reply #" to send an automated @-reply to that user, as follows:

< nixternal> [45->44] @AaronToponce if I am not on IRC much, I don't need irssi much. Is bitlbee still being developed? Plus it doesn't suit my workflow
< aaron> reply 45 oh yes, very active development. new release has much improved twitter integration that i really, _really_ dig
< root> You: [47->45] @nixternal oh yes, very active development. new release has much improved twitter integration that i really, _really_ dig

Notice that I just typed "reply 45 oh yes, ..." and "@nixternal" was sent in its place. For me, this is a VERY welcomed feature, and Twitter sucks much less than it did before. But, not all is peaches and cream. After 100 notices scroll by your screen, the counter resets. This could be problematic if you wish to reply to an old Tweet that was several hours ago, because you were away from your computer. Using "reply ## foo bar baz" will result in sending the reply to the most recent ##, rather than the intended one, which may not even be the same user. And, if using the standard @-reply, the reply will go to the most recent post, which means you might be out of context. Still, I welcome the change, as it's a massive improvement in my eyes over what was previous.

While is still my #1 (for other reasons than just the XMPP bot), Twitter has now become a new toy to play with, given these additions. Wilmer, my hat goes off to you my friend, you are turning out a spectacular product, that I absolutely love. Keep up the amazing work!

{ 2 } Comments