bugfixes and emprovements on message creation from events

Signed-off-by: Stephan Richter <s.richter@srsoftware.de>
This commit is contained in:
2026-01-21 23:43:39 +01:00
parent d6d6aabe51
commit 109b170289
4 changed files with 14 additions and 13 deletions

View File

@@ -10,6 +10,7 @@ import static java.text.MessageFormat.format;
import de.srsoftware.umbrella.core.exceptions.UmbrellaException; import de.srsoftware.umbrella.core.exceptions.UmbrellaException;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.Collection;
import java.util.HashSet; import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.Set; import java.util.Set;
@@ -26,9 +27,9 @@ public class Envelope<T extends Message<?>> {
this(message,new HashSet<>(Set.of(receiver))); this(message,new HashSet<>(Set.of(receiver)));
} }
public Envelope(T message, HashSet<User> receivers) { public Envelope(T message, Collection<? extends User> receivers) {
this.message = message; this.message = message;
this.receivers = receivers; this.receivers = new HashSet<>(receivers);
time = LocalDateTime.now(); time = LocalDateTime.now();
} }

View File

@@ -168,12 +168,8 @@ public class MessageSystem extends BaseHandler implements PostBox, EventListener
@Override @Override
public void onEvent(Event<?> event) { public void onEvent(Event<?> event) {
for (var user : event.audience()){ var message = new TranslatableMessage(event.initiator(),event.subject(),event.describe(),null);
if (debugAddress != null && !debugAddress.equals(user.email().toString())) continue; send(new Envelope<>(message,event.audience()));
var message = new TranslatableMessage(event.initiator(),event.subject(),event.describe(),null);
var envelope = new Envelope<>(message,user);
send(envelope);
}
} }
private boolean patchSettings(HttpExchange ex, UmbrellaUser user) throws IOException { 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(); var date = new Date();
for (var receiver : dueRecipients){ 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); var combined = new CombinedMessage(t("Collected messages"),receiver);
try { try {
@@ -300,6 +300,7 @@ public class MessageSystem extends BaseHandler implements PostBox, EventListener
env.receivers().add(receiver); env.receivers().add(receiver);
} }
map.values().forEach(queue::push); map.values().forEach(queue::push);
break;
default: default:
return; return;
} }

View File

@@ -20,7 +20,7 @@ public class CombinedMessage {
private UmbrellaUser sender = null; private UmbrellaUser sender = null;
public CombinedMessage(Translatable subjectForCombinedMessage, User receiver){ 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.subjectForCombinedMessage = subjectForCombinedMessage;
this.receiver = receiver; this.receiver = receiver;
} }
@@ -38,12 +38,11 @@ public class CombinedMessage {
combinedSubject = subject; combinedSubject = subject;
break; break;
case 1: 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); combinedSubject = subjectForCombinedMessage.translate(lang);
// no break here, we need to append the subject and content // no break here, we need to append the subject and content
default: default:
combinedBody.append("\n\n# ").append(message.sender()).append(":\n"); combinedBody.append("\n\n━━━━━━━━━━━━━━━━━━━━━\n\n# ").append(message.sender()).append(" / ").append(subject).append(":\n\n");
combinedBody.append("# ").append(subject).append(":\n\n");
combinedBody.append(body); combinedBody.append(body);
} }
if (message.attachments() != null) attachments.addAll(message.attachments()); if (message.attachments() != null) attachments.addAll(message.attachments());

View File

@@ -13,7 +13,7 @@ public class Instantly implements Settings{
@Override @Override
public boolean sendAt(Integer scheduledHour) { public boolean sendAt(Integer scheduledHour) {
return false; return true;
} }
@Override @Override