diff --git a/resources/desktop/com.github.rssguard.appdata.xml b/resources/desktop/com.github.rssguard.appdata.xml index a72007242..ae258f422 100644 --- a/resources/desktop/com.github.rssguard.appdata.xml +++ b/resources/desktop/com.github.rssguard.appdata.xml @@ -26,7 +26,7 @@ https://github.com/sponsors/martinrotter - + none diff --git a/src/librssguard/core/filterutils.cpp b/src/librssguard/core/filterutils.cpp index 76bfce161..d9854ed4e 100644 --- a/src/librssguard/core/filterutils.cpp +++ b/src/librssguard/core/filterutils.cpp @@ -9,6 +9,7 @@ #include #include #include +#include FilterUtils::FilterUtils(QObject* parent) : QObject(parent) {} @@ -84,3 +85,21 @@ QString FilterUtils::fromXmlToJson(const QString& xml) const { QDateTime FilterUtils::parseDateTime(const QString& dat) const { return TextFactory::parseDateTime(dat); } + +QString FilterUtils::runExecutableGetOutput(const QString& executable, const QStringList& arguments) const { + QProcess proc; + + proc.setProgram(executable); + proc.setArguments(arguments); + + proc.start(); + + if (proc.waitForFinished() && + proc.exitStatus() == QProcess::ExitStatus::NormalExit && + proc.exitCode() == EXIT_SUCCESS) { + return proc.readAllStandardOutput(); + } + else { + return proc.readAllStandardError().simplified(); + } +} diff --git a/src/librssguard/core/filterutils.h b/src/librssguard/core/filterutils.h index 565836254..0387dad9e 100644 --- a/src/librssguard/core/filterutils.h +++ b/src/librssguard/core/filterutils.h @@ -22,6 +22,7 @@ class FilterUtils : public QObject { // Parses string into date/time object. Q_INVOKABLE QDateTime parseDateTime(const QString& dat) const; + Q_INVOKABLE QString runExecutableGetOutput(const QString& executable, const QStringList& arguments = {}) const; }; #endif // FILTERUTILS_H