mirror of
https://github.com/martinrotter/rssguard.git
synced 2025-02-06 20:33:38 +01:00
Remove direct Downloader usages from inoreader.
This commit is contained in:
parent
9422cdea54
commit
64aa45a7dc
@ -75,58 +75,67 @@ void InoreaderNetworkFactory::setUsername(const QString& username) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
RootItem* InoreaderNetworkFactory::feedsCategories(bool obtain_icons) {
|
RootItem* InoreaderNetworkFactory::feedsCategories(bool obtain_icons) {
|
||||||
Downloader downloader;
|
|
||||||
QEventLoop loop;
|
|
||||||
QString bearer = m_oauth2->bearer().toLocal8Bit();
|
QString bearer = m_oauth2->bearer().toLocal8Bit();
|
||||||
|
|
||||||
if (bearer.isEmpty()) {
|
if (bearer.isEmpty()) {
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
downloader.appendRawHeader(QString(HTTP_HEADERS_AUTHORIZATION).toLocal8Bit(), bearer.toLocal8Bit());
|
QByteArray output_labels;
|
||||||
|
auto result_labels = NetworkFactory::performNetworkOperation(INOREADER_API_LIST_LABELS,
|
||||||
|
qApp->settings()->value(GROUP(Feeds), SETTING(Feeds::UpdateTimeout)).toInt(),
|
||||||
|
{},
|
||||||
|
output_labels,
|
||||||
|
QNetworkAccessManager::Operation::GetOperation,
|
||||||
|
{ { QString(HTTP_HEADERS_AUTHORIZATION).toLocal8Bit(),
|
||||||
|
bearer.toLocal8Bit() } },
|
||||||
|
false,
|
||||||
|
{},
|
||||||
|
{});
|
||||||
|
|
||||||
// We need to quit event loop when the download finishes.
|
if (result_labels.first != QNetworkReply::NetworkError::NoError) {
|
||||||
connect(&downloader, &Downloader::completed, &loop, &QEventLoop::quit);
|
|
||||||
downloader.downloadFile(INOREADER_API_LIST_LABELS, qApp->settings()->value(GROUP(Feeds), SETTING(Feeds::UpdateTimeout)).toInt());
|
|
||||||
loop.exec();
|
|
||||||
|
|
||||||
if (downloader.lastOutputError() != QNetworkReply::NetworkError::NoError) {
|
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
QString category_data = downloader.lastOutputData();
|
QByteArray output_feeds;
|
||||||
|
auto result_feeds = NetworkFactory::performNetworkOperation(INOREADER_API_LIST_FEEDS,
|
||||||
|
qApp->settings()->value(GROUP(Feeds), SETTING(Feeds::UpdateTimeout)).toInt(),
|
||||||
|
{},
|
||||||
|
output_feeds,
|
||||||
|
QNetworkAccessManager::Operation::GetOperation,
|
||||||
|
{ { QString(HTTP_HEADERS_AUTHORIZATION).toLocal8Bit(),
|
||||||
|
bearer.toLocal8Bit() } },
|
||||||
|
false,
|
||||||
|
{},
|
||||||
|
{});
|
||||||
|
|
||||||
downloader.manipulateData(INOREADER_API_LIST_FEEDS, QNetworkAccessManager::Operation::GetOperation);
|
if (result_feeds.first != QNetworkReply::NetworkError::NoError) {
|
||||||
loop.exec();
|
|
||||||
|
|
||||||
if (downloader.lastOutputError() != QNetworkReply::NetworkError::NoError) {
|
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
QString feed_data = downloader.lastOutputData();
|
return decodeFeedCategoriesData(output_labels, output_feeds, obtain_icons);
|
||||||
|
|
||||||
return decodeFeedCategoriesData(category_data, feed_data, obtain_icons);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
QList<RootItem*> InoreaderNetworkFactory::getLabels() {
|
QList<RootItem*> InoreaderNetworkFactory::getLabels() {
|
||||||
QList<RootItem*> lbls;
|
QList<RootItem*> lbls;
|
||||||
Downloader downloader;
|
|
||||||
QEventLoop loop;
|
|
||||||
QString bearer = m_oauth2->bearer().toLocal8Bit();
|
QString bearer = m_oauth2->bearer().toLocal8Bit();
|
||||||
|
|
||||||
if (bearer.isEmpty()) {
|
if (bearer.isEmpty()) {
|
||||||
return lbls;
|
return lbls;
|
||||||
}
|
}
|
||||||
|
|
||||||
downloader.appendRawHeader(QString(HTTP_HEADERS_AUTHORIZATION).toLocal8Bit(), bearer.toLocal8Bit());
|
QByteArray output;
|
||||||
|
auto result = NetworkFactory::performNetworkOperation(INOREADER_API_LIST_LABELS,
|
||||||
// We need to quit event loop when the download finishes.
|
qApp->settings()->value(GROUP(Feeds), SETTING(Feeds::UpdateTimeout)).toInt(),
|
||||||
connect(&downloader, &Downloader::completed, &loop, &QEventLoop::quit);
|
{},
|
||||||
downloader.downloadFile(INOREADER_API_LIST_LABELS, qApp->settings()->value(GROUP(Feeds), SETTING(Feeds::UpdateTimeout)).toInt());
|
output,
|
||||||
loop.exec();
|
QNetworkAccessManager::Operation::GetOperation,
|
||||||
|
{ { QString(HTTP_HEADERS_AUTHORIZATION).toLocal8Bit(),
|
||||||
QString lbls_data = downloader.lastOutputData();
|
bearer.toLocal8Bit() } },
|
||||||
QJsonDocument json_lbls = QJsonDocument::fromJson(lbls_data.toUtf8());
|
false,
|
||||||
|
{},
|
||||||
|
{});
|
||||||
|
QJsonDocument json_lbls = QJsonDocument::fromJson(output);
|
||||||
|
|
||||||
for (const QJsonValue& lbl_val : json_lbls.object()["tags"].toArray()) {
|
for (const QJsonValue& lbl_val : json_lbls.object()["tags"].toArray()) {
|
||||||
QJsonObject lbl_obj = lbl_val.toObject();
|
QJsonObject lbl_obj = lbl_val.toObject();
|
||||||
@ -155,8 +164,6 @@ QList<RootItem*> InoreaderNetworkFactory::getLabels() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
QList<Message> InoreaderNetworkFactory::messages(ServiceRoot* root, const QString& stream_id, Feed::Status& error) {
|
QList<Message> InoreaderNetworkFactory::messages(ServiceRoot* root, const QString& stream_id, Feed::Status& error) {
|
||||||
Downloader downloader;
|
|
||||||
QEventLoop loop;
|
|
||||||
QString target_url = INOREADER_API_FEED_CONTENTS;
|
QString target_url = INOREADER_API_FEED_CONTENTS;
|
||||||
QString bearer = m_oauth2->bearer().toLocal8Bit();
|
QString bearer = m_oauth2->bearer().toLocal8Bit();
|
||||||
|
|
||||||
@ -170,27 +177,31 @@ QList<Message> InoreaderNetworkFactory::messages(ServiceRoot* root, const QStrin
|
|||||||
}
|
}
|
||||||
|
|
||||||
target_url += QSL("/") + QUrl::toPercentEncoding(stream_id) + QString("?n=%1").arg(batchSize());
|
target_url += QSL("/") + QUrl::toPercentEncoding(stream_id) + QString("?n=%1").arg(batchSize());
|
||||||
downloader.appendRawHeader(QString(HTTP_HEADERS_AUTHORIZATION).toLocal8Bit(), bearer.toLocal8Bit());
|
|
||||||
|
|
||||||
// We need to quit event loop when the download finishes.
|
QByteArray output_msgs;
|
||||||
connect(&downloader, &Downloader::completed, &loop, &QEventLoop::quit);
|
auto result = NetworkFactory::performNetworkOperation(target_url,
|
||||||
downloader.downloadFile(target_url, qApp->settings()->value(GROUP(Feeds), SETTING(Feeds::UpdateTimeout)).toInt());
|
qApp->settings()->value(GROUP(Feeds), SETTING(Feeds::UpdateTimeout)).toInt(),
|
||||||
loop.exec();
|
{},
|
||||||
|
output_msgs,
|
||||||
|
QNetworkAccessManager::Operation::GetOperation,
|
||||||
|
{ { QString(HTTP_HEADERS_AUTHORIZATION).toLocal8Bit(),
|
||||||
|
bearer.toLocal8Bit() } },
|
||||||
|
false,
|
||||||
|
{},
|
||||||
|
{});
|
||||||
|
|
||||||
if (downloader.lastOutputError() != QNetworkReply::NetworkError::NoError) {
|
if (result.first != QNetworkReply::NetworkError::NoError) {
|
||||||
qCriticalNN << LOGSEC_INOREADER
|
qCriticalNN << LOGSEC_INOREADER
|
||||||
<< "Cannot download messages for "
|
<< "Cannot download messages for "
|
||||||
<< QUOTE_NO_SPACE(stream_id)
|
<< QUOTE_NO_SPACE(stream_id)
|
||||||
<< ", network error:"
|
<< ", network error:"
|
||||||
<< QUOTE_W_SPACE_DOT(downloader.lastOutputError());
|
<< QUOTE_W_SPACE_DOT(result.first);
|
||||||
error = Feed::Status::NetworkError;
|
error = Feed::Status::NetworkError;
|
||||||
return QList<Message>();
|
return QList<Message>();
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
QString messages_data = downloader.lastOutputData();
|
|
||||||
|
|
||||||
error = Feed::Status::Normal;
|
error = Feed::Status::Normal;
|
||||||
return decodeMessages(root, messages_data, stream_id);
|
return decodeMessages(root, output_msgs, stream_id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user