diff --git a/core/src/main/java/de/srsoftware/umbrella/core/model/Envelope.java b/core/src/main/java/de/srsoftware/umbrella/core/model/Envelope.java index 448297e7..979be7a9 100644 --- a/core/src/main/java/de/srsoftware/umbrella/core/model/Envelope.java +++ b/core/src/main/java/de/srsoftware/umbrella/core/model/Envelope.java @@ -10,6 +10,7 @@ import static java.text.MessageFormat.format; import de.srsoftware.umbrella.core.exceptions.UmbrellaException; import java.time.LocalDateTime; +import java.util.Collection; import java.util.HashSet; import java.util.List; import java.util.Set; @@ -26,9 +27,9 @@ public class Envelope> { this(message,new HashSet<>(Set.of(receiver))); } - public Envelope(T message, HashSet receivers) { + public Envelope(T message, Collection receivers) { this.message = message; - this.receivers = receivers; + this.receivers = new HashSet<>(receivers); time = LocalDateTime.now(); } diff --git a/messages/src/main/java/de/srsoftware/umbrella/message/MessageSystem.java b/messages/src/main/java/de/srsoftware/umbrella/message/MessageSystem.java index 6a2853f4..d4627ef2 100644 --- a/messages/src/main/java/de/srsoftware/umbrella/message/MessageSystem.java +++ b/messages/src/main/java/de/srsoftware/umbrella/message/MessageSystem.java @@ -168,12 +168,8 @@ public class MessageSystem extends BaseHandler implements PostBox, EventListener @Override public void onEvent(Event event) { - for (var user : event.audience()){ - if (debugAddress != null && !debugAddress.equals(user.email().toString())) continue; - var message = new TranslatableMessage(event.initiator(),event.subject(),event.describe(),null); - var envelope = new Envelope<>(message,user); - send(envelope); - } + var message = new TranslatableMessage(event.initiator(),event.subject(),event.describe(),null); + send(new Envelope<>(message,event.audience())); } private boolean patchSettings(HttpExchange ex, UmbrellaUser user) throws IOException { @@ -216,6 +212,10 @@ public class MessageSystem extends BaseHandler implements PostBox, EventListener var date = new Date(); for (var receiver : dueRecipients){ + if (debugAddress != null && !debugAddress.equals(receiver.email().toString())) { + LOG.log(DEBUG,"Debug address is set to {0}, ignoring mail to {1}",debugAddress,receiver); + continue; + } var combined = new CombinedMessage(t("Collected messages"),receiver); try { @@ -300,6 +300,7 @@ public class MessageSystem extends BaseHandler implements PostBox, EventListener env.receivers().add(receiver); } map.values().forEach(queue::push); + break; default: return; } diff --git a/messages/src/main/java/de/srsoftware/umbrella/message/model/CombinedMessage.java b/messages/src/main/java/de/srsoftware/umbrella/message/model/CombinedMessage.java index ef2e924c..2f0b78c6 100644 --- a/messages/src/main/java/de/srsoftware/umbrella/message/model/CombinedMessage.java +++ b/messages/src/main/java/de/srsoftware/umbrella/message/model/CombinedMessage.java @@ -20,7 +20,7 @@ public class CombinedMessage { private UmbrellaUser sender = null; public CombinedMessage(Translatable subjectForCombinedMessage, User receiver){ - LOG.log(DEBUG,"Creating combined message…"); + LOG.log(DEBUG,"Creating combined message for {0}…",receiver); this.subjectForCombinedMessage = subjectForCombinedMessage; this.receiver = receiver; } @@ -38,12 +38,11 @@ public class CombinedMessage { combinedSubject = subject; break; case 1: - combinedBody.insert(0,format("# {0}:\n# {1}:\n\n",sender,subject)); // insert sender and subject of first message right before the body of the first message + combinedBody.insert(0,format("# {0} / {1}:\n\n",sender,subject)); // insert sender and subject of first message right before the body of the first message combinedSubject = subjectForCombinedMessage.translate(lang); // no break here, we need to append the subject and content default: - combinedBody.append("\n\n# ").append(message.sender()).append(":\n"); - combinedBody.append("# ").append(subject).append(":\n\n"); + combinedBody.append("\n\n━━━━━━━━━━━━━━━━━━━━━\n\n# ").append(message.sender()).append(" / ").append(subject).append(":\n\n"); combinedBody.append(body); } if (message.attachments() != null) attachments.addAll(message.attachments()); diff --git a/messages/src/main/java/de/srsoftware/umbrella/message/model/Instantly.java b/messages/src/main/java/de/srsoftware/umbrella/message/model/Instantly.java index db6f2d0d..b580de07 100644 --- a/messages/src/main/java/de/srsoftware/umbrella/message/model/Instantly.java +++ b/messages/src/main/java/de/srsoftware/umbrella/message/model/Instantly.java @@ -13,7 +13,7 @@ public class Instantly implements Settings{ @Override public boolean sendAt(Integer scheduledHour) { - return false; + return true; } @Override