From b19450932aade44813455bca0703b3638bc7ffe7 Mon Sep 17 00:00:00 2001 From: Martin Rotter Date: Tue, 16 Feb 2021 13:44:03 +0100 Subject: [PATCH] save --- .../services/feedly/feedlynetwork.cpp | 26 ++++++++++++++++--- .../services/feedly/feedlynetwork.h | 2 +- 2 files changed, 24 insertions(+), 4 deletions(-) diff --git a/src/librssguard/services/feedly/feedlynetwork.cpp b/src/librssguard/services/feedly/feedlynetwork.cpp index a56e6ba9d..65aec3a1e 100755 --- a/src/librssguard/services/feedly/feedlynetwork.cpp +++ b/src/librssguard/services/feedly/feedlynetwork.cpp @@ -83,7 +83,7 @@ QList FeedlyNetwork::streamContents(const QString& stream_id) { {}, m_service->networkProxy()); - messages += decodeStreamContents(output); + messages += decodeStreamContents(output, continuation); } while (!continuation.isEmpty()); @@ -91,8 +91,28 @@ QList FeedlyNetwork::streamContents(const QString& stream_id) { return messages; } -QList FeedlyNetwork::decodeStreamContents(const QByteArray& stream_contents) const { - return {}; +QList FeedlyNetwork::decodeStreamContents(const QByteArray& stream_contents, QString& continuation) const { + QList messages; + QJsonDocument json = QJsonDocument::fromJson(stream_contents); + + continuation = json.object()["continuation"].toString(); + + for (const QJsonValue& entry : json.object()["items"].toArray()) { + const QJsonObject& entry_obj = entry.toObject(); + Message message; + + message.m_title = entry_obj["title"].toString(); + message.m_author = entry_obj["author"].toString(); + message.m_contents = entry_obj["content"].toObject()["content"].toString(); + message.m_createdFromFeed = true; + message.m_created = QDateTime::fromMSecsSinceEpoch(entry_obj["published"].toVariant().toLongLong(), + Qt::TimeSpec::UTC); + message.m_customId = entry_obj["id"].toString(); + + messages.append(message); + } + + return messages; } RootItem* FeedlyNetwork::collections(bool obtain_icons) { diff --git a/src/librssguard/services/feedly/feedlynetwork.h b/src/librssguard/services/feedly/feedlynetwork.h index e1a3bd51f..93d73e28a 100755 --- a/src/librssguard/services/feedly/feedlynetwork.h +++ b/src/librssguard/services/feedly/feedlynetwork.h @@ -61,7 +61,7 @@ class FeedlyNetwork : public QObject { QString fullUrl(Service service) const; QString bearer() const; - QList decodeStreamContents(const QByteArray& stream_contents) const; + QList decodeStreamContents(const QByteArray& stream_contents, QString& continuation) const; RootItem* decodeCollections(const QByteArray& json, bool obtain_icons, const QNetworkProxy& proxy, int timeout = 0) const; QPair bearerHeader(const QString& bearer) const;