Browse Source

Fix overwriting feeds.json with an incomplete load of it

PR #19444.
Closes #19439.

---------

Co-authored-by: Vladimir Golovnev <glassez@yandex.ru>
adaptive-webui-19844
Omar Abdul Azeez 1 year ago committed by GitHub
parent
commit
6ba561dea2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 14
      src/base/rss/rss_session.cpp
  2. 2
      src/base/rss/rss_session.h

14
src/base/rss/rss_session.cpp

@ -271,6 +271,7 @@ void Session::load() @@ -271,6 +271,7 @@ void Session::load()
if (readResult.error().status == Utils::IO::ReadError::NotExist)
{
loadLegacy();
store(); // convert to new format
return;
}
@ -294,10 +295,11 @@ void Session::load() @@ -294,10 +295,11 @@ void Session::load()
return;
}
loadFolder(jsonDoc.object(), rootFolder());
if (loadFolder(jsonDoc.object(), rootFolder()))
store(); // convert to updated format
}
void Session::loadFolder(const QJsonObject &jsonObj, Folder *folder)
bool Session::loadFolder(const QJsonObject &jsonObj, Folder *folder)
{
bool updated = false;
for (const QString &key : asConst(jsonObj.keys()))
@ -353,7 +355,8 @@ void Session::loadFolder(const QJsonObject &jsonObj, Folder *folder) @@ -353,7 +355,8 @@ void Session::loadFolder(const QJsonObject &jsonObj, Folder *folder)
}
else
{
loadFolder(valObj, addSubfolder(key, folder));
if (loadFolder(valObj, addSubfolder(key, folder)))
updated = true;
}
}
else
@ -363,8 +366,7 @@ void Session::loadFolder(const QJsonObject &jsonObj, Folder *folder) @@ -363,8 +366,7 @@ void Session::loadFolder(const QJsonObject &jsonObj, Folder *folder)
}
}
if (updated)
store(); // convert to updated format
return updated;
}
void Session::loadLegacy()
@ -394,8 +396,6 @@ void Session::loadLegacy() @@ -394,8 +396,6 @@ void Session::loadLegacy()
addFeed(feedUrl, feedPath);
++i;
}
store(); // convert to new format
}
void Session::store()

2
src/base/rss/rss_session.h

@ -149,7 +149,7 @@ namespace RSS @@ -149,7 +149,7 @@ namespace RSS
private:
QUuid generateUID() const;
void load();
void loadFolder(const QJsonObject &jsonObj, Folder *folder);
bool loadFolder(const QJsonObject &jsonObj, Folder *folder);
void loadLegacy();
void store();
nonstd::expected<Folder *, QString> prepareItemDest(const QString &path);

Loading…
Cancel
Save