fail when downloading articles for invalid JSON

This commit is contained in:
Martin Rotter 2022-01-19 12:47:38 +01:00
parent 03d56b3054
commit 01b0332a30

View file

@ -2,6 +2,7 @@
#include "services/standard/jsonparser.h" #include "services/standard/jsonparser.h"
#include "exceptions/feedfetchexception.h"
#include "miscellaneous/textfactory.h" #include "miscellaneous/textfactory.h"
#include <QJsonArray> #include <QJsonArray>
@ -12,7 +13,14 @@ JsonParser::JsonParser(const QString& data) : m_jsonData(data) {}
QList<Message> JsonParser::messages() const { QList<Message> JsonParser::messages() const {
QList<Message> msgs; QList<Message> msgs;
QJsonDocument json = QJsonDocument::fromJson(m_jsonData.toUtf8()); QJsonParseError json_err;
QJsonDocument json = QJsonDocument::fromJson(m_jsonData.toUtf8(), &json_err);
if (json.isNull() && !json_err.errorString().isEmpty()) {
throw FeedFetchException(Feed::Status::ParsingError,
QObject::tr("JSON error '%1'").arg(json_err.errorString()));
}
QString global_author = json.object()[QSL("author")].toObject()[QSL("name")].toString(); QString global_author = json.object()[QSL("author")].toObject()[QSL("name")].toString();
if (global_author.isEmpty()) { if (global_author.isEmpty()) {