diff options
Diffstat (limited to 'protocols/Telegram/src/groupchat.cpp')
-rw-r--r-- | protocols/Telegram/src/groupchat.cpp | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/protocols/Telegram/src/groupchat.cpp b/protocols/Telegram/src/groupchat.cpp index f19683a9b0..8a75c17339 100644 --- a/protocols/Telegram/src/groupchat.cpp +++ b/protocols/Telegram/src/groupchat.cpp @@ -272,6 +272,35 @@ void CTelegramProto::Chat_SendPrivateMessage(GCHOOK *gch) ///////////////////////////////////////////////////////////////////////////////////////// +void CTelegramProto::GcChangeMember(TG_USER *pChat, TD::int53 userId, bool bJoined) +{ + if (pChat->m_si == nullptr) + return; + + if (auto *pMember = FindUser(userId)) { + CMStringW wszId(FORMAT, L"%lld", pMember->id), wszNick(pMember->getDisplayName()); + + GCEVENT gce = { pChat->m_si, (bJoined) ? GC_EVENT_JOIN : GC_EVENT_PART }; + gce.pszUID.w = wszId; + gce.pszNick.w = wszNick; + gce.bIsMe = false; + gce.pszStatus.w = TranslateT("Visitor"); + Chat_Event(&gce); + } +} + +void CTelegramProto::GcChangeTopic(TG_USER *pChat, const wchar_t *pwszNewTopic) +{ + if (pChat->m_si == nullptr || pwszNewTopic == nullptr) + return; + + GCEVENT gce = { pChat->m_si, GC_EVENT_TOPIC }; + gce.pszText.w = pwszNewTopic; + Chat_Event(&gce); +} + +///////////////////////////////////////////////////////////////////////////////////////// + static gc_item sttLogListItems[] = { { LPGENW("&Leave chat session"), IDM_LEAVE, MENU_ITEM } |