summaryrefslogtreecommitdiff
path: root/server/modules/downloaders/curl/main.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'server/modules/downloaders/curl/main.cpp')
-rw-r--r--server/modules/downloaders/curl/main.cpp47
1 files changed, 37 insertions, 10 deletions
diff --git a/server/modules/downloaders/curl/main.cpp b/server/modules/downloaders/curl/main.cpp
index 17c8f67..66f89b4 100644
--- a/server/modules/downloaders/curl/main.cpp
+++ b/server/modules/downloaders/curl/main.cpp
@@ -77,15 +77,15 @@ void downloader::set_module_settings(const std::map<std::string, std::string> &s
}
-int downloader::add_download(std::map<std::string, std::string> params)
+int downloader::add_download(std::map<int, std::string> params)
{
curl_download *d = new curl_download(params, api);
my_download md;
std::string download_name;
{
- auto p1 = params["0"].rfind("/");
+ auto p1 = params[0].rfind("/");
if(p1 != std::string::npos)
- md.name = params["0"].substr(p1);
+ md.name = params[0].substr(p1);
}
md.curl_d = d;
int id = 0;
@@ -106,37 +106,64 @@ int downloader::add_download(std::map<std::string, std::string> params)
bool downloader::stop_download(int download_id)
{
//TODO:
+ bool status = downloads[download_id].curl_d->stop();
+ if(!status)
+ {
+ //TODO: handle error
+ return false;
+ }
return true;
}
bool downloader::start_download(int download_id)
{
//TODO:
+ bool status = downloads[download_id].curl_d->start();
+ if(!status)
+ {
+ //TODO: handle error
+ return false;
+ }
return true;
}
bool downloader::delete_download(int download_id, bool delete_data)
{
+ bool status = downloads[download_id].curl_d->delete_download();
+ if(!status)
+ {
+ //TODO: handle errror
+ return false;
+ }
+ else
+ {
+ downloads[download_id].curl_d = nullptr;
+ }
//TODO:
return true;
}
-bool downloader::execute_action_on_download(int download_id, std::string action_id)
+bool downloader::execute_action_on_download(int download_id, int action_id)
{
//TODO:
return true;
}
-std::list<download_s> downloader::get_downloads(std::map<std::string, std::string> params)
+std::list<download_s> downloader::get_downloads(std::map<int, std::string> params)
{
- //TODO:
- return std::list<download_s>();
+ std::list<download_s> l;
+ for(auto i : downloads)
+ l.push_back(i.second);
+ //TODO: fill aditional data fields
+
+ return l;
}
-download_s downloader::get_download_info(int download_id, std::map<std::string, std::string> params)
+download_s downloader::get_download_info(int download_id, std::map<int, std::string> params)
{
- //TODO:
- return download_s();
+ download_s d = downloads[download_id];
+ //TODO: fill additional data fields
+ return d;
}
extern "C" module_downloader* udm_downloader_module_load()