summaryrefslogtreecommitdiff
path: root/protocols/WhatsAppWeb/src/chats.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'protocols/WhatsAppWeb/src/chats.cpp')
-rw-r--r--protocols/WhatsAppWeb/src/chats.cpp99
1 files changed, 0 insertions, 99 deletions
diff --git a/protocols/WhatsAppWeb/src/chats.cpp b/protocols/WhatsAppWeb/src/chats.cpp
deleted file mode 100644
index a478fae692..0000000000
--- a/protocols/WhatsAppWeb/src/chats.cpp
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
-
-WhatsAppWeb plugin for Miranda NG
-Copyright © 2019-22 George Hazan
-
-*/
-
-#include "stdafx.h"
-
-void WhatsAppProto::InitChat(WAUser *pUser)
-{
- CMStringA jid = "";
- CMStringW wszId(Utf2T(jid.c_str())), wszNick(Utf2T(""));
-
- setWString(pUser->hContact, "Nick", wszNick);
-
- pUser->si = Chat_NewSession(GCW_CHATROOM, m_szModuleName, wszId, wszNick);
-
- Chat_AddGroup(pUser->si, TranslateT("Owner"));
- Chat_AddGroup(pUser->si, TranslateT("SuperAdmin"));
- Chat_AddGroup(pUser->si, TranslateT("Admin"));
- Chat_AddGroup(pUser->si, TranslateT("Participant"));
-
- Chat_Control(m_szModuleName, wszId, m_bHideGroupchats ? WINDOW_HIDDEN : SESSION_INITDONE);
- Chat_Control(m_szModuleName, wszId, SESSION_ONLINE);
-
- if (!pUser->bInited) {
- // CMStringA query(FORMAT, "[\"query\",\"GroupMetadata\",\"%s\"]", jid.c_str());
- // WSSend(query, &WhatsAppProto::OnGetChatInfo, pUser);
- }
-}
-
-void WhatsAppProto::OnGetChatInfo(const JSONNode &root, void *param)
-{
- auto *pChatUser = (WAUser *)param;
- pChatUser->bInited = true;
-
- CMStringW wszOwner(root["owner"].as_mstring()), wszNick;
-
- for (auto &it : root["participants"]) {
- CMStringW jid(it["id"].as_mstring());
- CMStringA szJid(jid);
-
- GCEVENT gce = { m_szModuleName, 0, GC_EVENT_JOIN };
- gce.pszID.w = pChatUser->si->ptszID;
- gce.pszUID.w = jid;
- gce.bIsMe = (szJid == m_szJid);
-
- if (jid == wszOwner)
- gce.pszStatus.w = L"Owner";
- else if (it["isSuperAdmin"].as_bool())
- gce.pszStatus.w = L"SuperAdmin";
- else if (it["isAdmin"].as_bool())
- gce.pszStatus.w = L"Admin";
- else
- gce.pszStatus.w = L"Participant";
-
- if (gce.bIsMe)
- wszNick = getMStringW(DBKEY_NICK);
- else if (auto *pUser = FindUser(szJid))
- wszNick = Clist_GetContactDisplayName(pUser->hContact);
- else {
- int iPos = jid.Find('@');
- wszNick = (iPos != -1) ? jid.Left(iPos - 1) : jid;
- }
-
- gce.pszNick.w = wszNick;
- Chat_Event(&gce);
- }
-
- if (pChatUser->arHistory.getCount()) {
- for (auto &it : pChatUser->arHistory) {
- CMStringW jid(it->jid), text(Utf2T(it->text));
-
- GCEVENT gce = { m_szModuleName, 0, GC_EVENT_MESSAGE };
- gce.pszID.w = pChatUser->si->ptszID;
- gce.dwFlags = GCEF_ADDTOLOG;
- gce.pszUID.w = jid;
- gce.pszText.w = text;
- gce.time = it->timestamp;
- gce.bIsMe = (it->jid == m_szJid);
- Chat_Event(&gce);
- }
- pChatUser->arHistory.destroy();
- }
-
- CMStringW wszSubject(root["subject"].as_mstring());
- if (!wszSubject.IsEmpty()) {
- time_t iSubjectTime(root["subjectTime"].as_int());
- CMStringW wszSubjectSet(root["subjectOwner"].as_mstring());
-
- GCEVENT gce = { m_szModuleName, 0, GC_EVENT_TOPIC };
- gce.pszID.w = pChatUser->si->ptszID;
- gce.pszUID.w = wszSubjectSet;
- gce.pszText.w = wszSubject;
- gce.time = iSubjectTime;
- Chat_Event(&gce);
- }
-}