2
0
mirror of https://github.com/ars3niy/tdlib-purple synced 2025-09-03 23:45:08 +00:00

Remove chats from contact list when we are no longer group member

This commit is contained in:
Arseniy Lartsev
2020-05-22 13:46:37 +02:00
parent 2b74471a42
commit d455c2ddc9
4 changed files with 83 additions and 4 deletions

View File

@@ -228,7 +228,7 @@ void updatePrivateChat(TdAccountData &account, const td::td_api::chat &chat, con
}
}
static void updateGroupChat(PurpleAccount *account, const td::td_api::chat &chat,
static void updateGroupChat(PurpleAccount *purpleAccount, const td::td_api::chat &chat,
const td::td_api::object_ptr<td::td_api::ChatMemberStatus> &groupStatus,
const char *groupType, int32_t groupId)
{
@@ -239,11 +239,11 @@ static void updateGroupChat(PurpleAccount *account, const td::td_api::chat &chat
}
std::string chatName = getChatName(chat);
PurpleChat *purpleChat = purple_blist_find_chat(account, chatName.c_str());
PurpleChat *purpleChat = purple_blist_find_chat(purpleAccount, chatName.c_str());
if (!purpleChat) {
purple_debug_misc(config::pluginId, "Adding new chat for %s %d (%s)\n",
groupType, groupId, chat.title_.c_str());
purpleChat = purple_chat_new(account, chat.title_.c_str(), getChatComponents(chat));
purpleChat = purple_chat_new(purpleAccount, chat.title_.c_str(), getChatComponents(chat));
purple_blist_add_chat(purpleChat, NULL, NULL);
} else {
const char *oldName = purple_chat_get_name(purpleChat);
@@ -280,6 +280,15 @@ void updateSupergroupChat(TdAccountData &account, int32_t groupId)
updateGroupChat(account.purpleAccount, *chat, group->status_, "supergroup", groupId);
}
void removeGroupChat(PurpleAccount *purpleAccount, const td::td_api::chat &chat)
{
std::string chatName = getChatName(chat);
PurpleChat *purpleChat = purple_blist_find_chat(purpleAccount, chatName.c_str());
if (purpleChat)
purple_blist_remove_chat(purpleChat);
}
static void showMessageTextIm(TdAccountData &account, const char *purpleUserName, const char *text,
const char *notification, time_t timestamp, PurpleMessageFlags flags)
{