Mercurial > pidgin
diff libpurple/protocols/mxit/mxit.c @ 31299:8cddae054791
Only MXit users have profiles, so display a better message when "Get Info" is selected for non-users.
Pidgin unfortunately still pops up the "Buddy Information" notification window.
author | andrew.victor@mxit.com |
---|---|
date | Fri, 04 Feb 2011 09:51:05 +0000 |
parents | 02b510d2d014 |
children | 7c33eaed54e5 |
line wrap: on
line diff
--- a/libpurple/protocols/mxit/mxit.c Fri Feb 04 09:13:46 2011 +0000 +++ b/libpurple/protocols/mxit/mxit.c Fri Feb 04 09:51:05 2011 +0000 @@ -560,6 +560,8 @@ */ static void mxit_get_info( PurpleConnection *gc, const char *who ) { + PurpleBuddy* buddy; + struct contact* contact; struct MXitSession* session = (struct MXitSession*) gc->proto_data; const char* profilelist[] = { CP_PROFILE_BIRTHDATE, CP_PROFILE_GENDER, CP_PROFILE_FULLNAME, CP_PROFILE_FIRSTNAME, CP_PROFILE_LASTNAME, CP_PROFILE_REGCOUNTRY, CP_PROFILE_LASTSEEN, @@ -567,6 +569,22 @@ purple_debug_info( MXIT_PLUGIN_ID, "mxit_get_info: '%s'\n", who ); + /* find the buddy information for this contact (reference: "libpurple/blist.h") */ + buddy = purple_find_buddy( session->acc, who ); + if ( !buddy ) { + purple_debug_warning( MXIT_PLUGIN_ID, "mxit_get_info: unable to find the buddy '%s'\n", who ); + return; + } + + contact = purple_buddy_get_protocol_data( buddy ); + if ( !contact ) + return; + + /* only MXit users have profiles */ + if ( contact->type != MXIT_TYPE_MXIT ) { + mxit_popup( PURPLE_NOTIFY_MSG_WARNING, _( "No profile available" ), _( "This contact does not have a profile." ) ); + return; + } /* send profile request */ mxit_send_extprofile_request( session, who, ARRAY_SIZE( profilelist ), profilelist );