mirror of
https://github.com/qbittorrent/qBittorrent.git
synced 2025-12-23 00:47:21 -06:00
Cookies support on WebUI when downloading torrent from a URL. Modified download and upload windows to allow autocompletion of browsers.
Fixed the spinner in the WebUI upload page. Modified height of the WebUI download page. Fixed all the JavaScript functions for download and upload pages.
This commit is contained in:
committed by
sledgehammer999
parent
e17f10ae6b
commit
c5d807ef65
@@ -44,6 +44,7 @@
|
||||
#include "core/bittorrent/trackerentry.h"
|
||||
#include "core/bittorrent/torrentinfo.h"
|
||||
#include "core/bittorrent/torrenthandle.h"
|
||||
#include "core/net/downloadmanager.h"
|
||||
#include "websessiondata.h"
|
||||
#include "webapplication.h"
|
||||
|
||||
@@ -112,6 +113,7 @@ QMap<QString, QMap<QString, WebApplication::Action> > WebApplication::initialize
|
||||
ADD_ACTION(command, bottomPrio);
|
||||
ADD_ACTION(command, recheck);
|
||||
ADD_ACTION(command, setLabel);
|
||||
ADD_ACTION(command, getSavePath);
|
||||
ADD_ACTION(version, api);
|
||||
ADD_ACTION(version, api_min);
|
||||
ADD_ACTION(version, qbittorrent);
|
||||
@@ -306,9 +308,33 @@ void WebApplication::action_command_shutdown()
|
||||
void WebApplication::action_command_download()
|
||||
{
|
||||
CHECK_URI(0);
|
||||
CHECK_PARAMETERS("urls");
|
||||
QString urls = request().posts["urls"];
|
||||
QStringList list = urls.split('\n');
|
||||
QString savepath = request().posts["savepath"];
|
||||
QString label = request().posts["label"];
|
||||
QString cookie = request().posts["cookie"];
|
||||
QList<QNetworkCookie> cookies;
|
||||
if (!cookie.isEmpty()) {
|
||||
|
||||
QStringList cookiesStr = cookie.split("; ");
|
||||
foreach (QString cookieStr, cookiesStr) {
|
||||
cookieStr = cookieStr.trimmed();
|
||||
int index = cookieStr.indexOf('=');
|
||||
if (index > 1) {
|
||||
QByteArray name = cookieStr.left(index).toLatin1();
|
||||
QByteArray value = cookieStr.right(cookieStr.length() - index - 1).toLatin1();
|
||||
QNetworkCookie c(name, value);
|
||||
cookies << c;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
savepath = savepath.trimmed();
|
||||
label = label.trimmed();
|
||||
|
||||
BitTorrent::AddTorrentParams params;
|
||||
params.savePath = savepath;
|
||||
params.label = label;
|
||||
|
||||
foreach (QString url, list) {
|
||||
url = url.trimmed();
|
||||
@@ -320,7 +346,9 @@ void WebApplication::action_command_download()
|
||||
if ((url.size() == 40 && !url.contains(QRegExp("[^0-9A-Fa-f]")))
|
||||
|| (url.size() == 32 && !url.contains(QRegExp("[^2-7A-Za-z]"))))
|
||||
url = "magnet:?xt=urn:btih:" + url;
|
||||
BitTorrent::Session::instance()->addTorrent(url);
|
||||
|
||||
Net::DownloadManager::instance()->setCookiesFromUrl(cookies, QUrl::fromEncoded(url.toUtf8()));
|
||||
BitTorrent::Session::instance()->addTorrent(url, params);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -329,6 +357,11 @@ void WebApplication::action_command_upload()
|
||||
{
|
||||
qDebug() << Q_FUNC_INFO;
|
||||
CHECK_URI(0);
|
||||
QString savepath = request().posts["savepath"];
|
||||
QString label = request().posts["label"];
|
||||
|
||||
savepath = savepath.trimmed();
|
||||
label = label.trimmed();
|
||||
|
||||
foreach(const Http::UploadedFile& torrent, request().files) {
|
||||
QString filePath = saveTmpFile(torrent.data);
|
||||
@@ -340,7 +373,10 @@ void WebApplication::action_command_upload()
|
||||
print(QObject::tr("Error: '%1' is not a valid torrent file.\n").arg(torrent.filename), Http::CONTENT_TYPE_TXT);
|
||||
}
|
||||
else {
|
||||
if (!BitTorrent::Session::instance()->addTorrent(torrentInfo)) {
|
||||
BitTorrent::AddTorrentParams params;
|
||||
params.savePath = savepath;
|
||||
params.label = label;
|
||||
if (!BitTorrent::Session::instance()->addTorrent(torrentInfo, params)) {
|
||||
status(500, "Internal Server Error");
|
||||
print(QObject::tr("Error: Could not add torrent to session."), Http::CONTENT_TYPE_TXT);
|
||||
}
|
||||
@@ -685,6 +721,12 @@ void WebApplication::action_command_setLabel()
|
||||
}
|
||||
}
|
||||
|
||||
void WebApplication::action_command_getSavePath()
|
||||
{
|
||||
CHECK_URI(0);
|
||||
print(Preferences::instance()->getSavePath());
|
||||
}
|
||||
|
||||
bool WebApplication::isPublicScope()
|
||||
{
|
||||
return (scope_ == DEFAULT_SCOPE || scope_ == VERSION_INFO);
|
||||
|
||||
Reference in New Issue
Block a user