diff --git a/src/librssguard/services/standard/gui/formdiscoverfeeds.cpp b/src/librssguard/services/standard/gui/formdiscoverfeeds.cpp index f86915b08..79ece916b 100644 --- a/src/librssguard/services/standard/gui/formdiscoverfeeds.cpp +++ b/src/librssguard/services/standard/gui/formdiscoverfeeds.cpp @@ -158,9 +158,15 @@ QList FormDiscoverFeeds::discoverFeedsWithParser(const FeedParser void FormDiscoverFeeds::discoverFeeds() { QString url = m_ui.m_txtUrl->lineEdit()->text(); + bool sitemap_discover = m_ui.m_cbDiscoverSitemaps->isChecked(); std::function(const FeedParser*)> func = [=](const FeedParser* parser) -> QList { - return discoverFeedsWithParser(parser, url); + if (!sitemap_discover && dynamic_cast(parser) != nullptr) { + return {}; + } + else { + return discoverFeedsWithParser(parser, url); + } }; std::function(QList&, const QList&)> reducer = diff --git a/src/librssguard/services/standard/gui/formdiscoverfeeds.h b/src/librssguard/services/standard/gui/formdiscoverfeeds.h index 2832a4ab4..249cf7e34 100644 --- a/src/librssguard/services/standard/gui/formdiscoverfeeds.h +++ b/src/librssguard/services/standard/gui/formdiscoverfeeds.h @@ -26,7 +26,7 @@ class DiscoveredFeedsModel : public AccountCheckModel { virtual int columnCount(const QModelIndex& parent) const; virtual QVariant data(const QModelIndex& index, int role) const; - RootItem* removeItem(RootItem *it); + RootItem* removeItem(RootItem* it); RootItem* removeItem(const QModelIndex& idx); }; diff --git a/src/librssguard/services/standard/gui/formdiscoverfeeds.ui b/src/librssguard/services/standard/gui/formdiscoverfeeds.ui index 7e131b02c..a64735027 100644 --- a/src/librssguard/services/standard/gui/formdiscoverfeeds.ui +++ b/src/librssguard/services/standard/gui/formdiscoverfeeds.ui @@ -7,7 +7,7 @@ 0 0 593 - 360 + 394 @@ -46,6 +46,13 @@ + + + Discover Sitemaps too (can take some time for bigger websites) + + + + @@ -58,7 +65,7 @@ - + @@ -209,7 +216,7 @@ - + Qt::Horizontal diff --git a/src/librssguard/services/standard/parsers/feedparser.cpp b/src/librssguard/services/standard/parsers/feedparser.cpp index e4aad0751..07ae3ba44 100644 --- a/src/librssguard/services/standard/parsers/feedparser.cpp +++ b/src/librssguard/services/standard/parsers/feedparser.cpp @@ -45,6 +45,11 @@ QList FeedParser::discoverFeeds(ServiceRoot* root, const QUrl& ur return {}; } +QPair> FeedParser::guessFeed(const QByteArray& content, + const QString& content_type) const { + return {}; +} + QString FeedParser::xmlMessageRawContents(const QDomElement& msg_element) const { QString raw_contents; QTextStream str(&raw_contents); diff --git a/src/librssguard/services/standard/parsers/feedparser.h b/src/librssguard/services/standard/parsers/feedparser.h index 4dcbddf7e..fe693a154 100644 --- a/src/librssguard/services/standard/parsers/feedparser.h +++ b/src/librssguard/services/standard/parsers/feedparser.h @@ -24,7 +24,7 @@ class FeedParser { // Guesses feed. virtual QPair> guessFeed(const QByteArray& content, - const QString& content_type) const = 0; + const QString& content_type) const; // Returns list of all messages from the feed. virtual QList messages();