Pidgin status history

I’ve switched from PSI to Pidgin. Mostly because there were no Gentoo extras for 0.11, still no scripting support and no plugin support at all. Nevertheless vanilla Pidgin had the same issue as vanilla PSI - no status logging. Also I couldn’t find any plugin which would do the work. Maybe I’ve missed something… but why don’t people want to be able to see someone statuses from the past week? Why is it so hard to make such a simple functionality?

General installation instructions:
1. See the warning at the bottom of this page.
2a. Under Linux (or other unix-like systems running pidgin) to compile the plugin you need Pidgin/libpurple “header files”. Usually they might be installed with a package manager (search for names like pidgin-dev, purple-dev).
2b. If that fails, you can grab Pidgin source and install it from sources.
3. Unpack and type ‘make’ inside.
3a. Should compilation fail, and you have headers - fix it. ;)
4. After the compilation simply copy logstatus.so file into ~/.purple/plugins/ and enable “Buddy Status History” in Pidgin plugin list.
5. If you’ve used 0.6 version before consider using Python clean-up script to cleanup small logs a bit.

0.8v Release notes:
- Fixed memory leak

0.7v Release notes:
- Fixes the problem the 0.6 had. With no open conversation status changes are logged now into previously created log file. If no such file exists - one is created.
- Windows .dll was compiled by fei_ferry, who also reported that it’s working fine! Also he proposed a solution to the day-change-date-problem: “(…)it can be solved with “Message Timestamp Format” plugins, set the timestamp to always write date on logs, that’s fine for me.”

Possible problems:
Might have problem with date during day changes. Might not work with non-standard loggers (text logger and html logger should be fine). Trick is that is reopens last log so the loggers will write to it. Some other logger might want to do this in a different manner which will surely fail.

Source code:

pidgin-logstatus-0.8v.tar.bz2.
pidgin-logstatus-0.7v.tar.bz2.
Signature for source tarball (logstatus genuine advantage;d).
repository at github

Windows binary by fei_ferry:
pidgin-logstatus-0.7.dll.




0.6v Release notes:
- Internal logger was not created with such ideas in mind… therefore if there’s no buddy conversation open each status change is logged as a separate conversation (into a separate, new file). Still I guess it’s better than nothing - I can use py scripts to merge such files into one.

Files:
pidgin-logstatus-0.6.tar.bz2
Windows binary made by BigBrownChunx for 0.6v: pidgin-logstatus-0.6.dll.

To cleanup log file mess made by logstatus an example Python script which might be used (grab it here). USE AT YOUR OWN RESPONSIBILITY. It’s dumb simple and doesn’t parse the data in files at all (it only moves it). By default (see the code) it won’t remove anything just rename to *.removed (Then script like this will totally remove those files: find . -iname “*.removed” -type f -exec rm {} \;). I used this script recently after a long time of using the plugin; it removed 166562 small files leaving 17936 merged log files which shrinked size of directory from 751MB (ext4) to 129MB.

Various other. Try if anything else fails:
safety link to the pidgin-logstatus-0.7v.tar.bz2
safety link to the pidgin-logstatus-0.6.tar.bz2
safety link to the dll

Modified version which won’t log statuses if the conversation is not open (not tested, but modification was simple; required compilation before use.)
pidgin-logstatus-0.6Xv.tar.bz2

THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. This is especially important if you decide to use compiled versions. I haven’t compiled it myself and I simply trust their authors that they haven’t put anything weird inside.

25 Responses to “Pidgin status history”

  1. Jericho Mathis Says:

    How do you install this plugin into Pidgin? Pidgin’s plugins come in a .DLL format.

  2. Jericho Mathis Says:

    Thank you!

  3. Anon Says:

    Thank you so much.

    This really needs to be incorporated into Pidgin.

  4. Onyx Says:

    How do you install this dll?

  5. Darryl Levi Says:

    Hi, can you post up a precompiled .so file pls? my OS does not have a compiler….

  6. bla Says:

    Try this: http://bla.thera.be/uploads/logstatus-0.6-amd64.so
    or this: http://bla.thera.be/uploads/logstatus-0.6-x86.so depending on your architecture. CAN’T tell if it will work at all. ;) It links to the libraries I have compiled and optimized for my platform so I rather doubt… but you can try it.

  7. Darryl Levi Says:

    Hey i’m posting this here in case other people have the same problem i did.

    anyway, lol, you won’t believe this, but what I ended up doing was installing Wine and installing the win32 version of pidgin! Then I just used the dll you provided. SO easy! No compiling/building/terminal-work needed :D

    Thanks Tomazs!

  8. Emi Says:

    That’s exactly what i was looking for :) Thanks a lot!

  9. Kevdog Says:

    Hmm, I compiled with pidgin 2.5.4. Got the logstatus.so. Copied to /usr/local/lib/pidgin (since I compiled pidgin) and the plugin is not showing on the plugin list when I start pidgin. What is the name of the plugin as displayed on the list?

  10. bla Says:

    Buddy Status history. (PS. You can keep it in ~/.purple/plugins/logstatus.so)

  11. Kevdog Says:

    Ok, I did have plugin available. You might want to add the name of the plugin presented within the plugin list to your instructions. I kept looking for a plugin called logstatus which of course I couldn’t find.

  12. Fahrstuhl Says:

    Woo, thank you very much!

  13. ionel Says:

    Kudos! Good stuff.

  14. Jarshvor Says:

    great plugin,
    im finding the zillion small (1KB) files a bit annoying however since they waste a significant amount of space,

    is there any way i can use the script intended to fix this under windows? if so, do I need a python interpreter or such?

  15. bla Says:

    Copying there and back again can significantly descrease size they take, also when you have an python interpreter you can use this script. I guess it should work without modyfications; it just has to be given correct directory.

  16. Jarshvor Says:

    I’ve Installed Python 2.6, and im trying to access the script through the windows command prompt. I’ve moved the script to my account folder inside the .purple\logs folder, and i change to that directory inside the command line and attempt the ./clean-up (and clean-up, .\clean-up, /clean-up etc) command, however i still get that its not a recognized command.

    :/

  17. bla Says:

    Hey, I really don’t know how this windows-thing is working. But you can try calling [path to python executable] [script] - so passing the script as an argument to the intepreter. That’s what #!/usr/bin/python is supposed to do on unix systems.

  18. KovuTheHusky Says:

    An option for not logging status changes when a conversion with that person is not open would be nice. I’m not interested in people I’m not talking to. If that is added at some point, send me a mail.

    Thanks,
    KovuTheHusky

  19. Zhemarcus Says:

    Hello,

    First, thank you for this plugin, then i am under windows, when conact changes his status, it’s not logged when status revert back.

    Would you fix this please, if possible.

    Thanks.

  20. Matt Says:

    Wonderful. Thank you.

    In case this is useful to anyone, I compiled this for Pidgin on Debian Lenny from the lenny-backports repository. Prior to running make, make sure to “apt-get install -t lenny-backports pidgin-dev libpurple-dev”. If you install the regular lenny versions of these packages instead of the backports, it will say something like “/usr/bin/ld: cannot find -lpurple”.

  21. Voldemort Says:

    Awesome work man!!!

  22. G-Lo Says:

    Any update planned?

  23. bla Says:

    @G-Lo:
    All the time. But I’m kind of discouraged by the fact that pidgin needs major rewrite of it’s logging mechanisms to make this work nicely.

  24. bla Says:

    Update: Ok, I’ve got idea…

  25. bla Says:

    Ha. Updated. :P

Leave a Reply