How Pidgin retrieves status messages on friends/buddies from libpurple

Travis Taylor trdtaylor at gmail.com
Fri Aug 5 00:22:41 EDT 2011


Hello everyone. I am currently trying to retrieve a status of another user
on a SIMPLE network. I can send IMs to them fine through lib purple but I
cannot retrieve their status.
Here is the specific block of code where I am trying to access the status of
the user

PurpleAccount m_account = (my account details)

string username = username of the user I want to check the status of

string status = empty string used for retrieval

void GetStatus(string& username, string& status)

{

PurpleBuddy* newbody(purple_buddy_new(m_account, username.c_str(), NULL));
PurplePresence *p = purple_buddy_get_presence(newbody);
PurpleStatus *active = purple_presence_get_active_status(p);
PurpleStatusType *statusType = purple_status_get_type(active);
PurpleStatusPrimitive prim = purple_status_type_get_primitive(statusType);

}

I then iterate through with a switch statement for each of the possible
primative types, and print their reflected value.

switch(prim)

case(prim equals each of the possible purple status types)

{

status = "Whatever that status type is contextually"

}

m_account is the account from where I want the buddy from, in this case it's
my SIMPLE account login. username.c_str() is the username of the person
who's status I want. I've looked through both pidgins and purples source
code and cannot figure out what I am doing wrong in accessing statuses of
friends. They are always reported back as "offline", indicating I am calling
the right functions but possibly the wrong syntax. If anyone knows about how
pidgin calls for status information from friends/buddies and knows what I am
doing wrong, that info would be much appreciated. For reference, this block
of code always returns a status as offline.  After diving into the code, it
seems like I am properly creating a buddy to retrieve a status, but never
refreshing the buddies status.


Just to be clear, I do have a proper connection, I can send IMs to people
over a SIMPLE network, I can receive IMs.  I cannot retrieve the status of a
user. Any suggestions?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://pidgin.im/pipermail/devel/attachments/20110805/2ac1f948/attachment-0002.html>


More information about the Devel mailing list