allow launching of external programs in article filters

This commit is contained in:
Martin Rotter 2021-12-15 08:06:38 +01:00
parent 6dbe7a82db
commit b48f2477ae
3 changed files with 21 additions and 1 deletions

View file

@ -26,7 +26,7 @@
<url type="donation">https://github.com/sponsors/martinrotter</url>
<content_rating type="oars-1.1" />
<releases>
<release version="4.0.4" date="2021-12-14"/>
<release version="4.0.4" date="2021-12-15"/>
</releases>
<content_rating type="oars-1.0">
<content_attribute id="violence-cartoon">none</content_attribute>

View file

@ -9,6 +9,7 @@
#include <QHostInfo>
#include <QJsonArray>
#include <QJsonDocument>
#include <QProcess>
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();
}
}

View file

@ -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