From e3e2ecff1cdd34b1fd389ea61e0410c7745e2a32 Mon Sep 17 00:00:00 2001 From: MikalaiR Date: Sat, 14 Nov 2015 17:56:01 +0000 Subject: SkypeWeb: images uploading support (part 2) git-svn-id: http://svn.miranda-ng.org/main/trunk@15725 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- protocols/SkypeWeb/SkypeWeb.vcxproj.filters | 3 +++ protocols/SkypeWeb/src/requests/asm/images.h | 4 ++-- protocols/SkypeWeb/src/skype_proto.h | 7 +++++++ protocols/SkypeWeb/src/skype_utils.h | 12 ++++++++++++ 4 files changed, 24 insertions(+), 2 deletions(-) (limited to 'protocols') diff --git a/protocols/SkypeWeb/SkypeWeb.vcxproj.filters b/protocols/SkypeWeb/SkypeWeb.vcxproj.filters index 15498fe4c2..829d664e4e 100644 --- a/protocols/SkypeWeb/SkypeWeb.vcxproj.filters +++ b/protocols/SkypeWeb/SkypeWeb.vcxproj.filters @@ -58,6 +58,9 @@ Header Files\requests + + + Header Files\requests\ASM \ No newline at end of file diff --git a/protocols/SkypeWeb/src/requests/asm/images.h b/protocols/SkypeWeb/src/requests/asm/images.h index 853bbf2dc0..d1494c01ef 100644 --- a/protocols/SkypeWeb/src/requests/asm/images.h +++ b/protocols/SkypeWeb/src/requests/asm/images.h @@ -11,7 +11,7 @@ public: JSONNode node, jPermissions, jPermission(JSON_ARRAY); jPermissions.set_name("permissions"); - jPermission.set_name(CMStringA(::FORMAT, "8:%s", szContact).GetString()); + jPermission.set_name(szContact); jPermission << JSONNode("read", (char*)NULL); jPermissions << jPermission; node << JSONNode("type", "pish/image") << jPermissions; @@ -25,7 +25,7 @@ class ASMObjectUploadRequest : public HttpRequest { public: ASMObjectUploadRequest(LoginInfo &li, const char *szObject, const PBYTE data, const size_t size) : - HttpRequest(REQUEST_POST, FORMAT, "api.asm.skype.com/v1/objects/%s/content/imgpsh", szObject) + HttpRequest(REQUEST_PUT, FORMAT, "api.asm.skype.com/v1/objects/%s/content/imgpsh", szObject) { Headers << CHAR_VALUE("Authorization:", CMStringA(::FORMAT, "skype_token %s", li.api.szToken)); diff --git a/protocols/SkypeWeb/src/skype_proto.h b/protocols/SkypeWeb/src/skype_proto.h index 91f4c3351a..d6b35e7b9d 100644 --- a/protocols/SkypeWeb/src/skype_proto.h +++ b/protocols/SkypeWeb/src/skype_proto.h @@ -53,6 +53,8 @@ public: virtual int __cdecl UserIsTyping(MCONTACT hContact, int type); virtual int __cdecl OnEvent(PROTOEVENTTYPE iEventType, WPARAM wParam, LPARAM lParam); virtual int __cdecl RecvContacts(MCONTACT hContact, PROTORECVEVENT*); + virtual HANDLE __cdecl SendFile(MCONTACT hContact, const TCHAR *szDescription, TCHAR **ppszFiles); + // accounts static CSkypeProto* InitAccount(const char *protoName, const TCHAR *userName); static int UninitAccount(CSkypeProto *proto); @@ -219,6 +221,11 @@ private: void LoadProfile(const NETLIBHTTPREQUEST *response); + + void __cdecl CSkypeProto::SendFileThread(void *p); + void OnASMObjectCreated(const NETLIBHTTPREQUEST *response, void *arg); + void OnASMObjectUploaded(const NETLIBHTTPREQUEST *response, void *arg); + // contacts WORD GetContactStatus(MCONTACT hContact); void SetContactStatus(MCONTACT hContact, WORD status); diff --git a/protocols/SkypeWeb/src/skype_utils.h b/protocols/SkypeWeb/src/skype_utils.h index 34c2324dda..9723fd0f7c 100644 --- a/protocols/SkypeWeb/src/skype_utils.h +++ b/protocols/SkypeWeb/src/skype_utils.h @@ -88,4 +88,16 @@ public: __inline operator HANDLE() { return _hEvent; } }; +struct CFileUploadParam : public MZeroedObject { + ptrT tszFileName; + ptrT tszDesc; + char* atr; + char* fname; + MCONTACT hContact; + + __forceinline CFileUploadParam(MCONTACT _hContact, const TCHAR* _desc, TCHAR** _files) : hContact(_hContact), tszDesc(mir_tstrdup(_desc)), tszFileName(mir_tstrdup(_files[0])) {}; + __forceinline bool IsAccess() { return ::_taccess(tszFileName, 0) == 0; } +}; + + #endif //_UTILS_H_ \ No newline at end of file -- cgit v1.2.3