Presence/aliases for transient buddies

David Woodhouse dwmw2 at infradead.org
Thu Jun 29 03:54:57 EDT 2017


As I get further through implementing my new prpl, I come across more
things I don't know how to do on the Pidgin/libpurple side.

Today's conundrum... transient buddies.

Pidgin creates these when I get an incoming IM from an individual not
in my list. I *could* provide presence status for them, and Pidgin
would display it at the top of the corresponding IM tab... except I
never get to know about the buddy until my ->buddy_free() is called for
it. (I did at least stop crashing when buddy->proto_data is NULL).

Pidgin also creates these for users in chat rooms — and I could provide
each user's alias, if I had any way to see the PurpleBuddy that got
created. But again, I don't see it until it goes away and my
->buddy_free() is called for an object I've never seen before.

Is there a way to deal with this? I was thinking of a new prpl method
invoked from purple_buddy_new(), but I think it would still create
*multiple* buddies to represent the same individual, when they are in
multiple chat rooms and an IM tab.

So maybe the answer is for these transient buddies to be in the main
blist but with a 'HIDDEN' flag so they aren't shown in the UI buddy
list? Or be part of a special hidden group?

Or am I missing something that works already?
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/x-pkcs7-signature
Size: 4938 bytes
Desc: not available
URL: <https://pidgin.im/pipermail/devel/attachments/20170629/0836e3e8/attachment.bin>


More information about the Devel mailing list