Skip matching text in encrypted messages

This commit is contained in:
M66B 2022-01-10 08:12:51 +01:00
parent e7d4434e06
commit e78a63314c
2 changed files with 13 additions and 8 deletions

View File

@ -2859,7 +2859,7 @@ class Core {
// No MX check
// No blocklist
boolean needsHeaders = EntityRule.needsHeaders(rules);
boolean needsHeaders = EntityRule.needsHeaders(message, rules);
List<Header> headers = (needsHeaders ? helper.getAllHeaders() : null);
String body = parts.getHtml(context);
@ -3922,8 +3922,8 @@ class Core {
}
}
boolean needsHeaders = EntityRule.needsHeaders(rules);
boolean needsBody = EntityRule.needsBody(rules);
boolean needsHeaders = EntityRule.needsHeaders(message, rules);
boolean needsBody = EntityRule.needsBody(message, rules);
if (needsHeaders || needsBody)
Log.i(folder.name + " needs headers=" + needsHeaders + " body=" + needsBody);
List<Header> headers = (needsHeaders ? helper.getAllHeaders() : null);
@ -4188,8 +4188,8 @@ class Core {
}
if (update || process) {
boolean needsHeaders = EntityRule.needsHeaders(rules);
boolean needsBody = EntityRule.needsBody(rules);
boolean needsHeaders = EntityRule.needsHeaders(message, rules);
boolean needsBody = EntityRule.needsBody(message, rules);
if (needsHeaders || needsBody)
Log.i(folder.name + " needs headers=" + needsHeaders + " body=" + needsBody);
List<Header> headers = (needsHeaders ? helper.getAllHeaders() : null);

View File

@ -125,11 +125,13 @@ public class EntityRule {
private static ExecutorService executor = Helper.getBackgroundExecutor(1, "rule");
static boolean needsHeaders(List<EntityRule> rules) {
static boolean needsHeaders(EntityMessage message, List<EntityRule> rules) {
return needs(rules, "header");
}
static boolean needsBody(List<EntityRule> rules) {
static boolean needsBody(EntityMessage message, List<EntityRule> rules) {
if (message.encrypt != null && !EntityMessage.ENCRYPT_NONE.equals(message.encrypt))
return false;
return needs(rules, "body");
}
@ -334,7 +336,10 @@ public class EntityRule {
}
// Body
JSONObject jbody = jcondition.optJSONObject("body");
JSONObject jbody = null;
if (message.encrypt == null ||
EntityMessage.ENCRYPT_NONE.equals(message.encrypt))
jbody = jcondition.optJSONObject("body");
if (jbody != null) {
String value = jbody.getString("value");
boolean regex = jbody.getBoolean("regex");