libpurple backend can remove buddies

This commit is contained in:
HanzZ 2011-06-10 13:03:19 +02:00
parent ed6b548f48
commit af5c703d0f
2 changed files with 14 additions and 0 deletions

View file

@ -126,6 +126,17 @@ class SpectrumNetworkPlugin : public NetworkPlugin {
}
}
void handleBuddyRemovedRequest(const std::string &user, const std::string &buddyName, const std::string &groups) {
PurpleAccount *account = m_sessions[user];
if (account) {
PurpleBuddy *buddy = purple_find_buddy(account, buddyName.c_str());
if (buddy) {
purple_account_remove_buddy(account, buddy, purple_buddy_get_group(buddy));
purple_blist_remove_buddy(buddy);
}
}
}
void handleBuddyUpdatedRequest(const std::string &user, const std::string &buddyName, const std::string &alias, const std::string &groups) {
PurpleAccount *account = m_sessions[user];
if (account) {

View file

@ -333,6 +333,9 @@ void NetworkPlugin::handleDataRead(const Swift::SafeByteArray &data) {
case pbnetwork::WrapperMessage_Type_TYPE_BUDDY_CHANGED:
handleBuddyChangedPayload(wrapper.payload());
break;
case pbnetwork::WrapperMessage_Type_TYPE_BUDDY_REMOVED:
handleBuddyRemovedPayload(wrapper.payload());
break;
default:
return;
}