In May of this year I wrote about the problems of URLs for a given Twitter user’s profile, or for an individual post or “status” being different, depending the Twitter client in use. I suggested a new protocol for Twitter links. [You might want to read that, before the rest of this post]. I can’t believe I didn’t think of this simpler solution sooner!
The answer (in the short term) is to use a microformat (or a microformat-like “poshsformat”, if you prefer to call it that) for each case. Let’s say we use the classes twitter-user
& twitter-status
.
User-agents (that’s jargon for browsers) could then employ a script (such as those used by GreaseMonkey, or a Firefox extension) to ignore the encoded URL and substitute the equivalent for the user’s preferred Twitter client instead.
For links to user profiles:
<a
href="http://twitter.com/pigsonthewing">
Andy Mabbett
</a>
would become:
<a
class="twitter-user"
href= "http://twitter.com/pigsonthewing">
Andy Mabbett
</a>
and:
<a
href="http://accessibletwitter.com/app/user.php?uid=pigsonthewing">
Andy Mabbett</a>
would become:
<a
class="twitter-user"
href=" http://accessibletwitter.com/app/user.php?uid=pigsonthewing">
Andy Mabbett</a>
Likewise, for individual statuses:
<a
href="twitter.com/pigsonthewing/status/1828036334">
something witty</a>
would become:
<a
class="twitter-status"
href="twitter.com/pigsonthewing/status/1828036334">
something wittyg<a>
and:
<a
href="accessibletwitter.com/app/status.php?1828036334">
something witty<a>
would become:
<a
class="twitter-status"
href="accessibletwitter.com/app/status.php?1828036334">
something witty<a>
and:
<a
href="m.slandr.net/single.php?id=1828036334"
something witty</a>
would become:
<a
class="twitter-status"
href="m.slandr.net/single.php?id=1828036334">
something witty</a>
To simplify matters, the rules for extracting the user ID or the status update could be the same in both cases:
- Parse the value of the href attribute of the element to which the class applies.
- If there is a question mark, use everything after that.
- Otherwise, if there is an equals sign, use everything after that.
- Otherwise, use everything after the last slash.
That would deal with all the examples in my earlier post.
So, if you’re using a user-agent which is aware of this microformat, and find on a page:
<a
class="twitter-user"
href="http://twitter.com/pigsonthewing">
Andy Mabbett<a>
said
<a
class="twitter-status"
href="m.slandr.net/single.php?id=1828036334">
something witty<a>
but your preferred Twitter client is Dabr (one I recommend, BTW!) then your browser would treat (and possibly render) that as:
<a
href="dabr.co.uk/user/pigsonthewing">
Andy Mabbett<a>
said
<a
class="twitter-status"
href="dabr.co.uk/status/1828036334">
something witty<a>
Simples!