This commit is contained in:
Martin Rotter 2024-12-20 07:16:46 +01:00
parent e24f4575af
commit 483c41ddd5
3 changed files with 9 additions and 17 deletions

View File

@ -267,7 +267,6 @@ void FeedDownloader::updateOneFeed(ServiceRoot* acc,
<< " microseconds.";
QList<Message> read_msgs, important_msgs;
QHash<int, bool> loaded_filters;
for (int i = 0; i < msgs.size(); i++) {
Message msg_original(msgs[i]);
@ -296,10 +295,7 @@ void FeedDownloader::updateOneFeed(ServiceRoot* acc,
tmr.restart();
try {
MessageObject::FilteringAction decision =
msg_filter->filterMessage(&filter_engine, !loaded_filters.contains(msg_filter->id()));
loaded_filters.insert(msg_filter->id(), true);
MessageObject::FilteringAction decision = msg_filter->filterMessage(&filter_engine);
qDebugNN << LOGSEC_FEEDDOWNLOADER << "Running filter script, it took " << tmr.nsecsElapsed() / 1000
<< " microseconds.";

View File

@ -8,21 +8,17 @@
MessageFilter::MessageFilter(int id, QObject* parent) : QObject(parent), m_id(id) {}
MessageObject::FilteringAction MessageFilter::filterMessage(QJSEngine* engine, bool evaluate_filter) {
if (evaluate_filter) {
QJSValue filter_func =
engine->evaluate(qApp->replaceUserDataFolderPlaceholder(m_script).replace(QSL("filterMessage()"),
QSL("filterMessage%1()").arg(m_id)));
MessageObject::FilteringAction MessageFilter::filterMessage(QJSEngine* engine) {
QJSValue filter_func = engine->evaluate(qApp->replaceUserDataFolderPlaceholder(m_script));
if (filter_func.isError()) {
QJSValue::ErrorType error = filter_func.errorType();
QString message = filter_func.toString();
if (filter_func.isError()) {
QJSValue::ErrorType error = filter_func.errorType();
QString message = filter_func.toString();
throw FilteringException(error, message);
}
throw FilteringException(error, message);
}
auto filter_output = engine->evaluate(QSL("filterMessage%1()").arg(m_id));
auto filter_output = engine->evaluate(QSL("filterMessage()"));
if (filter_output.isError()) {
QJSValue::ErrorType error = filter_output.errorType();

View File

@ -16,7 +16,7 @@ class RSSGUARD_DLLSPEC MessageFilter : public QObject {
public:
explicit MessageFilter(int id = -1, QObject* parent = nullptr);
MessageObject::FilteringAction filterMessage(QJSEngine* engine, bool evaluate_filter = true);
MessageObject::FilteringAction filterMessage(QJSEngine* engine);
int id() const;
void setId(int id);