Gtalk Logo

Google Invisibility Tracker plugin for libpurple (Pidgin)




Description

This plugin informs you when a buddy of yours goes invisible. This is possible only if your buddy uses Gmail chat or Google Talk Lab Edition or iGoogle chat.

How? Why?

The reason is that this 3 clients use to send a vcard node when they go offline while when going invisible they send a plain unavailable presence. This means that if we analyze all unavailable presences sent by online buddies we can discover if they're going offline or invisible. Obviously you have to be online (or at least invisible) to catch the presence.

Note that there's a odd case: if shared status is invisible we cannot state if the chat is turned on while if shares status is not invisible we're sure that an unavailable presence (with the vcard) means that the buddy has the chat turned off (in that client/resource obviously!).

There is an easy way to cheat this plugin: just use a XMPP client without Google Shared Status (i.e. Pidgin, Psi, Kopete) and set the resource to "gmail" or "iGoogle" or "TalkGadget" and after login go offline. The client will send a presence unavailable without vcard so the plugin will catch you as Invisible.


NOTE:

*** Popup, Conversations Message and System Log are disabled by default, this means you have to enable them in configurations! ***


Download

Compiled on libpurple 2.7.1 (this means you have to use this version or newer!).

ARCH File Last Update Version
Win32 google-invisibility-tracker.dll* 29/10/2010 0.2.1
Linux i386 google-invisibility-tracker.so 29/10/2010 0.2.1
Linux amd64 (thanks to dbenux!) google-invisibility-tracker.so 22/07/2010 0.1.1
Source google-invisibility-tracker.c 29/10/2010 0.2.1

* Tested on Windows XP and Windows 7 (not always true :))


Changelog

Date Version Note
29/10/2010 0.2.1 Added a timestamp and some other info to popup alert (thanks to Bharath Rajaram)
28/10/2010 0.2 I've fixed a bug about status recheck. That probably was the major cause of unreliability
14/10/2010 0.1.2 Added a recheck of buddy status after a timeout (default 10s) to avoid/reduce false positives due to network errors
22/07/2010 0.1.1 Popup are now optionals. Added alerts in conversations and system log
16/07/2010 0.1 First



Contacts

For bugs reports, hints, ... email me at federico.zanco ( at ) gmail.com      ...and maybe one day I'll answer...


README:

How to compile (Debian):

1) Install pidgin-dev packet (and obviously gcc...):
    # apt-get install pidgin-dev

2) Compile the the plugin (you've to be in the plugin source file dir):
    $ gcc -shared -fPIC  -D_REENTRANT -pthread -I/usr/include/pidgin -I/usr/include/gtk-2.0 -I/usr/include/libpurple -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/directfb -I/usr/include/libpng12 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include  -pthread -lgtk-x11-2.0 -lpurple -lgdk-x11-2.0 -latk-1.0 -lpangoft2-1.0 -lgdk_pixbuf-2.0 -lm -lpangocairo-1.0 -lcairo -lgio-2.0 -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lglib-2.0 -o google-invisibility-tracker.so google-invisibility-tracker.c -Wall

3) Copy google-invisibility-tracker.so in your purple home dir:
    (if ~/.purple/plugins/ does not exist:
    $ mkdir ~/.purple/plugins/ )
    $ cp google-invisibility-tracker.so ~/.purple/plugins/

4) Restart Pidgin and in Tools/Plugins you should see Google Invisibility Tracker Plugin

How to use:

1) Compile or Download the plugin for your arch (see above).

2)

Linux: Copy google-invisibility-tracker.so in your purple home dir:
    (if ~/.purple/plugins/ does not exist:
    $ mkdir ~/.purple/plugins/ )   
    $ cp google-invisibility-tracker.so ~/.purple/plugins/

Windows: Move google-invisibility-tracker.dll in Pidgin plugins dir (I suppose you can create C:\Documents and Settings\<user>\Applications data\.purple\plugins and move the plugin there too but I'm not sure). In Windows it should be somtething like C:\Programmi\Pidgin\plugins\

3) Restart Pidgin and in Tools/Plugins you should see Google Invisibility Tracker Plugin

Once enabled you'll be notified every time a buddy of yours goes invisible. Popup, Conversations Message and System Log are disabled by default, this means you have to enable them in configurations.


License:

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301, USA.