mirror of
https://github.com/qbittorrent/qBittorrent
synced 2025-07-07 13:41:26 -07:00
parent
42b87963fd
commit
a1af077889
2 changed files with 35 additions and 0 deletions
|
@ -36,6 +36,7 @@
|
|||
|
||||
#include <QCoreApplication>
|
||||
#include <QDebug>
|
||||
#include <QDir>
|
||||
#include <QJsonArray>
|
||||
#include <QJsonDocument>
|
||||
#include <QJsonObject>
|
||||
|
@ -62,6 +63,7 @@
|
|||
#include "base/utils/password.h"
|
||||
#include "base/utils/string.h"
|
||||
#include "base/version.h"
|
||||
#include "apierror.h"
|
||||
#include "../webapplication.h"
|
||||
|
||||
using namespace std::chrono_literals;
|
||||
|
@ -1129,6 +1131,38 @@ void AppController::sendTestEmailAction()
|
|||
app()->sendTestEmail();
|
||||
}
|
||||
|
||||
|
||||
void AppController::getDirectoryContentAction()
|
||||
{
|
||||
requireParams({u"dirPath"_s});
|
||||
|
||||
const QString dirPath = params().value(u"dirPath"_s);
|
||||
if (dirPath.isEmpty() || dirPath.startsWith(u':'))
|
||||
throw APIError(APIErrorType::BadParams, tr("Invalid directory path"));
|
||||
|
||||
const QDir dir {dirPath};
|
||||
if (!dir.isAbsolute())
|
||||
throw APIError(APIErrorType::BadParams, tr("Invalid directory path"));
|
||||
if (!dir.exists())
|
||||
throw APIError(APIErrorType::NotFound, tr("Directory does not exist"));
|
||||
|
||||
const QString visibility = params().value(u"mode"_s, u"all"_s);
|
||||
|
||||
const auto parseDirectoryContentMode = [](const QString &visibility) -> QDir::Filters
|
||||
{
|
||||
if (visibility == u"dirs")
|
||||
return QDir::Dirs;
|
||||
if (visibility == u"files")
|
||||
return QDir::Files;
|
||||
if (visibility == u"all")
|
||||
return (QDir::Dirs | QDir::Files);
|
||||
throw APIError(APIErrorType::BadParams, tr("Invalid mode, allowed values: %1").arg(u"all, dirs, files"_s));
|
||||
};
|
||||
|
||||
const QStringList dirs = dir.entryList(QDir::NoDotAndDotDot | parseDirectoryContentMode(visibility));
|
||||
setResult(QJsonArray::fromStringList(dirs));
|
||||
}
|
||||
|
||||
void AppController::networkInterfaceListAction()
|
||||
{
|
||||
QJsonArray ifaceList;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue