From b0b3acf1c2443caf4a7d3c02e9783fe23a7b8bf4 Mon Sep 17 00:00:00 2001 From: Martin Rotter Date: Mon, 10 Jan 2022 07:31:07 +0100 Subject: [PATCH] use some default mime type for enclosure when missing --- resources/desktop/com.github.rssguard.appdata.xml | 2 +- src/librssguard/network-web/cookiejar.cpp | 5 ++--- src/librssguard/services/standard/atomparser.cpp | 8 +++++++- src/librssguard/services/standard/definitions.h | 1 + src/librssguard/services/standard/feedparser.cpp | 7 ++++++- src/librssguard/services/standard/rssparser.cpp | 4 ++++ 6 files changed, 21 insertions(+), 6 deletions(-) diff --git a/resources/desktop/com.github.rssguard.appdata.xml b/resources/desktop/com.github.rssguard.appdata.xml index bb531f1df..9eae16302 100644 --- a/resources/desktop/com.github.rssguard.appdata.xml +++ b/resources/desktop/com.github.rssguard.appdata.xml @@ -26,7 +26,7 @@ https://github.com/sponsors/martinrotter - + none diff --git a/src/librssguard/network-web/cookiejar.cpp b/src/librssguard/network-web/cookiejar.cpp index 27ded4f9b..a62eafa19 100644 --- a/src/librssguard/network-web/cookiejar.cpp +++ b/src/librssguard/network-web/cookiejar.cpp @@ -26,10 +26,10 @@ CookieJar::CookieJar(QObject* parent) : QNetworkCookieJar(parent) { // When cookies change in WebEngine, then change in main cookie jar too. connect(m_webEngineCookies, &QWebEngineCookieStore::cookieAdded, this, [=](const QNetworkCookie& cookie) { - insertCookieInternal(cookie, false, true); + //insertCookieInternal(cookie, false, true); }); connect(m_webEngineCookies, &QWebEngineCookieStore::cookieRemoved, this, [=](const QNetworkCookie& cookie) { - deleteCookieInternal(cookie, false); + //deleteCookieInternal(cookie, false); }); #endif @@ -124,7 +124,6 @@ bool CookieJar::insertCookieInternal(const QNetworkCookie& cookie, bool notify_o #if defined(USE_WEBENGINE) if (notify_others) { - // NOTE: Make sync one-way for now, it crashes. //m_webEngineCookies->setCookie(cookie); } #else diff --git a/src/librssguard/services/standard/atomparser.cpp b/src/librssguard/services/standard/atomparser.cpp index 0880052bb..6f9e45314 100644 --- a/src/librssguard/services/standard/atomparser.cpp +++ b/src/librssguard/services/standard/atomparser.cpp @@ -100,7 +100,13 @@ Message AtomParser::extractMessage(const QDomElement& msg_element, const QDateTi QString attribute = link.attribute(QSL("rel")); if (attribute == QSL("enclosure")) { - new_message.m_enclosures.append(Enclosure(link.attribute(QSL("href")), link.attribute(QSL("type")))); + QString enclosure_type = link.attribute(QSL("type")); + + if (enclosure_type.isEmpty()) { + enclosure_type = QSL(DEFAULT_ENCLOSURE_MIME_TYPE); + } + + new_message.m_enclosures.append(Enclosure(link.attribute(QSL("href")), enclosure_type)); qDebugNN << LOGSEC_CORE << "Found enclosure" << QUOTE_W_SPACE(new_message.m_enclosures.last().m_url) diff --git a/src/librssguard/services/standard/definitions.h b/src/librssguard/services/standard/definitions.h index c5d9b1b32..ca83c539b 100644 --- a/src/librssguard/services/standard/definitions.h +++ b/src/librssguard/services/standard/definitions.h @@ -4,5 +4,6 @@ #define DEFAULT_FEED_ENCODING "UTF-8" #define DEFAULT_FEED_TYPE "RSS" #define FEED_INITIAL_OPML_PATTERN "feeds-%1.opml" +#define DEFAULT_ENCLOSURE_MIME_TYPE "image/jpg" #endif // STANDARD_DEFINITIONS_H diff --git a/src/librssguard/services/standard/feedparser.cpp b/src/librssguard/services/standard/feedparser.cpp index 2cd4890f7..571d29927 100644 --- a/src/librssguard/services/standard/feedparser.cpp +++ b/src/librssguard/services/standard/feedparser.cpp @@ -5,6 +5,7 @@ #include "exceptions/applicationexception.h" #include "miscellaneous/application.h" #include "network-web/webfactory.h" +#include "services/standard/definitions.h" #include #include @@ -60,6 +61,10 @@ QList FeedParser::mrssGetEnclosures(const QDomElement& msg_element) c QString url = elem_content.attribute(QSL("url")); QString type = elem_content.attribute(QSL("type")); + if (type.isEmpty()) { + type = QSL(DEFAULT_ENCLOSURE_MIME_TYPE); + } + if (!url.isEmpty() && !type.isEmpty()) { enclosures.append(Enclosure(url, type)); } @@ -72,7 +77,7 @@ QList FeedParser::mrssGetEnclosures(const QDomElement& msg_element) c QString url = elem_content.attribute(QSL("url")); if (!url.isEmpty()) { - enclosures.append(Enclosure(url, QSL("image/png"))); + enclosures.append(Enclosure(url, QSL(DEFAULT_ENCLOSURE_MIME_TYPE))); } } diff --git a/src/librssguard/services/standard/rssparser.cpp b/src/librssguard/services/standard/rssparser.cpp index 7a3e28f67..8eb9bd71d 100644 --- a/src/librssguard/services/standard/rssparser.cpp +++ b/src/librssguard/services/standard/rssparser.cpp @@ -73,6 +73,10 @@ Message RssParser::extractMessage(const QDomElement& msg_element, const QDateTim } if (!elem_enclosure.isEmpty()) { + if (elem_enclosure_type.isEmpty()) { + elem_enclosure_type = QSL(DEFAULT_ENCLOSURE_MIME_TYPE); + } + new_message.m_enclosures.append(Enclosure(elem_enclosure, elem_enclosure_type)); qDebugNN << LOGSEC_CORE << "Found enclosure"