Implemented functionality to download songs from the Icarus music server
This commit is contained in:
@@ -37,11 +37,16 @@ int main(int argc, char** argv)
|
||||
}
|
||||
|
||||
cout<<"Song path: "<<songPath<<endl;
|
||||
/**
|
||||
FileManager fm{songPath};
|
||||
fm.saveFile(newSongPath);
|
||||
|
||||
Upload upS{songPath};
|
||||
upS.uploadSong();
|
||||
*/
|
||||
|
||||
Download df{newSongPath};
|
||||
df.downloadSong(1);
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,6 +1,42 @@
|
||||
#include"Download.h"
|
||||
|
||||
#include<iostream>
|
||||
#include<fstream>
|
||||
|
||||
#include<cpr/cpr.h>
|
||||
|
||||
using std::cout;
|
||||
using std::endl;
|
||||
using std::ofstream;
|
||||
using std::string;
|
||||
|
||||
namespace Syncers
|
||||
{
|
||||
Download::Download() { }
|
||||
Download::Download(string filePath)
|
||||
{
|
||||
downloadFilePath = filePath;
|
||||
}
|
||||
|
||||
|
||||
void Download::downloadSong(const int id)
|
||||
{
|
||||
string urlRoot = "http://192.168.1.5";
|
||||
int port = 9349;
|
||||
string endpoint = "api/song/data/" + std::to_string(id);
|
||||
string url = urlRoot + ":" + std::to_string(port) + "/" +
|
||||
endpoint;
|
||||
auto r = cpr::Get(cpr::Url{url});
|
||||
const char* newBuff = r.text.c_str();
|
||||
int bufferLength = r.text.size();
|
||||
|
||||
ofstream saveSong{downloadFilePath, ofstream::binary};
|
||||
saveSong.write(newBuff, bufferLength);
|
||||
|
||||
cout<<"HTTP status code: "<<r.status_code<<endl;
|
||||
cout<<"Header info: "<<r.header["content-type"]<<endl;
|
||||
cout<<"Header info: "<<endl;
|
||||
cout<<r.header["content-type"]<<endl;
|
||||
cout<<r.header["content-disposition"]<<endl;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
#define DOWNLOAD_H_
|
||||
|
||||
#include<iostream>
|
||||
#include<string>
|
||||
|
||||
namespace Syncers
|
||||
{
|
||||
@@ -9,7 +10,11 @@ namespace Syncers
|
||||
{
|
||||
public:
|
||||
Download();
|
||||
Download(std::string);
|
||||
|
||||
void downloadSong(int);
|
||||
private:
|
||||
std::string downloadFilePath;
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user