diff options
Diffstat (limited to 'protocols/Telegram/src')
-rw-r--r-- | protocols/Telegram/src/proto.cpp | 12 | ||||
-rw-r--r-- | protocols/Telegram/src/proto.h | 1 | ||||
-rw-r--r-- | protocols/Telegram/src/server.cpp | 7 |
3 files changed, 15 insertions, 5 deletions
diff --git a/protocols/Telegram/src/proto.cpp b/protocols/Telegram/src/proto.cpp index 3732e1a5e5..327cc9a090 100644 --- a/protocols/Telegram/src/proto.cpp +++ b/protocols/Telegram/src/proto.cpp @@ -635,6 +635,11 @@ HANDLE CTelegramProto::SendFile(MCONTACT hContact, const wchar_t *szDescription, ///////////////////////////////////////////////////////////////////////////////////////// +void CTelegramProto::OnChatCreated(td::ClientManager::Response &response, void *pUserInfo) +{ + SetEvent(pUserInfo); +} + int CTelegramProto::SendMsg(MCONTACT hContact, MEVENT hReplyEvent, const char *pszMessage) { ptrA szId(getStringA(hContact, DBKEY_ID)); @@ -653,6 +658,13 @@ int CTelegramProto::SendMsg(MCONTACT hContact, MEVENT hReplyEvent, const char *p iReplyId = dbei2id(dbei); } + if (pUser->chatId == -1) { + HANDLE hEvent = ::CreateEvent(0, TRUE, FALSE, 0); + SendQuery(new TD::createNewPrivateChat(pUser->id, false), &CTelegramProto::OnChatCreated, hEvent); + WaitForSingleObject(hEvent, INFINITE); + CloseHandle(hEvent); + } + int msgid = SendTextMessage(pUser->chatId, 0, iReplyId, pszMessage); if (msgid != -1) m_arOwnMsg.insert(new TG_OWN_MESSAGE(hContact, (HANDLE)msgid, "")); diff --git a/protocols/Telegram/src/proto.h b/protocols/Telegram/src/proto.h index 29cc8b3654..c8a607eccc 100644 --- a/protocols/Telegram/src/proto.h +++ b/protocols/Telegram/src/proto.h @@ -233,6 +233,7 @@ class CTelegramProto : public PROTO<CTelegramProto> } void OnAvatarSet(td::ClientManager::Response &response, void *pUserInfo); + void OnChatCreated(td::ClientManager::Response &response, void *pUserInfo); void OnEndSession(td::ClientManager::Response &response); void OnGetFileInfo(td::ClientManager::Response &response, void *pUserInfo); void OnGetFileLink(td::ClientManager::Response &response); diff --git a/protocols/Telegram/src/server.cpp b/protocols/Telegram/src/server.cpp index 20d55e04a9..fdec9f3046 100644 --- a/protocols/Telegram/src/server.cpp +++ b/protocols/Telegram/src/server.cpp @@ -1328,11 +1328,8 @@ void CTelegramProto::ProcessUser(TD::updateUser *pObj) void CTelegramProto::ProcessUserInfo(TD::int53 userId, TD::userFullInfo *pObj)
{
if (auto *pUser = FindUser(userId)) {
- if (auto *pBirthday = pObj->birthdate_.get()) {
- setWord(pUser->hContact, "BirthDay", pBirthday->day_);
- setWord(pUser->hContact, "BirthMonth", pBirthday->month_);
- setWord(pUser->hContact, "BirthYear", pBirthday->year_);
- }
+ if (auto *pBirthday = pObj->birthdate_.get())
+ Contact::SetBirthday(pUser->hContact, pBirthday->day_, pBirthday->month_, pBirthday->year_);
if (pObj->bio_) {
CMStringA szNotes(GetFormattedText(pObj->bio_));
|