|
|
@ -376,7 +376,6 @@ void RssManager::saveStreamList(){ |
|
|
|
/** RssStream **/ |
|
|
|
/** RssStream **/ |
|
|
|
|
|
|
|
|
|
|
|
RssStream::RssStream(RssFolder* parent, RssManager *rssmanager, Bittorrent *BTSession, QString _url): parent(parent), rssmanager(rssmanager), BTSession(BTSession), alias(""), iconPath(":/Icons/rss16.png"), refreshed(false), downloadFailure(false), currently_loading(false) { |
|
|
|
RssStream::RssStream(RssFolder* parent, RssManager *rssmanager, Bittorrent *BTSession, QString _url): parent(parent), rssmanager(rssmanager), BTSession(BTSession), alias(""), iconPath(":/Icons/rss16.png"), refreshed(false), downloadFailure(false), currently_loading(false) { |
|
|
|
has_attachments = false; |
|
|
|
|
|
|
|
qDebug("RSSStream constructed"); |
|
|
|
qDebug("RSSStream constructed"); |
|
|
|
QSettings qBTRSS("qBittorrent", "qBittorrent-rss"); |
|
|
|
QSettings qBTRSS("qBittorrent", "qBittorrent-rss"); |
|
|
|
url = QUrl(_url).toString(); |
|
|
|
url = QUrl(_url).toString(); |
|
|
@ -388,8 +387,6 @@ RssStream::RssStream(RssFolder* parent, RssManager *rssmanager, Bittorrent *BTSe |
|
|
|
RssItem *rss_item = RssItem::fromHash(this, item); |
|
|
|
RssItem *rss_item = RssItem::fromHash(this, item); |
|
|
|
if(rss_item->isValid()) { |
|
|
|
if(rss_item->isValid()) { |
|
|
|
(*this)[rss_item->getTitle()] = rss_item; |
|
|
|
(*this)[rss_item->getTitle()] = rss_item; |
|
|
|
if(rss_item->has_attachment()) |
|
|
|
|
|
|
|
has_attachments = true; |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
@ -584,29 +581,31 @@ short RssStream::readDoc(const QDomDocument& doc) { |
|
|
|
delete item; |
|
|
|
delete item; |
|
|
|
item = this->value(title); |
|
|
|
item = this->value(title); |
|
|
|
} |
|
|
|
} |
|
|
|
if(item->has_attachment()) { |
|
|
|
QString torrent_url; |
|
|
|
has_attachments = true; |
|
|
|
if(item->has_attachment()) |
|
|
|
// Check if the item should be automatically downloaded
|
|
|
|
torrent_url = item->getTorrentUrl(); |
|
|
|
if(!already_exists || !(*this)[item->getTitle()]->isRead()) { |
|
|
|
else |
|
|
|
FeedFilter * matching_filter = FeedFilters::getFeedFilters(url).matches(item->getTitle()); |
|
|
|
torrent_url = item->getLink(); |
|
|
|
if(matching_filter != 0) { |
|
|
|
// Check if the item should be automatically downloaded
|
|
|
|
// Download the torrent
|
|
|
|
if(!already_exists || !(*this)[item->getTitle()]->isRead()) { |
|
|
|
BTSession->addConsoleMessage(tr("Automatically downloading %1 torrent from %2 RSS feed...").arg(item->getTitle()).arg(getName())); |
|
|
|
FeedFilter * matching_filter = FeedFilters::getFeedFilters(url).matches(item->getTitle()); |
|
|
|
if(matching_filter->isValid()) { |
|
|
|
if(matching_filter != 0) { |
|
|
|
QString save_path = matching_filter->getSavePath(); |
|
|
|
// Download the torrent
|
|
|
|
if(save_path.isEmpty()) |
|
|
|
BTSession->addConsoleMessage(tr("Automatically downloading %1 torrent from %2 RSS feed...").arg(item->getTitle()).arg(getName())); |
|
|
|
BTSession->downloadUrlAndSkipDialog(item->getTorrentUrl()); |
|
|
|
if(matching_filter->isValid()) { |
|
|
|
else |
|
|
|
QString save_path = matching_filter->getSavePath(); |
|
|
|
BTSession->downloadUrlAndSkipDialog(item->getTorrentUrl(), save_path); |
|
|
|
if(save_path.isEmpty()) |
|
|
|
} else { |
|
|
|
BTSession->downloadUrlAndSkipDialog(torrent_url); |
|
|
|
// All torrents are downloaded from this feed
|
|
|
|
else |
|
|
|
BTSession->downloadUrlAndSkipDialog(item->getTorrentUrl()); |
|
|
|
BTSession->downloadUrlAndSkipDialog(torrent_url, save_path); |
|
|
|
} |
|
|
|
} else { |
|
|
|
// Item was downloaded, consider it as Read
|
|
|
|
// All torrents are downloaded from this feed
|
|
|
|
(*this)[item->getTitle()]->setRead(); |
|
|
|
BTSession->downloadUrlAndSkipDialog(torrent_url); |
|
|
|
// Clean up
|
|
|
|
|
|
|
|
delete matching_filter; |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
// Item was downloaded, consider it as Read
|
|
|
|
|
|
|
|
(*this)[item->getTitle()]->setRead(); |
|
|
|
|
|
|
|
// Clean up
|
|
|
|
|
|
|
|
delete matching_filter; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|