bugfixes and emprovements on message creation from events
Signed-off-by: Stephan Richter <s.richter@srsoftware.de>
This commit is contained in:
@@ -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();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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());
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user