From b76c5a1d907f6310d38230cc6aec2caf7dcc34be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20P=C3=B6sel?= Date: Sun, 20 Dec 2015 12:39:25 +0000 Subject: Steam: Support for sending typing notifications git-svn-id: http://svn.miranda-ng.org/main/trunk@15912 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- protocols/Steam/src/api/message.h | 17 +++++++++++++++++ protocols/Steam/src/steam_messages.cpp | 14 ++++++++++++++ protocols/Steam/src/steam_proto.h | 2 ++ 3 files changed, 33 insertions(+) (limited to 'protocols/Steam') diff --git a/protocols/Steam/src/api/message.h b/protocols/Steam/src/api/message.h index 4c3ec6c80f..7c38bfb430 100644 --- a/protocols/Steam/src/api/message.h +++ b/protocols/Steam/src/api/message.h @@ -19,4 +19,21 @@ public: } }; +class SendTypingRequest : public HttpRequest +{ +public: + SendTypingRequest(const char *token, const char *umqId, const char *steamId) : + HttpRequest(REQUEST_POST, STEAM_API_URL "/ISteamWebUserPresenceOAuth/Message/v0001") + { + CMStringA data; + data.AppendFormat("access_token=%s&umqid=%s&steamid_dst=%s&type=typing", + token, + umqId, + steamId); + + SetData(data, data.GetLength()); + AddHeader("Content-Type", "application/x-www-form-urlencoded; charset=utf-8"); + } +}; + #endif //_STEAM_REQUEST_MESSAGE_H_ diff --git a/protocols/Steam/src/steam_messages.cpp b/protocols/Steam/src/steam_messages.cpp index f55a31366a..c2172bb380 100644 --- a/protocols/Steam/src/steam_messages.cpp +++ b/protocols/Steam/src/steam_messages.cpp @@ -86,3 +86,17 @@ int CSteamProto::OnPreCreateMessage(WPARAM, LPARAM lParam) return 0; } + +int CSteamProto::UserIsTyping(MCONTACT hContact, int type) +{ + // NOTE: Steam doesn't support sending "user stopped typing" so we're sending only positive info + if (hContact && IsOnline() && type == PROTOTYPE_SELFTYPING_ON) + { + ptrA token(getStringA("TokenSecret")); + ptrA umqid(getStringA("UMQID")); + ptrA steamId(getStringA(hContact, "SteamID")); + PushRequest(new SendTypingRequest(token, umqid, steamId)); + } + + return 0; +} diff --git a/protocols/Steam/src/steam_proto.h b/protocols/Steam/src/steam_proto.h index 2784377976..3c282f35e7 100644 --- a/protocols/Steam/src/steam_proto.h +++ b/protocols/Steam/src/steam_proto.h @@ -58,6 +58,8 @@ public: virtual int __cdecl SetStatus(int iNewStatus); + virtual int __cdecl UserIsTyping(MCONTACT hContact, int type); + virtual int __cdecl OnEvent(PROTOEVENTTYPE eventType, WPARAM wParam, LPARAM lParam); // instances -- cgit v1.2.3