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.cpp37
1 files changed, 36 insertions, 1 deletions
diff --git a/server/modules/downloaders/curl/main.cpp b/server/modules/downloaders/curl/main.cpp
index bd71104..fca69c5 100644
--- a/server/modules/downloaders/curl/main.cpp
+++ b/server/modules/downloaders/curl/main.cpp
@@ -22,6 +22,10 @@
#include "main.h"
#include <boost/bind.hpp>
+#include <curl/curl.h>
+
+#include "curl_download.h"
+
module_base::~module_base()
@@ -31,6 +35,8 @@ module_base::~module_base()
downloader::downloader()
{
+ if(curl_global_init(CURL_GLOBAL_ALL) != CURLE_OK)
+ ;//TODO: handle error
}
downloader::~downloader()
@@ -48,6 +54,15 @@ void downloader::load(core_api *a)
info.name = "curl";
info.description = "basic http/ftp downloader via libcurl, also example how to write downloader modules";
info.version = "0.0.0.1draft";
+ module_download_ui_element_info_s e;
+ e.id = "0";
+ e.name = "Url";
+ e.type = MODULE_UI_ELEMENT_TYPE_e::UI_STR;
+ info.download_creation_ui.push_back(e);
+ e.id = "1";
+ e.name = "Download path";
+ e.type = MODULE_UI_ELEMENT_TYPE_e::UI_STR;
+ info.download_creation_ui.push_back(e);
info.on_modules_loaded = boost::bind(&downloader::on_modules_loaded, this); //optional definition of function which is called after all modules loaded
}
@@ -64,8 +79,28 @@ void downloader::set_module_settings(const std::map<std::string, std::string> &s
int downloader::add_download(std::map<std::string, std::string> params)
{
+ curl_download *d = new curl_download(params, api);
+ my_download md;
+ std::string download_name;
+ {
+ auto p1 = params["0"].rfind("/");
+ if(p1 != std::string::npos)
+ md.name = params["0"].substr(p1);
+ }
+ md.curl_d = d;
+ int id = 0;
+ if(!downloads.empty())
+ {
+ id = downloads.size();
+
+ md.id = id;
+ }
+ else
+ md.id = 0;
+
+ downloads[id] = md;
//TODO:
- return 0;
+ return id;
}
bool downloader::stop_download(int download_id)