From 4a1eb5200ee36228ded5cd9a005c7d19d2bba142 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20P=C3=B6sel?= Date: Mon, 21 Apr 2014 14:50:36 +0000 Subject: Facebook: Support for sending typing notifications from chatrooms (not supported in *SRMM yet) git-svn-id: http://svn.miranda-ng.org/main/trunk@9008 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- protocols/FacebookRM/src/messages.cpp | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/protocols/FacebookRM/src/messages.cpp b/protocols/FacebookRM/src/messages.cpp index 1478aab8ca..31ffbc4c28 100644 --- a/protocols/FacebookRM/src/messages.cpp +++ b/protocols/FacebookRM/src/messages.cpp @@ -24,7 +24,6 @@ along with this program. If not, see . int FacebookProto::RecvMsg(MCONTACT hContact, PROTORECVEVENT *pre) { - //ForkThread(&FacebookProto::ReadMessageWorker, (void*)hContact); CallService(MS_PROTO_CONTACTISTYPING, hContact, (LPARAM)PROTOTYPE_CONTACTTYPING_OFF); return Proto_RecvMessage(hContact, pre); @@ -126,7 +125,7 @@ int FacebookProto::UserIsTyping(MCONTACT hContact,int type) void FacebookProto::SendTypingWorker(void *p) { - if(p == NULL) + if (p == NULL) return; send_typing *typing = static_cast(p); @@ -147,16 +146,22 @@ void FacebookProto::SendTypingWorker(void *p) return; } - ptrA id( getStringA(typing->hContact, FACEBOOK_KEY_ID)); + const char *value = (isChatRoom(typing->hContact) ? FACEBOOK_KEY_TID : FACEBOOK_KEY_ID); + ptrA id( getStringA(typing->hContact, value)); if (id != NULL) { std::string data = "&source=mercury-chat"; - data += (typing->status == PROTOTYPE_SELFTYPING_ON ? "&typ=1" : "&typ=0"); // PROTOTYPE_SELFTYPING_OFF - data += "&to=" + utils::url::encode(std::string(id)); + data += (typing->status == PROTOTYPE_SELFTYPING_ON ? "&typ=1" : "&typ=0"); + + data += "&to="; + if (isChatRoom(typing->hContact)) + data += "&thread="; + data += utils::url::encode(std::string(id)); + data += "&fb_dtsg=" + (facy.dtsg_.length() ? facy.dtsg_ : "0"); data += "&lsd=&phstamp=0&__user=" + facy.self_.user_id; http::response resp = facy.flap(REQUEST_TYPING_SEND, &data); - } + } delete typing; } -- cgit v1.2.3