Simplify some filtering stuff, do not unescape empty strings.
This commit is contained in:
parent
5b063cf1af
commit
3940afe1e6
5 changed files with 15 additions and 21 deletions
|
@ -113,18 +113,13 @@ 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(),
|
||||
feed->getParentServiceRoot()->labelsNode()->labels());
|
||||
|
||||
// Register the wrapper.
|
||||
auto js_object = filter_engine.newQObject(&msg_obj);
|
||||
|
||||
filter_engine.globalObject().setProperty("msg", js_object);
|
||||
MessageFilter::initializeFilteringEngine(filter_engine, &msg_obj);
|
||||
|
||||
qDebugNN << LOGSEC_FEEDDOWNLOADER << "Setting up JS evaluation took " << tmr.nsecsElapsed() / 1000 << " microseconds.";
|
||||
|
||||
|
|
|
@ -79,10 +79,15 @@ void MessageFilter::setScript(const QString& script) {
|
|||
m_script = script;
|
||||
}
|
||||
|
||||
void MessageFilter::initializeFilteringEngine(QJSEngine& engine) {
|
||||
void MessageFilter::initializeFilteringEngine(QJSEngine& engine, MessageObject* message_wrapper) {
|
||||
engine.installExtensions(QJSEngine::Extension::ConsoleExtension);
|
||||
engine.globalObject().setProperty("MSG_ACCEPT", int(FilteringAction::Accept));
|
||||
engine.globalObject().setProperty("MSG_IGNORE", int(FilteringAction::Ignore));
|
||||
|
||||
// Register the wrapper.
|
||||
auto js_object = engine.newQObject(message_wrapper);
|
||||
|
||||
engine.globalObject().setProperty("msg", js_object);
|
||||
}
|
||||
|
||||
void MessageFilter::setId(int id) {
|
||||
|
|
|
@ -27,7 +27,7 @@ class MessageFilter : public QObject {
|
|||
QString script() const;
|
||||
void setScript(const QString& script);
|
||||
|
||||
static void initializeFilteringEngine(QJSEngine& engine);
|
||||
static void initializeFilteringEngine(QJSEngine& engine, MessageObject* message_wrapper);
|
||||
|
||||
private:
|
||||
int m_id;
|
||||
|
|
|
@ -147,24 +147,14 @@ 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.
|
||||
MessageObject msg_obj(&database, QString::number(NO_PARENT_CATEGORY), NO_PARENT_CATEGORY, {});
|
||||
|
||||
// Register the wrapper.
|
||||
auto js_object = filter_engine.newQObject(&msg_obj);
|
||||
|
||||
filter_engine.globalObject().setProperty("msg", js_object);
|
||||
|
||||
auto* fltr = selectedFilter();
|
||||
Message msg = testingMessage();
|
||||
|
||||
msg_obj.setMessage(&msg);
|
||||
MessageFilter::initializeFilteringEngine(filter_engine, &msg_obj);
|
||||
|
||||
auto* fltr = selectedFilter();
|
||||
msg_obj.setMessage(&msg);
|
||||
|
||||
try {
|
||||
FilteringAction decision = fltr->filterMessage(&filter_engine);
|
||||
|
|
|
@ -70,6 +70,10 @@ QString WebFactory::stripTags(QString text) {
|
|||
}
|
||||
|
||||
QString WebFactory::unescapeHtml(const QString& html) {
|
||||
if (html.isEmpty()) {
|
||||
return html;
|
||||
}
|
||||
|
||||
if (m_htmlNamedEntities.isEmpty()) {
|
||||
generateUnescapes();
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue