State of Play


So it’s been a fair few months since my last post and I thought I’d try get back into it with an update of what’s going on in the world of IM and Pidgin plugins and stuff.

In case you didn’t know the Christchurch earthquakes have been affecting my life for the past few months. These are pics from a walk around the block around my house. Over 7000 aftershocks and still going!

So what does this mean for the Pidgin plugins?
For the most part, not a great deal. Things have slowed down since I’m spending more time of earthquake cleanup and wedding planning rather than coding, but they’re still plodding along. Unfortunately the power-cuts and brown-outs have caused damage to the server machine that I use to build all my plugins (and which runs this website/blog) and it needs to be rebuilt. Currently it’s running of a live CD of Gentoo since the main partition won’t mount at boot. If you’ve been unable to access the Skype plugin site recently, that’s why.

So what’s the state of the Skype plugin?
As mentioned in previous posts, I had started work on a SkypeKit plugin. Unfortunately, the terms and conditions completely rule out using the SkypeKit SDK in open-source software and so the SkypeKit protocol would need to be clean-room reverse engineered – this has been made harder by the added layers of encryption recently added to the SkypeKit protocol. Instead, I’ve been following closely the skype-open-source efforts, to create a native Skype protocol plugin for Pidgin, however a lot of people have been having difficulty with it as certificates and other protocol things are out of date with the newest Skype versions. For now, I recommend just using an old version of Skype (eg, v3 or v4 on Windows) along with the skype4pidgin plugin, to keep memory usage down.

So what’s the state of the Facebook plugin?
Well at the moment, there’s a lot of people having a lot of trouble with the plugin. Things have changed in the ‘FB HTTP’ protocol and I haven’t had a chance to do anything about it. Unfortunately, Pidgin (well, libpurple mainly) can’t just switch over to using the official FB API’s for login and status messages and stuff since it all relies on having a browser being embedded into the app. It also relies on the browser supporting JavaScript, something which especially can’t be assumed when using Finch from a terminal. There’s some code in source control at the moment that uses the login system from the HTTP chat method to allow the Pidgin app to do the XMPP login and all that jazz without any kind of user interaction, but that probably breaks a lot of FB terms and conditions. 🙂

What about the other plugins?
Yeah, I write one or two other plugins for Pidgin/libpurple 😉 A lot of them are being integrated into the Purple Plugin Pack but I’ll list them out here with a brief status update:

  • OkCupid protocol plugin: Still going strong. I’ve been asked to port the plugin to work in InstantBird which I’ve started investigating.
  • Windows 7 Extensions plugin: Looking good. If you’re using Windows 7 or later and don’t have the plugin, you’re missing out on some useful eye-candy 🙂
  • Automatic translation plugin: Not so hot. The calls to the Bing/Microsoft Translate service are all coming back as null, and the Google Translate API’s are closing up at the end of the year. I’m looking at other (free) online services to use.
  • Steam protocol plugin: There’s now a SteamKit library out which talks the native Steam protocol. Unfortunately it’s written in .NET and would either need a complete rewrite to work in Pidgin, or for a Pidgin plugin to be written using embedded mono. Writing OO code in C is crazy
  • Keyboard LED notification: Not working on this any more since it works well for most people
  • Protocol Icon Override: Has an annoying bug that the icons don’t show up when creating a new account, otherwise fine
  • IRC HTML Formatting: Oddly needs to be re-enabled after Pidgin starts, and it’s currently not matching up HTML colour codes to their closest-match IRC colours. Bold and italics and underline work alright though 🙂
  • Wordfeud protocol plugin: Most of the protocol is reverse-engineered and chatting works fine, it just needs some kind soul to make a GTK interface for the Wordfeud game board
  • Gammu protocol plugin (SMS via your phone): Works fine
  • Typing sounds: Why would you even want to use it? 🙂
  • Omegle protocol plugin: No idea. Let me know if you use this one
  • Ning protocol: Also no idea. Again, let me know if you use it
  • NetNexus protocol: Unfortunately noone hangs out in the NetNexus rooms any more
  • Pidgin Juice: Needs a massive overhaul to take advantage of some new HTML5 goodness.

So yup, that’s an update. While I’m not in the super active development mode I was a year or two ago, I’m still fairly contactable. So if you have any questions, queries, bug reports or feature requests feel free to either contact me, or leave a post in the comments. 🙂

  1. #1 by Miss Jane on 2011-09-15 - 11:30 am

    Hope you have an opportunity to rework/recompile the IRC HTML Formatting plugin At present code symbols appear on either side of the text, but no formatting occurs. Looks as if the ‘\’ is not being entered in [I.E. 02Bold02] somehow. Was wondering why you were offline. Wishing you all the best in the days ahead and may everything work out 02excellent02. Thank you!

    • #2 by Eion on 2011-09-26 - 10:42 am

      Unfortunately I haven’t worked out how to make it display the bold/italics/etc on the machine sending the formatted text, though it definitely comes through to everyone else with the correct format. Thanks for the feedback on the plugin though 🙂

  2. #3 by Rob Schoenaker on 2011-09-23 - 9:22 pm

    Hi. I am trying to figure out how the actual WordFeud password is hashed. I am trying to squeeze this into a C# app but it keeps failing with a “wrong_password”message… Can you please elaborate on the actual steps to take to get the correct SHA1 hash into the JSOn request? TIA!

    • #4 by Eion on 2011-09-26 - 10:41 am

      Have a look at the code here. It’s basically sha1(Password + 'JarJarBinks9')

  3. #5 by Paula on 2012-01-01 - 1:48 am

    Hi, I’m just faffing about, being geeky and stuff. So now I’m trying to figure out the Wordfeud protocol, based on your pidgin-wordfeud source codes. However, I can’t even seem to get past the login step (using REST client to simulate requests). All I get are protocol errors. Do you know if the protocol’s changed since you wrote that code? Or maybe have documentation about the protocol? Google really isn’t my friend here. I suspect I’m just performing the request wrong. I send: {“email”:””,”password”:”hash”} What I get is: {“status”: “error”, “content”: {“message”: “”, “type”: “protocol”}} :S

  4. #6 by Paula on 2012-01-01 - 2:07 am

    Never mind, I was calling /id/ with “email”, lol, that’s wrong. But I did find out you’re sending “wordfeudid” to /id/, while it has to be just “id”. How did you reverse engineer the protocol btw? I don’t have a rooted phone, so I’m going to try with the emulator myself.

    • #7 by Eion on 2012-01-16 - 8:05 am

      Glad you’re having fun with the ‘protocol’ Paula 🙂 I just worked out what was going on by watching the traffic being sent to/from the server, mostly through watching traffic over Wireshark, but also tried using a couple of proxies and other HTTP sniffing tools that I use for some of the other HTTP-based libpurple ‘protocols’

  5. #8 by PeterW on 2012-02-17 - 7:21 pm

    I use Pidgin almost exclusively for IRC, and I’ve been vexed by the lack of formatting for years. Spent a long time hunting for a plugin and found your Google Code project. If I understand it correctly, the only reason I was able to see the source was because that was what Google decided to show me first. I’d love to be able to use this, but I know nothing practical about this sort of programming. It’s my guess that if I were to try to make it work from the source I’d have to compile it, but I’m not a developer so I have no compiler. It appears from the way it’s presented that it’s barely even alpha, but I was wondering if there were a more direct and legitimate way to use this than to sneak in the back, take the code, and get a compiler for only one task.

    • #9 by Eion Robb on 2012-03-08 - 3:47 pm

      “barely even alpha” eh? 🙂 What OS are you using? I should be able to compile a version for you when I’m back from my honeymoon. Apologies for not having any dll’s/so’s in the downloads list to be able to use.

  6. #10 by marcjw on 2012-03-04 - 7:04 am

    I ran across your media-emblem plugin but noticed it’s only 64bit for Linux. Any chance you could post a 32bit version? Seems to me this capability should be built in to Pidgin by default. Oh well…

    • #11 by Eion Robb on 2012-03-08 - 3:46 pm

      It was originally part of Pidgin when voice/video was being developed, but some didn’t like it and it just didn’t make the final cut. When I’m back from my honeymoon I’ll look at compiling a 32bit version for you, or you may have luck asking in #pidgin for someone to help you compile it/compile it for you 🙂

  7. #12 by marcjw on 2012-03-09 - 1:17 am

    I’m pretty sure we’ll all survive until you settle back in after the honeymoon. Congrats, good luck, and have fun!

  8. #13 by PeterW on 2012-03-15 - 6:53 pm

    Sorry, I can’t appraise the quality of the code, just the metadata Google Code has about it, and the way it’s being presented. I’m using Windows 7 (current release x86 Pidgin). Thanks for the response and compile.

Comments are closed.