From e5287627d957b092d11ba8031e4d30dc7f79cbd5 Mon Sep 17 00:00:00 2001 From: Alexander Lantsev Date: Thu, 3 Mar 2016 15:43:38 +0000 Subject: Dropbox: fallback to v1 api to support shorten urls git-svn-id: http://svn.miranda-ng.org/main/trunk@16406 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- plugins/Dropbox/src/api/operations.h | 10 ++++++++++ plugins/Dropbox/src/dropbox.cpp | 13 ------------- plugins/Dropbox/src/dropbox_commands.cpp | 11 ++++++++--- plugins/Dropbox/src/dropbox_transfers.cpp | 11 ++++++++--- 4 files changed, 26 insertions(+), 19 deletions(-) diff --git a/plugins/Dropbox/src/api/operations.h b/plugins/Dropbox/src/api/operations.h index 01f428c88a..d50b99e734 100644 --- a/plugins/Dropbox/src/api/operations.h +++ b/plugins/Dropbox/src/api/operations.h @@ -1,6 +1,16 @@ #ifndef _DROPBOX_API_OPERATIONS_H_ #define _DROPBOX_API_OPERATIONS_H_ +class ShareOldRequest : public HttpRequest +{ +public: + ShareOldRequest(const char *token, const char *path) : + HttpRequest(REQUEST_POST, HttpRequestUrlFormat::FORMAT, DROPBOX_API_OLD "/shares/auto/%s", path) + { + AddBearerAuthHeader(token); + } +}; + class ShareRequest : public HttpRequest { public: diff --git a/plugins/Dropbox/src/dropbox.cpp b/plugins/Dropbox/src/dropbox.cpp index a794e3bb17..fa31010600 100644 --- a/plugins/Dropbox/src/dropbox.cpp +++ b/plugins/Dropbox/src/dropbox.cpp @@ -94,19 +94,6 @@ void CDropbox::RequestAccountInfo(void *p) if (!name.empty()) { db_set_s(hContact, MODULE, "FirstName", name.at("given_name").as_string().c_str()); db_set_s(hContact, MODULE, "LastName", name.at("surname").as_string().c_str()); - /*JSONNode display_name = root.at("display_name"); - if (!display_name.empty()) { - CMString tszDisplayName(display_name.as_mstring()); - int pos = tszDisplayName.ReverseFind(' '); - if (pos != -1) { - db_set_ts(hContact, MODULE, "LastName", tszDisplayName.Mid(pos + 1)); - db_set_ts(hContact, MODULE, "FirstName", tszDisplayName.Left(pos)); - } - else { - db_set_ts(hContact, MODULE, "FirstName", tszDisplayName); - db_unset(hContact, MODULE, "LastName"); - } - }*/ } JSONNode country = root.at("country"); diff --git a/plugins/Dropbox/src/dropbox_commands.cpp b/plugins/Dropbox/src/dropbox_commands.cpp index 10efb39d44..7fef60be45 100644 --- a/plugins/Dropbox/src/dropbox_commands.cpp +++ b/plugins/Dropbox/src/dropbox_commands.cpp @@ -79,9 +79,14 @@ void CDropbox::CommandShare(void *arg) } ptrA token(db_get_sa(NULL, MODULE, "TokenSecret")); - //bool useShortUrl = db_get_b(NULL, MODULE, "UseSortLinks", 1) > 0; - ShareRequest request(token, path); - NLHR_PTR response(request.Send(param->instance->hNetlibConnection)); + bool useShortUrl = db_get_b(NULL, MODULE, "UseSortLinks", 1) > 0; + HttpRequest *request; + if (useShortUrl) + request = new ShareOldRequest(token, path); + else + request = new ShareRequest(token, path); + NLHR_PTR response(request->Send(param->instance->hNetlibConnection)); + delete request; if (response == NULL || response->resultCode != HTTP_STATUS_OK) { ProtoBroadcastAck(MODULE, param->hContact, ACKTYPE_MESSAGE, ACKRESULT_FAILED, param->hProcess, 0); diff --git a/plugins/Dropbox/src/dropbox_transfers.cpp b/plugins/Dropbox/src/dropbox_transfers.cpp index 801f2e344e..15fd919598 100644 --- a/plugins/Dropbox/src/dropbox_transfers.cpp +++ b/plugins/Dropbox/src/dropbox_transfers.cpp @@ -76,9 +76,14 @@ void CDropbox::CreateFolder(const char *path) void CDropbox::CreateDownloadUrl(const char *path, char *url) { ptrA token(db_get_sa(NULL, MODULE, "TokenSecret")); - //bool useShortUrl = db_get_b(NULL, MODULE, "UseSortLinks", 1) > 0; - ShareRequest request(token, path); - NLHR_PTR response(request.Send(hNetlibConnection)); + bool useShortUrl = db_get_b(NULL, MODULE, "UseSortLinks", 1) > 0; + HttpRequest *request; + if (useShortUrl) + request = new ShareOldRequest(token, path); + else + request = new ShareRequest(token, path); + NLHR_PTR response(request->Send(hNetlibConnection)); + delete request; HandleJsonResponseError(response); -- cgit v1.2.3