mirror of https://github.com/kiwix/libkiwix.git
Remove getDataDirectory
This commit is contained in:
parent
566b40a2f8
commit
9fd8e81de2
|
@ -172,7 +172,12 @@ class Downloader
|
||||||
typedef std::vector<std::pair<std::string, std::string>> Options;
|
typedef std::vector<std::pair<std::string, std::string>> Options;
|
||||||
|
|
||||||
public: // functions
|
public: // functions
|
||||||
Downloader();
|
/*
|
||||||
|
* Create a new Downloader object.
|
||||||
|
*
|
||||||
|
* @param sessionFileDir: The directory where aria2 will store its session file.
|
||||||
|
*/
|
||||||
|
explicit Downloader(std::string sessionFileDir);
|
||||||
virtual ~Downloader();
|
virtual ~Downloader();
|
||||||
|
|
||||||
void close();
|
void close();
|
||||||
|
|
|
@ -45,32 +45,6 @@ typedef std::vector<std::string> FeedCategories;
|
||||||
*/
|
*/
|
||||||
std::string getCurrentDirectory();
|
std::string getCurrentDirectory();
|
||||||
|
|
||||||
/**
|
|
||||||
* Return the data directory
|
|
||||||
*
|
|
||||||
* The data directory is the default directory where downloaded files
|
|
||||||
* should be saved (it can be overriden via the options parameter of
|
|
||||||
* `kiwix::Downloader::startDownload()`).
|
|
||||||
*
|
|
||||||
* Its path can vary and is determined as follows:
|
|
||||||
*
|
|
||||||
* * `$KIWIX_DATA_DIR` if `$KIWIX_DATA_DIR` environment variable set, *otherwise...*
|
|
||||||
* * On Windows:
|
|
||||||
*
|
|
||||||
* * `$APPDATA/kiwix` if environment variable `$APPDATA` set, *otherwise...*
|
|
||||||
* * `$USERPROFILE/kiwix` if environment variable `$USERPROFILE` set, *otherwise...*
|
|
||||||
*
|
|
||||||
* * On other Operating Systems:
|
|
||||||
*
|
|
||||||
* * `$XDG_DATA_HOME/kiwix` if environment variable `$XDG_DATA_HOME` set, *otherwise...*
|
|
||||||
* * `$HOME/.local/share/kiwx` if environment variable `$HOME` set, *otherwise...*
|
|
||||||
*
|
|
||||||
* * Current working directory.
|
|
||||||
*
|
|
||||||
* @return the path of the data directory (UTF-8 encoded)
|
|
||||||
*/
|
|
||||||
std::string getDataDirectory();
|
|
||||||
|
|
||||||
/** Return the path of the executable
|
/** Return the path of the executable
|
||||||
*
|
*
|
||||||
* Some application may be packaged in auto extractible archive (Appimage) and the
|
* Some application may be packaged in auto extractible archive (Appimage) and the
|
||||||
|
|
|
@ -55,17 +55,15 @@ void pauseAnyActiveDownloads(const std::string& ariaSessionFilePath)
|
||||||
|
|
||||||
} // unnamed namespace
|
} // unnamed namespace
|
||||||
|
|
||||||
Aria2::Aria2():
|
Aria2::Aria2(std::string sessionFileDir):
|
||||||
mp_aria(nullptr),
|
mp_aria(nullptr),
|
||||||
m_port(42042),
|
m_port(42042),
|
||||||
m_secret(getNewRpcSecret())
|
m_secret(getNewRpcSecret())
|
||||||
{
|
{
|
||||||
m_downloadDir = getDataDirectory();
|
|
||||||
makeDirectory(m_downloadDir);
|
|
||||||
std::vector<const char*> callCmd;
|
std::vector<const char*> callCmd;
|
||||||
|
|
||||||
std::string rpc_port = "--rpc-listen-port=" + to_string(m_port);
|
std::string rpc_port = "--rpc-listen-port=" + to_string(m_port);
|
||||||
std::string session_file = appendToDirectory(getDataDirectory(), "kiwix.session");
|
std::string session_file = appendToDirectory(sessionFileDir, "kiwix.session");
|
||||||
pauseAnyActiveDownloads(session_file);
|
pauseAnyActiveDownloads(session_file);
|
||||||
std::string session = "--save-session=" + session_file;
|
std::string session = "--save-session=" + session_file;
|
||||||
std::string inputFile = "--input-file=" + session_file;
|
std::string inputFile = "--input-file=" + session_file;
|
||||||
|
|
|
@ -22,11 +22,10 @@ class Aria2
|
||||||
std::unique_ptr<Subprocess> mp_aria;
|
std::unique_ptr<Subprocess> mp_aria;
|
||||||
int m_port;
|
int m_port;
|
||||||
std::string m_secret;
|
std::string m_secret;
|
||||||
std::string m_downloadDir;
|
|
||||||
std::string doRequest(const MethodCall& methodCall);
|
std::string doRequest(const MethodCall& methodCall);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
Aria2();
|
explicit Aria2(std::string sessionFileDir);
|
||||||
virtual ~Aria2() = default;
|
virtual ~Aria2() = default;
|
||||||
void close();
|
void close();
|
||||||
|
|
||||||
|
|
|
@ -125,8 +125,8 @@ void Download::cancelDownload()
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Constructor */
|
/* Constructor */
|
||||||
Downloader::Downloader() :
|
Downloader::Downloader(std::string sessionFileDir) :
|
||||||
mp_aria(new Aria2())
|
mp_aria(new Aria2(sessionFileDir))
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
for (auto gid : mp_aria->tellWaiting()) {
|
for (auto gid : mp_aria->tellWaiting()) {
|
||||||
|
|
|
@ -438,52 +438,6 @@ std::string kiwix::getCurrentDirectory()
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string kiwix::getDataDirectory()
|
|
||||||
{
|
|
||||||
// Try to get the dataDir from the `KIWIX_DATA_DIR` env var
|
|
||||||
#ifdef _WIN32
|
|
||||||
wchar_t* cDataDir = ::_wgetenv(L"KIWIX_DATA_DIR");
|
|
||||||
if (cDataDir != nullptr) {
|
|
||||||
return WideToUtf8(cDataDir);
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
char* cDataDir = ::getenv("KIWIX_DATA_DIR");
|
|
||||||
if (cDataDir != nullptr) {
|
|
||||||
return cDataDir;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Compute the dataDir from the user directory.
|
|
||||||
std::string dataDir;
|
|
||||||
#ifdef _WIN32
|
|
||||||
cDataDir = ::_wgetenv(L"APPDATA");
|
|
||||||
if (cDataDir == nullptr)
|
|
||||||
cDataDir = ::_wgetenv(L"USERPROFILE");
|
|
||||||
if (cDataDir != nullptr)
|
|
||||||
dataDir = WideToUtf8(cDataDir);
|
|
||||||
#else
|
|
||||||
cDataDir = ::getenv("XDG_DATA_HOME");
|
|
||||||
if (cDataDir != nullptr) {
|
|
||||||
dataDir = cDataDir;
|
|
||||||
} else {
|
|
||||||
cDataDir = ::getenv("HOME");
|
|
||||||
if (cDataDir != nullptr) {
|
|
||||||
dataDir = cDataDir;
|
|
||||||
dataDir = appendToDirectory(dataDir, ".local");
|
|
||||||
dataDir = appendToDirectory(dataDir, "share");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
if (!dataDir.empty()) {
|
|
||||||
dataDir = appendToDirectory(dataDir, "kiwix");
|
|
||||||
makeDirectory(dataDir);
|
|
||||||
return dataDir;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Let's use the currentDirectory
|
|
||||||
return getCurrentDirectory();
|
|
||||||
}
|
|
||||||
|
|
||||||
static std::map<std::string, std::string> extMimeTypes = {
|
static std::map<std::string, std::string> extMimeTypes = {
|
||||||
{ "html", "text/html"},
|
{ "html", "text/html"},
|
||||||
{ "htm", "text/html"},
|
{ "htm", "text/html"},
|
||||||
|
|
Loading…
Reference in New Issue