X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Fsoundcloud_upload.cc;h=da887d49f50cc0784b3dd324bf6290026a1c1b38;hb=848db8fbd56dbae1ad286b7791dba293462b5f43;hp=f003d5ab654d06b7ed41155fb77f6abdce941a5e;hpb=95ccbc452f513a9d6f70de45bc413067e568364c;p=ardour.git diff --git a/libs/ardour/soundcloud_upload.cc b/libs/ardour/soundcloud_upload.cc index f003d5ab65..da887d49f5 100644 --- a/libs/ardour/soundcloud_upload.cc +++ b/libs/ardour/soundcloud_upload.cc @@ -20,11 +20,11 @@ *************************************************************************************/ +#include "ardour/debug.h" #include "ardour/soundcloud_upload.h" #include "pbd/xml++.h" #include -//#include "pbd/filesystem.h" #include #include @@ -35,8 +35,6 @@ using namespace PBD; -// static const std::string base_url = "http://api.soundcloud.com/tracks/13158665?client_id="; - size_t WriteMemoryCallback(void *ptr, size_t size, size_t nmemb, void *data) { @@ -78,13 +76,13 @@ SoundcloudUploader::Get_Auth_Token( std::string username, std::string password ) curl_formadd(&formpost, &lastptr, CURLFORM_COPYNAME, "client_id", - CURLFORM_COPYCONTENTS, "e7ac891eef866f139773cf8102b7a719", + CURLFORM_COPYCONTENTS, "6dd9cf0ad281aa57e07745082cec580b", CURLFORM_END); curl_formadd(&formpost, &lastptr, CURLFORM_COPYNAME, "client_secret", - CURLFORM_COPYCONTENTS, "d78f34d19f09d26731801a0cb0f382c4", + CURLFORM_COPYCONTENTS, "53f5b0113fb338800f8a7a9904fc3569", CURLFORM_END); curl_formadd(&formpost, @@ -119,13 +117,13 @@ SoundcloudUploader::Get_Auth_Token( std::string username, std::string password ) // perform online request CURLcode res = curl_easy_perform(curl_handle); - if( res != 0 ) { - std::cerr << "curl error " << res << " (" << curl_easy_strerror(res) << ")" << std::endl; + if (res != 0) { + DEBUG_TRACE (DEBUG::Soundcloud, string_compose ("curl error %1 (%2)", res, curl_easy_strerror(res) ) ); return ""; } - if(xml_page.memory){ - //cheesy way to parse the json return value. find access_token, then advance 3 quotes + if (xml_page.memory){ + // cheesy way to parse the json return value. find access_token, then advance 3 quotes if ( strstr ( xml_page.memory , "access_token" ) == NULL) { error << _("Upload to Soundcloud failed. Perhaps your email or password are incorrect?\n") << endmsg; @@ -148,14 +146,14 @@ int SoundcloudUploader::progress_callback(void *caller, double dltotal, double dlnow, double ultotal, double ulnow) { SoundcloudUploader *scu = (SoundcloudUploader *) caller; - std::cerr << scu->title << ": uploaded " << ulnow << " of " << ultotal << std::endl; + DEBUG_TRACE (DEBUG::Soundcloud, string_compose ("%1: uploaded %2 of %3", scu->title, ulnow, ultotal) ); scu->caller->SoundcloudProgress(ultotal, ulnow, scu->title); /* EMIT SIGNAL */ return 0; } std::string -SoundcloudUploader::Upload(std::string file_path, std::string title, std::string token, bool ispublic, ARDOUR::ExportHandler *caller) +SoundcloudUploader::Upload(std::string file_path, std::string title, std::string token, bool ispublic, bool downloadable, ARDOUR::ExportHandler *caller) { int still_running; @@ -198,6 +196,14 @@ SoundcloudUploader::Upload(std::string file_path, std::string title, std::string CURLFORM_COPYCONTENTS, ispublic ? "public" : "private", CURLFORM_END); + curl_formadd(&formpost, + &lastptr, + CURLFORM_COPYNAME, "track[downloadable]", + CURLFORM_COPYCONTENTS, downloadable ? "true" : "false", + CURLFORM_END); + + + /* initalize custom header list (stating that Expect: 100-continue is not wanted */ struct curl_slist *headerlist=NULL; @@ -289,26 +295,26 @@ SoundcloudUploader::Upload(std::string file_path, std::string title, std::string if(xml_page.memory){ - std::cout << xml_page.memory << std::endl; + DEBUG_TRACE (DEBUG::Soundcloud, xml_page.memory); XMLTree doc; doc.read_buffer( xml_page.memory ); XMLNode *root = doc.root(); if (!root) { - std::cout << "no root XML node!" << std::endl; + DEBUG_TRACE (DEBUG::Soundcloud, "no root XML node!"); return ""; } XMLNode *url_node = root->child("permalink-url"); if (!url_node) { - std::cout << "no child node \"permalink-url\" found!" << std::endl; + DEBUG_TRACE (DEBUG::Soundcloud, "no child node \"permalink-url\" found!"); return ""; } XMLNode *text_node = url_node->child("text"); if (!text_node) { - std::cout << "no text node found!" << std::endl; + DEBUG_TRACE (DEBUG::Soundcloud, "no text node found!"); return ""; }