From c0af4589fb0d1cb2a365a5ebe01c1a1ee4bfee7a Mon Sep 17 00:00:00 2001 From: MikalaiR Date: Tue, 14 Apr 2015 13:33:53 +0000 Subject: SkypeWeb: Marking message as read. git-svn-id: http://svn.miranda-ng.org/main/trunk@12806 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- protocols/SkypeWeb/src/requests/messages.h | 4 ++-- protocols/SkypeWeb/src/skype_messages.cpp | 13 ++++++++++++- protocols/SkypeWeb/src/skype_proto.h | 3 +++ 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/protocols/SkypeWeb/src/requests/messages.h b/protocols/SkypeWeb/src/requests/messages.h index de6d044305..9a87361990 100644 --- a/protocols/SkypeWeb/src/requests/messages.h +++ b/protocols/SkypeWeb/src/requests/messages.h @@ -98,8 +98,8 @@ public: class MarkMessageReadRequest : public HttpRequest { public: - MarkMessageReadRequest(const char *regToken, const char *username, LONGLONG msgId = 0, const char *server = SKYPE_ENDPOINTS_HOST) : - HttpRequest(REQUEST_GET, FORMAT, "%s/v1/users/ME/conversations/8:%s/messages/%lld", server, ptrA(mir_urlEncode(username)), msgId) + MarkMessageReadRequest(const char *regToken, LONGLONG msgId = 0, const char *server = SKYPE_ENDPOINTS_HOST) : + HttpRequest(REQUEST_POST, FORMAT, "%s/v1/users/ME/conversations/ALL/messages/%lld/ack", server, msgId) { Headers << CHAR_VALUE("Accept", "application/json, text/javascript") diff --git a/protocols/SkypeWeb/src/skype_messages.cpp b/protocols/SkypeWeb/src/skype_messages.cpp index 070cf94851..a826d38e52 100644 --- a/protocols/SkypeWeb/src/skype_messages.cpp +++ b/protocols/SkypeWeb/src/skype_messages.cpp @@ -243,8 +243,19 @@ void CSkypeProto::OnPrivateMessageEvent(JSONNODE *node) } } -int CSkypeProto::OnDbEventRead(WPARAM wParam, LPARAM lParam) +int CSkypeProto::OnDbEventRead(WPARAM, LPARAM hDbEvent) { debugLogA(__FUNCTION__); + if (IsOnline()) + MarkMessagesRead(hDbEvent); return 0; +} + +void CSkypeProto::MarkMessagesRead(MEVENT hDbEvent) +{ + debugLogA(__FUNCTION__); + DBEVENTINFO dbei = { sizeof(dbei) }; + db_event_get(hDbEvent, &dbei); + time_t timestamp = dbei.timestamp; + PushRequest(new MarkMessageReadRequest(ptrA(getStringA("registrationToken")), timestamp, ptrA(getStringA("Server")))); } \ No newline at end of file diff --git a/protocols/SkypeWeb/src/skype_proto.h b/protocols/SkypeWeb/src/skype_proto.h index 123e6a2b0c..f837fc36b5 100644 --- a/protocols/SkypeWeb/src/skype_proto.h +++ b/protocols/SkypeWeb/src/skype_proto.h @@ -198,8 +198,11 @@ private: void OnMessageSent(const NETLIBHTTPREQUEST *response, void *arg); int __cdecl OnPreCreateMessage(WPARAM, LPARAM lParam); + void MarkMessagesRead(MEVENT hDbEvent); + void OnPrivateMessageEvent(JSONNODE *node); + // sync void OnGetServerHistory(const NETLIBHTTPREQUEST *response); void SyncHistory(); -- cgit v1.2.3