mirror of
https://github.com/qbittorrent/qBittorrent
synced 2025-07-16 02:03:07 -07:00
Redesign main core classes.
This commit is contained in:
parent
60c0939e05
commit
d16d1fdb3a
152 changed files with 11366 additions and 8967 deletions
|
@ -31,7 +31,7 @@
|
|||
#include <QDebug>
|
||||
#include "rssfeed.h"
|
||||
#include "rssmanager.h"
|
||||
#include "qbtsession.h"
|
||||
#include "core/bittorrent/session.h"
|
||||
#include "rssfolder.h"
|
||||
#include "core/preferences.h"
|
||||
#include "core/qinisettings.h"
|
||||
|
@ -39,7 +39,8 @@
|
|||
#include "rssparser.h"
|
||||
#include "core/misc.h"
|
||||
#include "rssdownloadrulelist.h"
|
||||
#include "core/downloadthread.h"
|
||||
#include "core/net/downloadmanager.h"
|
||||
#include "core/net/downloadhandler.h"
|
||||
#include "core/fs_utils.h"
|
||||
#include "core/logger.h"
|
||||
|
||||
|
@ -60,15 +61,15 @@ RssFeed::RssFeed(RssManager* manager, RssFolder* parent, const QString& url):
|
|||
{
|
||||
qDebug() << Q_FUNC_INFO << m_url;
|
||||
// Listen for new RSS downloads
|
||||
connect(manager->rssDownloader(), SIGNAL(downloadFinished(QString,QString)), SLOT(handleFinishedDownload(QString,QString)));
|
||||
connect(manager->rssDownloader(), SIGNAL(downloadFailure(QString,QString)), SLOT(handleDownloadFailure(QString,QString)));
|
||||
connect(manager->rssParser(), SIGNAL(feedTitle(QString,QString)), SLOT(handleFeedTitle(QString,QString)));
|
||||
connect(manager->rssParser(), SIGNAL(newArticle(QString,QVariantHash)), SLOT(handleNewArticle(QString,QVariantHash)));
|
||||
connect(manager->rssParser(), SIGNAL(feedParsingFinished(QString,QString)), SLOT(handleFeedParsingFinished(QString,QString)));
|
||||
|
||||
// Download the RSS Feed icon
|
||||
m_iconUrl = iconUrl();
|
||||
manager->rssDownloader()->downloadUrl(m_iconUrl);
|
||||
Net::DownloadHandler *handler = Net::DownloadManager::instance()->downloadUrl(iconUrl());
|
||||
connect(handler, SIGNAL(downloadFinished(QString, QString)), this, SLOT(handleFinishedDownload(QString, QString)));
|
||||
connect(handler, SIGNAL(downloadFailed(QString, QString)), this, SLOT(handleDownloadFailure(QString, QString)));
|
||||
m_iconUrl = handler->url();
|
||||
|
||||
// Load old RSS articles
|
||||
loadItemsFromDisk();
|
||||
|
@ -159,12 +160,6 @@ void RssFeed::addArticle(const RssArticlePtr& article) {
|
|||
}
|
||||
}
|
||||
|
||||
QList<QNetworkCookie> RssFeed::feedCookies() const
|
||||
{
|
||||
QString feed_hostname = QUrl::fromEncoded(m_url.toUtf8()).host();
|
||||
return Preferences::instance()->getHostNameQNetworkCookies(feed_hostname);
|
||||
}
|
||||
|
||||
bool RssFeed::refresh()
|
||||
{
|
||||
if (m_loading) {
|
||||
|
@ -173,7 +168,10 @@ bool RssFeed::refresh()
|
|||
}
|
||||
m_loading = true;
|
||||
// Download the RSS again
|
||||
m_manager->rssDownloader()->downloadUrl(m_url, feedCookies());
|
||||
Net::DownloadHandler *handler = Net::DownloadManager::instance()->downloadUrl(m_url);
|
||||
connect(handler, SIGNAL(downloadFinished(QString, QString)), this, SLOT(handleFinishedDownload(QString, QString)));
|
||||
connect(handler, SIGNAL(downloadFailed(QString, QString)), this, SLOT(handleDownloadFailure(QString, QString)));
|
||||
m_url = handler->url(); // sync URL encoding
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -307,7 +305,7 @@ QString RssFeed::iconUrl() const
|
|||
}
|
||||
|
||||
// read and store the downloaded rss' informations
|
||||
void RssFeed::handleFinishedDownload(const QString& url, const QString& filePath)
|
||||
void RssFeed::handleFinishedDownload(const QString &url, const QString &filePath)
|
||||
{
|
||||
if (url == m_url) {
|
||||
qDebug() << Q_FUNC_INFO << "Successfully downloaded RSS feed at" << url;
|
||||
|
@ -320,10 +318,9 @@ void RssFeed::handleFinishedDownload(const QString& url, const QString& filePath
|
|||
}
|
||||
}
|
||||
|
||||
void RssFeed::handleDownloadFailure(const QString& url, const QString& error)
|
||||
void RssFeed::handleDownloadFailure(const QString &url, const QString &error)
|
||||
{
|
||||
if (url != m_url)
|
||||
return;
|
||||
if (url != m_url) return;
|
||||
|
||||
m_inErrorState = true;
|
||||
m_loading = false;
|
||||
|
@ -369,12 +366,17 @@ void RssFeed::downloadArticleTorrentIfMatching(RssDownloadRuleList* rules, const
|
|||
// Download the torrent
|
||||
const QString& torrent_url = article->torrentUrl();
|
||||
Logger::instance()->addMessage(tr("Automatically downloading %1 torrent from %2 RSS feed...").arg(article->title()).arg(displayName()));
|
||||
connect(QBtSession::instance(), SIGNAL(newDownloadedTorrentFromRss(QString)), article.data(), SLOT(handleTorrentDownloadSuccess(const QString&)), Qt::UniqueConnection);
|
||||
connect(BitTorrent::Session::instance(), SIGNAL(downloadFromUrlFinished(QString)), article.data(), SLOT(handleTorrentDownloadSuccess(const QString&)), Qt::UniqueConnection);
|
||||
connect(article.data(), SIGNAL(articleWasRead()), SLOT(handleArticleStateChanged()), Qt::UniqueConnection);
|
||||
if (torrent_url.startsWith("magnet:", Qt::CaseInsensitive))
|
||||
QBtSession::instance()->addMagnetSkipAddDlg(torrent_url, matching_rule->savePath(), matching_rule->label(), matching_rule->addPaused());
|
||||
else
|
||||
QBtSession::instance()->downloadUrlAndSkipDialog(torrent_url, matching_rule->savePath(), matching_rule->label(), feedCookies(), matching_rule->addPaused());
|
||||
|
||||
BitTorrent::AddTorrentParams params;
|
||||
params.savePath = matching_rule->savePath();
|
||||
params.label = matching_rule->label();
|
||||
if (matching_rule->addPaused() == RssDownloadRule::ALWAYS_PAUSED)
|
||||
params.addPaused = TriStateBool::True;
|
||||
else if (matching_rule->addPaused() == RssDownloadRule::NEVER_PAUSED)
|
||||
params.addPaused = TriStateBool::False;
|
||||
BitTorrent::Session::instance()->addTorrent(torrent_url, params);
|
||||
}
|
||||
|
||||
void RssFeed::recheckRssItemsForDownload()
|
||||
|
@ -426,7 +428,8 @@ void RssFeed::handleFeedParsingFinished(const QString& feedUrl, const QString& e
|
|||
saveItemsToDisk();
|
||||
}
|
||||
|
||||
void RssFeed::handleArticleStateChanged() {
|
||||
void RssFeed::handleArticleStateChanged()
|
||||
{
|
||||
m_manager->forwardFeedInfosChanged(m_url, displayName(), m_unreadCount);
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue