Last year, I added some elementary spam detection and reporting to Dr. Twoot, my homemade Twitter client. It worked well enough at the time, but Twitter spammers have changed the format of their tweets and the detection algorithm just isn’t catching the bulk of the spam I get anymore. So I’ve updated Dr. Twoot by eliminating automatic detection and adding a button that reports and blocks spammers with a single click. This makes reporting spammers much easier than it is from the web site or the official Twitter client, and it doesn’t clutter the user interface much, either.

It’s usually pretty easy to tell when an @reply is spam. It’s from someone you don’t know, it has a link, and the accompanying text, if any, is a little “off”—it doesn’t relate to anything you’ve been tweeting. The sender typically has few followers and few tweets because Twitter is pretty good about killing spam accounts after they’ve been reported.1 I don’t have any hard and fast rules about any of these indicators, but like Potter Stewart and pornography, I know it when I see it.

Since information about the sender is useful, I added a title attribute to the links associated with a sender’s name and image. The value is a list of the sender’s follower, friend, and tweet counts. Hovering over the name or image causes a little popup with that information to appear.

HTML purists may blanch and call this a misuse of the title attribute. I don’t disagree, but it’s a very helpful misuse.

Of course, Stephen Fry is not someone I want to report for spam. Here’s a tweet from an account I set up specifically to spam myself for testing purposes.

Even if I hadn’t set up this account myself, the egg avatar and the low follower and tweet counts would be a giveaway.

The main spam-fighting addition is the button. Clicking it reports the user for spam, blocks his tweets from appearing in my mentions stream, and then crosses out the tweet and marks it as reported.

The button isn’t obtrusive and makes reporting spammers much easier than in any other Twitter client I’ve seen.2 If other clients made spam reporting this easy, maybe more reporting would be done. Of course, with great power comes…great responsibility. Other clients may keep their spam reporting functions a couple of steps removed from the timeline because their developers don’t want to foster malicious and inadvertent reporting.

Since Dr. Twoot is written for my own use, and I consider myself fairly responsible, I’ve given it the power to report and block directly from the timeline. I’m now the fastest Twitter spam reporter in the west.

Update 2/22/12
A couple of new improvements:

The minor improvement is that the popup now shows the user’s Twitter start date. The major improvement is that the buttons now appear only in the tweet the cursor is hovering over. Makes the window much less cluttered.

1. Not so good about catching obvious spammers on its own, but that’s a complaint for another day

2. Admittedly, that’s a limited set. In 2010, I spent quite a bit of time trying out different clients, but when I finally got OAuth working in Dr. Twoot late that year, I settled down and stopped playing the field.