diff options
author | George Hazan <ghazan@miranda.im> | 2023-01-27 19:48:42 +0300 |
---|---|---|
committer | George Hazan <ghazan@miranda.im> | 2023-01-27 19:48:42 +0300 |
commit | 899221e2d058f5afe30bb2ecdbf168c8ad3c15a6 (patch) | |
tree | ea2346678575a4fc5fdd9575b6a9174bd30c70dc /protocols/Facebook | |
parent | c736d08681747a9453bd4c266f6dd54d8cbd79eb (diff) |
Group chats: all old APIs with lookup by module+session removed
Diffstat (limited to 'protocols/Facebook')
-rw-r--r-- | protocols/Facebook/src/groupchats.cpp | 6 | ||||
-rw-r--r-- | protocols/Facebook/src/proto.h | 1 | ||||
-rw-r--r-- | protocols/Facebook/src/server.cpp | 20 |
3 files changed, 12 insertions, 15 deletions
diff --git a/protocols/Facebook/src/groupchats.cpp b/protocols/Facebook/src/groupchats.cpp index b43e05696a..cc56860e5a 100644 --- a/protocols/Facebook/src/groupchats.cpp +++ b/protocols/Facebook/src/groupchats.cpp @@ -131,7 +131,7 @@ int FacebookProto::GroupchatMenuHook(WPARAM, LPARAM lParam) if (mir_strcmpi(gcmi->pszModule, m_szModuleName))
return 0;
- if (SESSION_INFO *si = g_chatApi.SM_FindSession(gcmi->pszID, gcmi->pszModule)) {
+ if (SESSION_INFO *si = Chat_Find(gcmi->pszID, gcmi->pszModule)) {
if (gcmi->Type == MENU_ON_LOG)
Chat_AddMenuItems(gcmi->hMenu, _countof(sttLogListItems), sttLogListItems, &g_plugin);
if (gcmi->Type == MENU_ON_NICKLIST)
@@ -150,7 +150,7 @@ int FacebookProto::GroupchatEventHook(WPARAM, LPARAM lParam) if (mir_strcmpi(gch->si->pszModule, m_szModuleName))
return 0;
- SESSION_INFO *si = g_chatApi.SM_FindSession(gch->si->ptszID, gch->si->pszModule);
+ SESSION_INFO *si = Chat_Find(gch->si->ptszID, gch->si->pszModule);
if (si == nullptr)
return 1;
@@ -245,7 +245,7 @@ int FacebookProto::Chat_KickUser(SESSION_INFO *si, const wchar_t *pwszUid) static void __cdecl DestroyRoomThread(SESSION_INFO *si)
{
::Sleep(100);
- Chat_Terminate(si->pszModule, si->ptszID, true);
+ Chat_Terminate(si, true);
}
void FacebookProto::Chat_Leave(SESSION_INFO *si)
diff --git a/protocols/Facebook/src/proto.h b/protocols/Facebook/src/proto.h index efa5a008d9..fa110918f4 100644 --- a/protocols/Facebook/src/proto.h +++ b/protocols/Facebook/src/proto.h @@ -354,6 +354,7 @@ struct FacebookUser MCONTACT hContact;
bool bIsChat;
bool bIsChatInitialized;
+ SESSION_INFO *si;
};
/////////////////////////////////////////////////////////////////////////////////////////
diff --git a/protocols/Facebook/src/server.cpp b/protocols/Facebook/src/server.cpp index e3d1f31736..8a3aa1819d 100644 --- a/protocols/Facebook/src/server.cpp +++ b/protocols/Facebook/src/server.cpp @@ -286,8 +286,7 @@ FacebookUser* FacebookProto::RefreshThread(JSONNode &n) CMStringW userId(ur["id"].as_mstring());
CMStringW userName(ur["name"].as_mstring());
- GCEVENT gce = { m_szModuleName, 0, GC_EVENT_JOIN };
- gce.pszID.w = chatId;
+ GCEVENT gce = { si, GC_EVENT_JOIN };
gce.pszUID.w = userId;
gce.pszNick.w = userName;
gce.bIsMe = _wtoi64(userId) == m_uid;
@@ -295,8 +294,8 @@ FacebookUser* FacebookProto::RefreshThread(JSONNode &n) Chat_Event(&gce);
}
- Chat_Control(m_szModuleName, chatId, m_bHideGroupchats ? WINDOW_HIDDEN : SESSION_INITDONE);
- Chat_Control(m_szModuleName, chatId, SESSION_ONLINE);
+ Chat_Control(si, m_bHideGroupchats ? WINDOW_HIDDEN : SESSION_INITDONE);
+ Chat_Control(si, SESSION_ONLINE);
__int64 userId = _wtoi64(chatId);
auto *pUser = FindUser(userId);
@@ -307,6 +306,7 @@ FacebookUser* FacebookProto::RefreshThread(JSONNode &n) m_users.insert(pUser);
}
else {
+ pUser->si = si;
pUser->hContact = si->hContact;
pUser->bIsChatInitialized = true;
}
@@ -872,8 +872,7 @@ void FacebookProto::OnPublishPrivateMessage(const JSONNode &root) // TODO: GC_EVENT_JOIN for chat participants which are missing (for example added later during group chat)
- GCEVENT gce = { m_szModuleName, 0, GC_EVENT_MESSAGE };
- gce.pszID.w = wszUserId;
+ GCEVENT gce = { pUser->si, GC_EVENT_MESSAGE };
gce.dwFlags = GCEF_ADDTOLOG;
gce.pszUID.w = wszActorFbId;
gce.pszText.w = wszText;
@@ -939,8 +938,7 @@ void FacebookProto::OnPublishChatJoin(const JSONNode &root) for (auto &it : root["addedParticipants"]) {
CMStringW wszNick(it["fullName"].as_mstring()), wszId(it["userFbId"].as_mstring());
- GCEVENT gce = { m_szModuleName, 0, GC_EVENT_JOIN };
- gce.pszID.w = wszUserId;
+ GCEVENT gce = { pUser->si, GC_EVENT_JOIN };
gce.dwFlags = GCEF_ADDTOLOG;
gce.pszNick.w = wszNick;
gce.pszUID.w = wszId;
@@ -968,8 +966,7 @@ void FacebookProto::OnPublishChatLeave(const JSONNode &root) return;
CMStringW wszText(metadata["adminText"].as_mstring()), wszId(root["leftParticipantFbId"].as_mstring());
- GCEVENT gce = { m_szModuleName, 0, GC_EVENT_PART };
- gce.pszID.w = wszUserId;
+ GCEVENT gce = { pUser->si, GC_EVENT_PART };
gce.dwFlags = GCEF_ADDTOLOG;
gce.pszUID.w = wszId;
gce.pszText.w = wszText;
@@ -1017,8 +1014,7 @@ bool FacebookProto::CheckOwnMessage(FacebookUser *pUser, __int64 offlineId, cons wchar_t userId[100];
_i64tow_s(pUser->id, userId, _countof(userId), 10);
- GCEVENT gce = { m_szModuleName, 0, GC_EVENT_MESSAGE };
- gce.pszID.w = userId;
+ GCEVENT gce = { pUser->si, GC_EVENT_MESSAGE };
gce.dwFlags = GCEF_ADDTOLOG;
gce.pszUID.w = wszId;
gce.pszText.w = tmp.wszText;
|