Nextcloud: Fix sync-in feature not correctly storing all feeds to DB.
This commit is contained in:
parent
5748bf983f
commit
3ff45878b3
2 changed files with 35 additions and 14 deletions
|
@ -211,7 +211,8 @@ void FeedReader::checkServicesForAsyncOperations() {
|
||||||
}
|
}
|
||||||
|
|
||||||
void FeedReader::asyncCacheSaveFinished() {
|
void FeedReader::asyncCacheSaveFinished() {
|
||||||
qDebug("I will start next check for cached service data in 30 seconds.");
|
qDebug("I will start next check for cached service data in 60 seconds.");
|
||||||
|
|
||||||
QTimer::singleShot(60000, this, [&] {
|
QTimer::singleShot(60000, this, [&] {
|
||||||
qDebug("Starting next check for cached service data in NOW.");
|
qDebug("Starting next check for cached service data in NOW.");
|
||||||
checkServicesForAsyncOperations();
|
checkServicesForAsyncOperations();
|
||||||
|
|
|
@ -84,8 +84,8 @@ QNetworkReply::NetworkError OwnCloudNetworkFactory::lastError() const {
|
||||||
|
|
||||||
OwnCloudUserResponse OwnCloudNetworkFactory::userInfo() {
|
OwnCloudUserResponse OwnCloudNetworkFactory::userInfo() {
|
||||||
QByteArray result_raw;
|
QByteArray result_raw;
|
||||||
|
|
||||||
QList<QPair<QByteArray, QByteArray>> headers;
|
QList<QPair<QByteArray, QByteArray>> headers;
|
||||||
|
|
||||||
headers << QPair<QByteArray, QByteArray>(HTTP_HEADERS_CONTENT_TYPE, OWNCLOUD_CONTENT_TYPE_JSON);
|
headers << QPair<QByteArray, QByteArray>(HTTP_HEADERS_CONTENT_TYPE, OWNCLOUD_CONTENT_TYPE_JSON);
|
||||||
headers << NetworkFactory::generateBasicAuthHeader(m_authUsername, m_authPassword);
|
headers << NetworkFactory::generateBasicAuthHeader(m_authUsername, m_authPassword);
|
||||||
|
|
||||||
|
@ -107,8 +107,8 @@ OwnCloudUserResponse OwnCloudNetworkFactory::userInfo() {
|
||||||
|
|
||||||
OwnCloudStatusResponse OwnCloudNetworkFactory::status() {
|
OwnCloudStatusResponse OwnCloudNetworkFactory::status() {
|
||||||
QByteArray result_raw;
|
QByteArray result_raw;
|
||||||
|
|
||||||
QList<QPair<QByteArray, QByteArray>> headers;
|
QList<QPair<QByteArray, QByteArray>> headers;
|
||||||
|
|
||||||
headers << QPair<QByteArray, QByteArray>(HTTP_HEADERS_CONTENT_TYPE, OWNCLOUD_CONTENT_TYPE_JSON);
|
headers << QPair<QByteArray, QByteArray>(HTTP_HEADERS_CONTENT_TYPE, OWNCLOUD_CONTENT_TYPE_JSON);
|
||||||
headers << NetworkFactory::generateBasicAuthHeader(m_authUsername, m_authPassword);
|
headers << NetworkFactory::generateBasicAuthHeader(m_authUsername, m_authPassword);
|
||||||
|
|
||||||
|
@ -130,8 +130,8 @@ OwnCloudStatusResponse OwnCloudNetworkFactory::status() {
|
||||||
|
|
||||||
OwnCloudGetFeedsCategoriesResponse OwnCloudNetworkFactory::feedsCategories() {
|
OwnCloudGetFeedsCategoriesResponse OwnCloudNetworkFactory::feedsCategories() {
|
||||||
QByteArray result_raw;
|
QByteArray result_raw;
|
||||||
|
|
||||||
QList<QPair<QByteArray, QByteArray>> headers;
|
QList<QPair<QByteArray, QByteArray>> headers;
|
||||||
|
|
||||||
headers << QPair<QByteArray, QByteArray>(HTTP_HEADERS_CONTENT_TYPE, OWNCLOUD_CONTENT_TYPE_JSON);
|
headers << QPair<QByteArray, QByteArray>(HTTP_HEADERS_CONTENT_TYPE, OWNCLOUD_CONTENT_TYPE_JSON);
|
||||||
headers << NetworkFactory::generateBasicAuthHeader(m_authUsername, m_authPassword);
|
headers << NetworkFactory::generateBasicAuthHeader(m_authUsername, m_authPassword);
|
||||||
|
|
||||||
|
@ -173,8 +173,8 @@ OwnCloudGetFeedsCategoriesResponse OwnCloudNetworkFactory::feedsCategories() {
|
||||||
bool OwnCloudNetworkFactory::deleteFeed(const QString& feed_id) {
|
bool OwnCloudNetworkFactory::deleteFeed(const QString& feed_id) {
|
||||||
QString final_url = m_urlDeleteFeed.arg(feed_id);
|
QString final_url = m_urlDeleteFeed.arg(feed_id);
|
||||||
QByteArray raw_output;
|
QByteArray raw_output;
|
||||||
|
|
||||||
QList<QPair<QByteArray, QByteArray>> headers;
|
QList<QPair<QByteArray, QByteArray>> headers;
|
||||||
|
|
||||||
headers << QPair<QByteArray, QByteArray>(HTTP_HEADERS_CONTENT_TYPE, OWNCLOUD_CONTENT_TYPE_JSON);
|
headers << QPair<QByteArray, QByteArray>(HTTP_HEADERS_CONTENT_TYPE, OWNCLOUD_CONTENT_TYPE_JSON);
|
||||||
headers << NetworkFactory::generateBasicAuthHeader(m_authUsername, m_authPassword);
|
headers << NetworkFactory::generateBasicAuthHeader(m_authUsername, m_authPassword);
|
||||||
|
|
||||||
|
@ -202,8 +202,8 @@ bool OwnCloudNetworkFactory::createFeed(const QString& url, int parent_id) {
|
||||||
json["folderId"] = parent_id;
|
json["folderId"] = parent_id;
|
||||||
|
|
||||||
QByteArray result_raw;
|
QByteArray result_raw;
|
||||||
|
|
||||||
QList<QPair<QByteArray, QByteArray>> headers;
|
QList<QPair<QByteArray, QByteArray>> headers;
|
||||||
|
|
||||||
headers << QPair<QByteArray, QByteArray>(HTTP_HEADERS_CONTENT_TYPE, OWNCLOUD_CONTENT_TYPE_JSON);
|
headers << QPair<QByteArray, QByteArray>(HTTP_HEADERS_CONTENT_TYPE, OWNCLOUD_CONTENT_TYPE_JSON);
|
||||||
headers << NetworkFactory::generateBasicAuthHeader(m_authUsername, m_authPassword);
|
headers << NetworkFactory::generateBasicAuthHeader(m_authUsername, m_authPassword);
|
||||||
|
|
||||||
|
@ -234,6 +234,7 @@ bool OwnCloudNetworkFactory::renameFeed(const QString& new_name, const QString&
|
||||||
json["feedTitle"] = new_name;
|
json["feedTitle"] = new_name;
|
||||||
|
|
||||||
QList<QPair<QByteArray, QByteArray>> headers;
|
QList<QPair<QByteArray, QByteArray>> headers;
|
||||||
|
|
||||||
headers << QPair<QByteArray, QByteArray>(HTTP_HEADERS_CONTENT_TYPE, OWNCLOUD_CONTENT_TYPE_JSON);
|
headers << QPair<QByteArray, QByteArray>(HTTP_HEADERS_CONTENT_TYPE, OWNCLOUD_CONTENT_TYPE_JSON);
|
||||||
headers << NetworkFactory::generateBasicAuthHeader(m_authUsername, m_authPassword);
|
headers << NetworkFactory::generateBasicAuthHeader(m_authUsername, m_authPassword);
|
||||||
|
|
||||||
|
@ -265,8 +266,8 @@ OwnCloudGetMessagesResponse OwnCloudNetworkFactory::getMessages(int feed_id) {
|
||||||
QString::number(batchSize() <= 0 ? -1 : batchSize()),
|
QString::number(batchSize() <= 0 ? -1 : batchSize()),
|
||||||
QString::number(0));
|
QString::number(0));
|
||||||
QByteArray result_raw;
|
QByteArray result_raw;
|
||||||
|
|
||||||
QList<QPair<QByteArray, QByteArray>> headers;
|
QList<QPair<QByteArray, QByteArray>> headers;
|
||||||
|
|
||||||
headers << QPair<QByteArray, QByteArray>(HTTP_HEADERS_CONTENT_TYPE, OWNCLOUD_CONTENT_TYPE_JSON);
|
headers << QPair<QByteArray, QByteArray>(HTTP_HEADERS_CONTENT_TYPE, OWNCLOUD_CONTENT_TYPE_JSON);
|
||||||
headers << NetworkFactory::generateBasicAuthHeader(m_authUsername, m_authPassword);
|
headers << NetworkFactory::generateBasicAuthHeader(m_authUsername, m_authPassword);
|
||||||
|
|
||||||
|
@ -302,8 +303,8 @@ QNetworkReply::NetworkError OwnCloudNetworkFactory::triggerFeedUpdate(int feed_i
|
||||||
|
|
||||||
// Now, we can trigger the update.
|
// Now, we can trigger the update.
|
||||||
QByteArray raw_output;
|
QByteArray raw_output;
|
||||||
|
|
||||||
QList<QPair<QByteArray, QByteArray>> headers;
|
QList<QPair<QByteArray, QByteArray>> headers;
|
||||||
|
|
||||||
headers << QPair<QByteArray, QByteArray>(HTTP_HEADERS_CONTENT_TYPE, OWNCLOUD_CONTENT_TYPE_JSON);
|
headers << QPair<QByteArray, QByteArray>(HTTP_HEADERS_CONTENT_TYPE, OWNCLOUD_CONTENT_TYPE_JSON);
|
||||||
headers << NetworkFactory::generateBasicAuthHeader(m_authUsername, m_authPassword);
|
headers << NetworkFactory::generateBasicAuthHeader(m_authUsername, m_authPassword);
|
||||||
|
|
||||||
|
@ -341,6 +342,7 @@ void OwnCloudNetworkFactory::markMessagesRead(RootItem::ReadStatus status, const
|
||||||
json["items"] = ids;
|
json["items"] = ids;
|
||||||
|
|
||||||
QList<QPair<QByteArray, QByteArray>> headers;
|
QList<QPair<QByteArray, QByteArray>> headers;
|
||||||
|
|
||||||
headers << QPair<QByteArray, QByteArray>(HTTP_HEADERS_CONTENT_TYPE, OWNCLOUD_CONTENT_TYPE_JSON);
|
headers << QPair<QByteArray, QByteArray>(HTTP_HEADERS_CONTENT_TYPE, OWNCLOUD_CONTENT_TYPE_JSON);
|
||||||
headers << NetworkFactory::generateBasicAuthHeader(m_authUsername, m_authPassword);
|
headers << NetworkFactory::generateBasicAuthHeader(m_authUsername, m_authPassword);
|
||||||
|
|
||||||
|
@ -390,6 +392,7 @@ void OwnCloudNetworkFactory::markMessagesStarred(RootItem::Importance importance
|
||||||
json["items"] = ids;
|
json["items"] = ids;
|
||||||
|
|
||||||
QList<QPair<QByteArray, QByteArray>> headers;
|
QList<QPair<QByteArray, QByteArray>> headers;
|
||||||
|
|
||||||
headers << QPair<QByteArray, QByteArray>(HTTP_HEADERS_CONTENT_TYPE, OWNCLOUD_CONTENT_TYPE_JSON);
|
headers << QPair<QByteArray, QByteArray>(HTTP_HEADERS_CONTENT_TYPE, OWNCLOUD_CONTENT_TYPE_JSON);
|
||||||
headers << NetworkFactory::generateBasicAuthHeader(m_authUsername, m_authPassword);
|
headers << NetworkFactory::generateBasicAuthHeader(m_authUsername, m_authPassword);
|
||||||
|
|
||||||
|
@ -520,7 +523,6 @@ OwnCloudGetFeedsCategoriesResponse::~OwnCloudGetFeedsCategoriesResponse() = defa
|
||||||
|
|
||||||
RootItem* OwnCloudGetFeedsCategoriesResponse::feedsCategories(bool obtain_icons) const {
|
RootItem* OwnCloudGetFeedsCategoriesResponse::feedsCategories(bool obtain_icons) const {
|
||||||
auto* parent = new RootItem();
|
auto* parent = new RootItem();
|
||||||
|
|
||||||
QMap<QString, RootItem*> cats;
|
QMap<QString, RootItem*> cats;
|
||||||
|
|
||||||
// Top-level feed have "folderId" set to "0".
|
// Top-level feed have "folderId" set to "0".
|
||||||
|
@ -563,11 +565,29 @@ RootItem* OwnCloudGetFeedsCategoriesResponse::feedsCategories(bool obtain_icons)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
feed->setUrl(item["link"].toString());
|
|
||||||
feed->setTitle(item["title"].toString());
|
|
||||||
feed->setCustomId(QString::number(item["id"].toInt()));
|
feed->setCustomId(QString::number(item["id"].toInt()));
|
||||||
qDebug("Custom ID of next fetched Nextcloud feed is '%s'.", qPrintable(feed->customId()));
|
feed->setUrl(item["url"].toString());
|
||||||
|
|
||||||
|
if (feed->url().isEmpty()) {
|
||||||
|
feed->setUrl(item["link"].toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
feed->setTitle(item["title"].toString());
|
||||||
|
|
||||||
|
if (feed->title().isEmpty()) {
|
||||||
|
if (feed->url().isEmpty()) {
|
||||||
|
// We cannot add feed which has no title and no url to RSS Guard!!!
|
||||||
|
qCritical("Skipping feed with custom ID '%s' from adding to RSS Guard because it has no title and url.",
|
||||||
|
qPrintable(feed->customId()));
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
feed->setTitle(feed->url());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
cats.value(QString::number(item["folderId"].toInt()))->appendChild(feed);
|
cats.value(QString::number(item["folderId"].toInt()))->appendChild(feed);
|
||||||
|
qDebug("Custom ID of next fetched processed Nextcloud feed is '%s'.", qPrintable(feed->customId()));
|
||||||
}
|
}
|
||||||
|
|
||||||
return parent;
|
return parent;
|
||||||
|
|
Loading…
Add table
Reference in a new issue