From fd7b407de44359169a09ba401e2e5d900f38c3f1 Mon Sep 17 00:00:00 2001 From: Martin Rotter Date: Tue, 15 Feb 2022 12:47:52 +0100 Subject: [PATCH] save, but will need polish of nodejs integration when there are errors --- src/librssguard/miscellaneous/application.cpp | 2 +- src/librssguard/miscellaneous/nodejs.cpp | 25 ++++++++++++------- src/librssguard/miscellaneous/nodejs.h | 4 +-- src/librssguard/network-web/readability.cpp | 2 +- 4 files changed, 20 insertions(+), 13 deletions(-) diff --git a/src/librssguard/miscellaneous/application.cpp b/src/librssguard/miscellaneous/application.cpp index 1c3bd334c..2b69f0c49 100644 --- a/src/librssguard/miscellaneous/application.cpp +++ b/src/librssguard/miscellaneous/application.cpp @@ -848,7 +848,7 @@ void Application::parseCmdArgumentsFromMyInstance() { } void Application::onNodeJsPackageUpdateError(const QList& pkgs, const QString& error) { - qApp->showGuiMessage(Notification::Event::NodePackageUpdated, + qApp->showGuiMessage(Notification::Event::NodePackageFailedToUpdate, { {}, tr("Packages %1 were NOT updated because of error: %3.").arg(NodeJs::packagesToString(pkgs), error), diff --git a/src/librssguard/miscellaneous/nodejs.cpp b/src/librssguard/miscellaneous/nodejs.cpp index 871b692d8..3aad83ea4 100644 --- a/src/librssguard/miscellaneous/nodejs.cpp +++ b/src/librssguard/miscellaneous/nodejs.cpp @@ -99,17 +99,24 @@ void NodeJs::installUpdatePackages(const QList& pkgs) { QStringList desc; for (const PackageMetadata& mt : pkgs) { - auto pkg_status = packageStatus(mt); + try { + auto pkg_status = packageStatus(mt); - switch (pkg_status) { - case PackageStatus::NotInstalled: - case PackageStatus::OutOfDate: - to_install.append(mt); - break; + switch (pkg_status) { + case PackageStatus::NotInstalled: + case PackageStatus::OutOfDate: + to_install.append(mt); + break; - default: - desc << QSL("%1@%2").arg(mt.m_name, mt.m_version); - break; + default: + desc << QSL("%1@%2").arg(mt.m_name, mt.m_version); + break; + } + } + catch (const ApplicationException& ex) { + emit packageError(pkgs, ex.message()); + + return; } } diff --git a/src/librssguard/miscellaneous/nodejs.h b/src/librssguard/miscellaneous/nodejs.h index cbfa885c5..1d2f64913 100644 --- a/src/librssguard/miscellaneous/nodejs.h +++ b/src/librssguard/miscellaneous/nodejs.h @@ -64,6 +64,8 @@ class NodeJs : public QObject { // NOTE: https://docs.npmjs.com/cli/v8/commands/npm-install void installUpdatePackages(const QList& pkgs); + void installPackages(const QList& pkgs); + static QString packagesToString(const QList& pkgs); signals: @@ -71,8 +73,6 @@ class NodeJs : public QObject { void packageInstalledUpdated(const QList& pkgs, bool already_up_to_date); private: - void installPackages(const QList& pkgs); - Settings* m_settings; }; diff --git a/src/librssguard/network-web/readability.cpp b/src/librssguard/network-web/readability.cpp index 3c000ceff..dbfe46379 100755 --- a/src/librssguard/network-web/readability.cpp +++ b/src/librssguard/network-web/readability.cpp @@ -74,7 +74,7 @@ void Readability::makeHtmlReadable(const QString& html, const QString& base_url) "You will be notified when installation is complete.").arg(QSL(APP_NAME)), QSystemTrayIcon::MessageIcon::Information }, { true, true, false }); - qApp->nodejs()->installUpdatePackages({ { QSL(READABILITY_PACKAGE), QSL(READABILITY_VERSION) } }); + qApp->nodejs()->installPackages({ { QSL(READABILITY_PACKAGE), QSL(READABILITY_VERSION) } }); } return;