From 8a69c11a551875daa6b6043e307e8557299a4a67 Mon Sep 17 00:00:00 2001 From: Martin Rotter Date: Fri, 14 Feb 2025 14:29:30 +0100 Subject: [PATCH] testing and some small enhancement for http/429 stuff --- resources/skins/nudus-dark/qt_style.qss | 4 ++++ .../skins/nudus-dark/qt_style_forced.qss | 24 +++++++++++++++++++ src/librssguard/core/feeddownloader.cpp | 3 ++- .../network-web/networkfactory.cpp | 8 +++++-- 4 files changed, 36 insertions(+), 3 deletions(-) create mode 100644 resources/skins/nudus-dark/qt_style_forced.qss diff --git a/resources/skins/nudus-dark/qt_style.qss b/resources/skins/nudus-dark/qt_style.qss index e69de29bb..2a963a3a0 100644 --- a/resources/skins/nudus-dark/qt_style.qss +++ b/resources/skins/nudus-dark/qt_style.qss @@ -0,0 +1,4 @@ +QProgressBar { + background-color: palette(highlight); + color: palette(window); +} \ No newline at end of file diff --git a/resources/skins/nudus-dark/qt_style_forced.qss b/resources/skins/nudus-dark/qt_style_forced.qss new file mode 100644 index 000000000..57152d57e --- /dev/null +++ b/resources/skins/nudus-dark/qt_style_forced.qss @@ -0,0 +1,24 @@ +QListWidget, +QScrollArea { + border: 1px solid palette(light); +} + + +QPlainTextEdit:focus { + border: 1px solid palette(highlight); +} + +QToolTip { + background-color: palette(window); + color: palette(text); + border: 1px solid palette(highlight); + border-radius: 2px; +} + +QSplitter::handle { + background: palette(light); +} + +QStatusBar::item { + border: none; +} diff --git a/src/librssguard/core/feeddownloader.cpp b/src/librssguard/core/feeddownloader.cpp index 612d57fea..b308f5811 100644 --- a/src/librssguard/core/feeddownloader.cpp +++ b/src/librssguard/core/feeddownloader.cpp @@ -232,7 +232,8 @@ void FeedDownloader::updateOneFeed(ServiceRoot* acc, qWarningNN << LOGSEC_CORE << "Feed with source" << QUOTE_W_SPACE(feed->source()) << "was signalled temporarily being down. Returning no articles for now."; - feed->setStatus(Feed::Status::NetworkError, tr("feed is in network cooldown mode")); + feed->setStatus(Feed::Status::NetworkError, + tr("feed is in network cooldown mode due to making too many network requests")); if (update_feed_list) { acc->itemChanged({feed}); diff --git a/src/librssguard/network-web/networkfactory.cpp b/src/librssguard/network-web/networkfactory.cpp index 9febcdfaf..da7a7daa8 100644 --- a/src/librssguard/network-web/networkfactory.cpp +++ b/src/librssguard/network-web/networkfactory.cpp @@ -14,16 +14,20 @@ #include #include +#define SECS_WHEN_RETRYAFTER_MISSING 120 + QDateTime NetworkFactory::extractRetryAfter(const QString& retry_after_value) { if (retry_after_value.simplified().isEmpty()) { - return {}; + return QDateTime::currentDateTimeUtc().addSecs(SECS_WHEN_RETRYAFTER_MISSING); } bool is_int = false; int seconds = retry_after_value.toInt(&is_int, 10); if (is_int) { - return QDateTime::currentDateTimeUtc().addSecs(seconds); + // Some websites (Reddit) somehow return "0" Retry-After header value. + // In that case make it at least two minutes to wait. + return QDateTime::currentDateTimeUtc().addSecs(seconds <= 0 ? SECS_WHEN_RETRYAFTER_MISSING : seconds); } return QDateTime::fromString(retry_after_value.simplified().replace(QSL("GMT"), QSL("+0000")),