diff --git a/src/librssguard/core/feeddownloader.cpp b/src/librssguard/core/feeddownloader.cpp index 454d6f9b6..0b0830cce 100644 --- a/src/librssguard/core/feeddownloader.cpp +++ b/src/librssguard/core/feeddownloader.cpp @@ -123,16 +123,15 @@ void FeedDownloader::updateOneFeed(Feed* feed) { // Perform per-message filtering. QJSEngine filter_engine; + MessageFilter::initializeFilteringEngine(filter_engine); + // Create JavaScript communication wrapper for the message. MessageObject msg_obj(&database, feed->customId(), feed->getParentServiceRoot()->accountId()); // Register the wrapper. auto js_object = filter_engine.newQObject(&msg_obj); - filter_engine.installExtensions(QJSEngine::Extension::ConsoleExtension); filter_engine.globalObject().setProperty("msg", js_object); - filter_engine.globalObject().setProperty("MSG_ACCEPT", int(FilteringAction::Accept)); - filter_engine.globalObject().setProperty("MSG_IGNORE", int(FilteringAction::Ignore)); qDebugNN << LOGSEC_FEEDDOWNLOADER << "Setting up JS evaluation took " << tmr.nsecsElapsed() / 1000 << " microseconds."; diff --git a/src/librssguard/core/messagefilter.cpp b/src/librssguard/core/messagefilter.cpp index 602aa78f1..b4b14c50d 100755 --- a/src/librssguard/core/messagefilter.cpp +++ b/src/librssguard/core/messagefilter.cpp @@ -5,8 +5,6 @@ #include "core/message.h" #include "exceptions/filteringexception.h" -#include - MessageFilter::MessageFilter(int id, QObject* parent) : QObject(parent), m_id(id) {} FilteringAction MessageFilter::filterMessage(QJSEngine* engine) { @@ -81,6 +79,12 @@ void MessageFilter::setScript(const QString& script) { m_script = script; } +void MessageFilter::initializeFilteringEngine(QJSEngine& engine) { + engine.installExtensions(QJSEngine::Extension::ConsoleExtension); + engine.globalObject().setProperty("MSG_ACCEPT", int(FilteringAction::Accept)); + engine.globalObject().setProperty("MSG_IGNORE", int(FilteringAction::Ignore)); +} + void MessageFilter::setId(int id) { m_id = id; } diff --git a/src/librssguard/core/messagefilter.h b/src/librssguard/core/messagefilter.h index 393161ea0..f3d9d7a4b 100755 --- a/src/librssguard/core/messagefilter.h +++ b/src/librssguard/core/messagefilter.h @@ -7,7 +7,7 @@ #include "core/message.h" -class QJSEngine; +#include // Class which represents one message filter. class MessageFilter : public QObject { @@ -27,6 +27,8 @@ class MessageFilter : public QObject { QString script() const; void setScript(const QString& script); + static void initializeFilteringEngine(QJSEngine& engine); + private: int m_id; QString m_name; diff --git a/src/librssguard/gui/dialogs/formmessagefiltersmanager.cpp b/src/librssguard/gui/dialogs/formmessagefiltersmanager.cpp index ab27f861b..e38f63fb5 100644 --- a/src/librssguard/gui/dialogs/formmessagefiltersmanager.cpp +++ b/src/librssguard/gui/dialogs/formmessagefiltersmanager.cpp @@ -147,6 +147,9 @@ void FormMessageFiltersManager::loadFilter() { void FormMessageFiltersManager::testFilter() { // Perform per-message filtering. QJSEngine filter_engine; + + MessageFilter::initializeFilteringEngine(filter_engine); + QSqlDatabase database = qApp->database()->connection(metaObject()->className()); // Create JavaScript communication wrapper for the message. @@ -155,10 +158,7 @@ void FormMessageFiltersManager::testFilter() { // Register the wrapper. auto js_object = filter_engine.newQObject(&msg_obj); - filter_engine.installExtensions(QJSEngine::Extension::ConsoleExtension); filter_engine.globalObject().setProperty("msg", js_object); - filter_engine.globalObject().setProperty("MSG_ACCEPT", int(FilteringAction::Accept)); - filter_engine.globalObject().setProperty("MSG_IGNORE", int(FilteringAction::Ignore)); Message msg = testingMessage(); diff --git a/src/librssguard/services/gmail/network/gmailnetworkfactory.cpp b/src/librssguard/services/gmail/network/gmailnetworkfactory.cpp index a305a0dae..72dcd69a9 100644 --- a/src/librssguard/services/gmail/network/gmailnetworkfactory.cpp +++ b/src/librssguard/services/gmail/network/gmailnetworkfactory.cpp @@ -97,9 +97,9 @@ QString GmailNetworkFactory::sendEmail(Mimesis::Message msg, Message* reply_to_m if (result.first != QNetworkReply::NetworkError::NoError) { if (!out.isEmpty()) { QJsonDocument doc = QJsonDocument::fromJson(out); - auto msg = doc.object()["error"].toObject()["message"].toString(); + auto json_message = doc.object()["error"].toObject()["message"].toString(); - throw ApplicationException(msg); + throw ApplicationException(json_message); } else { throw ApplicationException(QString::fromUtf8(out)); @@ -464,9 +464,9 @@ QMap GmailNetworkFactory::getMessageMetadata(const QString& ms if (res.first == QNetworkReply::NetworkError::NoError) { QJsonDocument doc = QJsonDocument::fromJson(output); QMap result; - auto headers = doc.object()["payload"].toObject()["headers"].toArray(); + auto json_headers = doc.object()["payload"].toObject()["headers"].toArray(); - for (const auto& header : headers) { + for (const auto& header : json_headers) { QJsonObject obj_header = header.toObject(); result.insert(obj_header["name"].toString(), obj_header["value"].toString());