libpurple backend can remove buddies
This commit is contained in:
parent
ed6b548f48
commit
af5c703d0f
2 changed files with 14 additions and 0 deletions
|
@ -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) {
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue