|
|
@ -561,11 +561,15 @@ short RssStream::readDoc(const QDomDocument& doc) { |
|
|
|
image = property.text(); |
|
|
|
image = property.text(); |
|
|
|
else if(property.tagName() == "item") { |
|
|
|
else if(property.tagName() == "item") { |
|
|
|
RssItem * item = new RssItem(this, property); |
|
|
|
RssItem * item = new RssItem(this, property); |
|
|
|
if(item->isValid() && !itemAlreadyExists(item->getTitle())) { |
|
|
|
if(item->isValid()) { |
|
|
|
|
|
|
|
bool already_exists = itemAlreadyExists(item->getTitle()); |
|
|
|
|
|
|
|
if(!already_exists) { |
|
|
|
(*this)[item->getTitle()] = item; |
|
|
|
(*this)[item->getTitle()] = item; |
|
|
|
|
|
|
|
} |
|
|
|
if(item->has_attachment()) { |
|
|
|
if(item->has_attachment()) { |
|
|
|
has_attachments = true; |
|
|
|
has_attachments = true; |
|
|
|
// Check if the item should be automatically downloaded
|
|
|
|
// Check if the item should be automatically downloaded
|
|
|
|
|
|
|
|
if(!already_exists || !(*this)[item->getTitle()]->isRead()) { |
|
|
|
FeedFilter * matching_filter = FeedFilters::getFeedFilters(url).matches(item->getTitle()); |
|
|
|
FeedFilter * matching_filter = FeedFilters::getFeedFilters(url).matches(item->getTitle()); |
|
|
|
if(matching_filter != 0) { |
|
|
|
if(matching_filter != 0) { |
|
|
|
// Download the torrent
|
|
|
|
// Download the torrent
|
|
|
@ -581,11 +585,13 @@ short RssStream::readDoc(const QDomDocument& doc) { |
|
|
|
BTSession->downloadUrlAndSkipDialog(item->getTorrentUrl()); |
|
|
|
BTSession->downloadUrlAndSkipDialog(item->getTorrentUrl()); |
|
|
|
} |
|
|
|
} |
|
|
|
// Item was downloaded, consider it as Read
|
|
|
|
// Item was downloaded, consider it as Read
|
|
|
|
item->setRead(); |
|
|
|
(*this)[item->getTitle()]->setRead(); |
|
|
|
// Clean up
|
|
|
|
// Clean up
|
|
|
|
delete matching_filter; |
|
|
|
delete matching_filter; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} else { |
|
|
|
} else { |
|
|
|
delete item; |
|
|
|
delete item; |
|
|
|
} |
|
|
|
} |
|
|
|