siteamps discovery is optional because it often takes long time for many websites (sitemaps can be huge)

This commit is contained in:
Martin Rotter 2023-11-01 08:24:53 +01:00
parent 4057add3c2
commit 9eb41f7d61
5 changed files with 24 additions and 6 deletions

View File

@ -158,9 +158,15 @@ QList<StandardFeed*> FormDiscoverFeeds::discoverFeedsWithParser(const FeedParser
void FormDiscoverFeeds::discoverFeeds() { void FormDiscoverFeeds::discoverFeeds() {
QString url = m_ui.m_txtUrl->lineEdit()->text(); QString url = m_ui.m_txtUrl->lineEdit()->text();
bool sitemap_discover = m_ui.m_cbDiscoverSitemaps->isChecked();
std::function<QList<StandardFeed*>(const FeedParser*)> func = [=](const FeedParser* parser) -> QList<StandardFeed*> { std::function<QList<StandardFeed*>(const FeedParser*)> func = [=](const FeedParser* parser) -> QList<StandardFeed*> {
return discoverFeedsWithParser(parser, url); if (!sitemap_discover && dynamic_cast<const SitemapParser*>(parser) != nullptr) {
return {};
}
else {
return discoverFeedsWithParser(parser, url);
}
}; };
std::function<QList<StandardFeed*>(QList<StandardFeed*>&, const QList<StandardFeed*>&)> reducer = std::function<QList<StandardFeed*>(QList<StandardFeed*>&, const QList<StandardFeed*>&)> reducer =

View File

@ -26,7 +26,7 @@ class DiscoveredFeedsModel : public AccountCheckModel {
virtual int columnCount(const QModelIndex& parent) const; virtual int columnCount(const QModelIndex& parent) const;
virtual QVariant data(const QModelIndex& index, int role) const; virtual QVariant data(const QModelIndex& index, int role) const;
RootItem* removeItem(RootItem *it); RootItem* removeItem(RootItem* it);
RootItem* removeItem(const QModelIndex& idx); RootItem* removeItem(const QModelIndex& idx);
}; };

View File

@ -7,7 +7,7 @@
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>593</width> <width>593</width>
<height>360</height> <height>394</height>
</rect> </rect>
</property> </property>
<property name="windowTitle"> <property name="windowTitle">
@ -46,6 +46,13 @@
</layout> </layout>
</item> </item>
<item row="1" column="0" colspan="2"> <item row="1" column="0" colspan="2">
<widget class="QCheckBox" name="m_cbDiscoverSitemaps">
<property name="text">
<string>Discover Sitemaps too (can take some time for bigger websites)</string>
</property>
</widget>
</item>
<item row="2" column="0" colspan="2">
<widget class="QProgressBar" name="m_pbDiscovery"> <widget class="QProgressBar" name="m_pbDiscovery">
<property name="maximumSize"> <property name="maximumSize">
<size> <size>
@ -58,7 +65,7 @@
</property> </property>
</widget> </widget>
</item> </item>
<item row="2" column="0" colspan="2"> <item row="3" column="0" colspan="2">
<widget class="QGroupBox" name="m_gbFeeds"> <widget class="QGroupBox" name="m_gbFeeds">
<property name="sizePolicy"> <property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Preferred"> <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
@ -209,7 +216,7 @@
</layout> </layout>
</widget> </widget>
</item> </item>
<item row="3" column="0" colspan="2"> <item row="4" column="0" colspan="2">
<widget class="QDialogButtonBox" name="m_buttonBox"> <widget class="QDialogButtonBox" name="m_buttonBox">
<property name="orientation"> <property name="orientation">
<enum>Qt::Horizontal</enum> <enum>Qt::Horizontal</enum>

View File

@ -45,6 +45,11 @@ QList<StandardFeed*> FeedParser::discoverFeeds(ServiceRoot* root, const QUrl& ur
return {}; return {};
} }
QPair<StandardFeed*, QList<IconLocation>> FeedParser::guessFeed(const QByteArray& content,
const QString& content_type) const {
return {};
}
QString FeedParser::xmlMessageRawContents(const QDomElement& msg_element) const { QString FeedParser::xmlMessageRawContents(const QDomElement& msg_element) const {
QString raw_contents; QString raw_contents;
QTextStream str(&raw_contents); QTextStream str(&raw_contents);

View File

@ -24,7 +24,7 @@ class FeedParser {
// Guesses feed. // Guesses feed.
virtual QPair<StandardFeed*, QList<IconLocation>> guessFeed(const QByteArray& content, virtual QPair<StandardFeed*, QList<IconLocation>> guessFeed(const QByteArray& content,
const QString& content_type) const = 0; const QString& content_type) const;
// Returns list of all messages from the feed. // Returns list of all messages from the feed.
virtual QList<Message> messages(); virtual QList<Message> messages();