mirror of
https://github.com/qbittorrent/qBittorrent.git
synced 2025-01-06 10:12:04 +00:00
Support custom save path / label for RSS feeds using magnet links
This commit is contained in:
parent
2eae22ac06
commit
74079b2c86
@ -952,7 +952,17 @@ QTorrentHandle QBtSession::addMagnetUri(QString magnet_uri, bool resumed, bool f
|
||||
add_torrent_params p = initializeAddTorrentParams(hash);
|
||||
|
||||
// Get save path
|
||||
const QString savePath(getSavePath(hash, fromScanDir, filePath));
|
||||
QString savePath;
|
||||
if (!resumed && savepathLabel_fromurl.contains(magnet_uri)) {
|
||||
QPair<QString, QString> savePath_label = savepathLabel_fromurl.take(magnet_uri);
|
||||
if(!savePath_label.first.isEmpty())
|
||||
savePath = savePath_label.first;
|
||||
// Remember label
|
||||
if(!savePath_label.second.isEmpty())
|
||||
TorrentTempData::setLabel(hash, savePath_label.second);
|
||||
}
|
||||
if (savePath.isEmpty())
|
||||
savePath = getSavePath(hash, false);
|
||||
if (!defaultTempPath.isEmpty() && !TorrentPersistentData::isSeed(hash) && resumed) {
|
||||
qDebug("addMagnetURI: Temp folder is enabled.");
|
||||
QString torrent_tmp_path = defaultTempPath.replace("\\", "/");
|
||||
@ -2647,14 +2657,17 @@ void QBtSession::addMagnetInteractive(const QString& uri)
|
||||
emit newMagnetLink(uri);
|
||||
}
|
||||
|
||||
void QBtSession::addMagnetSkipAddDlg(const QString& uri) {
|
||||
void QBtSession::addMagnetSkipAddDlg(const QString& uri, const QString& save_path, const QString& label) {
|
||||
if (!save_path.isEmpty() || !label.isEmpty())
|
||||
savepathLabel_fromurl[uri] = qMakePair(save_path, label);
|
||||
addMagnetUri(uri, false);
|
||||
}
|
||||
|
||||
void QBtSession::downloadUrlAndSkipDialog(QString url, QString save_path, QString label) {
|
||||
//emit aboutToDownloadFromUrl(url);
|
||||
const QUrl qurl = QUrl::fromEncoded(url.toUtf8());
|
||||
savepathLabel_fromurl[qurl] = qMakePair(save_path, label);
|
||||
if (!save_path.isEmpty() || !label.isEmpty())
|
||||
savepathLabel_fromurl[qurl] = qMakePair(save_path, label);
|
||||
url_skippingDlg << qurl;
|
||||
// Launch downloader thread
|
||||
downloader->downloadTorrentUrl(url);
|
||||
|
@ -161,7 +161,7 @@ public slots:
|
||||
#endif
|
||||
void addPeerBanMessage(QString msg, bool from_ipfilter);
|
||||
void processDownloadedFile(QString, QString);
|
||||
void addMagnetSkipAddDlg(const QString& uri);
|
||||
void addMagnetSkipAddDlg(const QString& uri, const QString& save_path = QString(), const QString& label = QString());
|
||||
void addMagnetInteractive(const QString& uri);
|
||||
void downloadFromURLList(const QStringList& urls);
|
||||
void configureSession();
|
||||
|
@ -296,7 +296,7 @@ void RssFeed::downloadMatchingArticleTorrents() {
|
||||
QString torrent_url = article->hasAttachment() ? article->torrentUrl() : article->link();
|
||||
QBtSession::instance()->addConsoleMessage(tr("Automatically downloading %1 torrent from %2 RSS feed...").arg(article->title()).arg(displayName()));
|
||||
if (torrent_url.startsWith("magnet:", Qt::CaseInsensitive))
|
||||
QBtSession::instance()->addMagnetSkipAddDlg(torrent_url);
|
||||
QBtSession::instance()->addMagnetSkipAddDlg(torrent_url, matching_rule.savePath(), matching_rule.label());
|
||||
else
|
||||
QBtSession::instance()->downloadUrlAndSkipDialog(torrent_url, matching_rule->savePath(), matching_rule->label());
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user