From cfdabde550aa3cdb3b13e5352f3654e2f6131718 Mon Sep 17 00:00:00 2001 From: George Hazan Date: Wed, 6 Dec 2023 19:45:42 +0300 Subject: fixes #3994 (Telegram: new problems after adding to chat) --- protocols/Telegram/src/proto.h | 2 +- protocols/Telegram/src/server.cpp | 2 +- protocols/Telegram/src/utils.cpp | 14 ++++++++------ 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/protocols/Telegram/src/proto.h b/protocols/Telegram/src/proto.h index 0d3b759740..172024ccdf 100644 --- a/protocols/Telegram/src/proto.h +++ b/protocols/Telegram/src/proto.h @@ -269,7 +269,7 @@ class CTelegramProto : public PROTO bool GetMessageFile(TG_FILE_REQUEST::Type, TG_USER *pUser, const TD::file *pFile, const char *pszFileName, const std::string &caption, const char *szId, const char *szUser, const TD::message *pMsg); CMStringA GetMessageSticker(const TD::file *pFile, const char *pwszExtension); - CMStringA GetMessageText(TG_USER *pUser, const TD::message *pMsg); + CMStringA GetMessageText(TG_USER *pUser, const TD::message *pMsg, bool bSkipJoin = false); void UpdateString(MCONTACT hContact, const char *pszSetting, const std::string &str); diff --git a/protocols/Telegram/src/server.cpp b/protocols/Telegram/src/server.cpp index 6066f55d46..c84cec8f95 100644 --- a/protocols/Telegram/src/server.cpp +++ b/protocols/Telegram/src/server.cpp @@ -406,7 +406,7 @@ void CTelegramProto::OnGetHistory(td::ClientManager::Response &response, void *p if (db_event_getById(m_szModuleName, szMsgId)) continue; - CMStringA szBody = GetMessageText(pUser, pMsg); + CMStringA szBody = GetMessageText(pUser, pMsg, true); if (szBody.IsEmpty()) continue; diff --git a/protocols/Telegram/src/utils.cpp b/protocols/Telegram/src/utils.cpp index 8fff0f9d2b..9bcd1f5891 100644 --- a/protocols/Telegram/src/utils.cpp +++ b/protocols/Telegram/src/utils.cpp @@ -468,7 +468,7 @@ static bool checkStickerType(uint32_t ID) } } -CMStringA CTelegramProto::GetMessageText(TG_USER *pUser, const TD::message *pMsg) +CMStringA CTelegramProto::GetMessageText(TG_USER *pUser, const TD::message *pMsg, bool bSkipJoin) { const TD::MessageContent *pBody = pMsg->content_.get(); @@ -490,14 +490,16 @@ CMStringA CTelegramProto::GetMessageText(TG_USER *pUser, const TD::message *pMsg break; case TD::messageChatAddMembers::ID: - if (auto *pDoc = (TD::messageChatAddMembers *)pBody) - for (auto &it : pDoc->member_user_ids_) - GcChangeMember(pUser, pszUserId, it, true); + if (!bSkipJoin) + if (auto *pDoc = (TD::messageChatAddMembers *)pBody) + for (auto &it : pDoc->member_user_ids_) + GcChangeMember(pUser, pszUserId, it, true); break; case TD::messageChatDeleteMember::ID: - if (auto *pDoc = (TD::messageChatDeleteMember *)pBody) - GcChangeMember(pUser, pszUserId, pDoc->user_id_, false); + if (!bSkipJoin) + if (auto *pDoc = (TD::messageChatDeleteMember *)pBody) + GcChangeMember(pUser, pszUserId, pDoc->user_id_, false); break; case TD::messageChatChangeTitle::ID: -- cgit v1.2.3