Expression: attachment count

pull/215/head
M66B 8 months ago
parent ac55dcc31b
commit 55779ac915

@ -702,6 +702,7 @@ public class EntityRule {
JSONObject jcondition = new JSONObject(rule.condition); JSONObject jcondition = new JSONObject(rule.condition);
if (!jcondition.has("expression")) if (!jcondition.has("expression"))
return null; return null;
String eval = jcondition.getString("expression");
List<String> to = new ArrayList<>(); List<String> to = new ArrayList<>();
if (message != null && message.to != null) if (message != null && message.to != null)
@ -734,11 +735,24 @@ public class EntityRule {
configuration.getOperatorDictionary().addOperator("Matches", configuration.getOperatorDictionary().addOperator("Matches",
new ContainsOperator(true)); new ContainsOperator(true));
return new Expression(jcondition.getString("expression"), configuration) Expression expression = new Expression(eval, configuration)
.with("to", to) .with("to", to)
.with("from", from) .with("from", from)
.with("subject", message == null ? null : Arrays.asList(message.subject)) .with("subject", message == null ? null : Arrays.asList(message.subject))
.with("text", doc == null ? null : Arrays.asList(doc.text())); .with("text", doc == null ? null : Arrays.asList(doc.text()));
if (message != null) {
boolean hasAttachments = false;
for (String variable : expression.getUsedVariables())
if (!hasAttachments && "attachments".equals(variable)) {
hasAttachments = true;
DB db = DB.getInstance(context);
List<EntityAttachment> attachments = db.attachment().getAttachments(message.id);
expression.with("attachments", attachments == null ? 0 : attachments.size());
}
}
return expression;
} }
static boolean needsHeaders(Expression expression) { static boolean needsHeaders(Expression expression) {

Loading…
Cancel
Save