added message caching

added message edited log (simple)
This commit is contained in:
Sheldan
2020-03-20 18:48:20 +01:00
parent 9b7f0743fc
commit 35f976aaa4
13 changed files with 190 additions and 3 deletions

View File

@@ -0,0 +1,47 @@
package dev.sheldan.abstracto.moderation.listener;
import dev.sheldan.abstracto.core.MessageTextUpdatedListener;
import dev.sheldan.abstracto.core.models.database.PostTarget;
import dev.sheldan.abstracto.core.service.MessageCache;
import dev.sheldan.abstracto.core.service.PostTargetService;
import dev.sheldan.abstracto.moderation.models.template.listener.MessageEditedLog;
import dev.sheldan.abstracto.templating.TemplateService;
import lombok.extern.slf4j.Slf4j;
import net.dv8tion.jda.api.entities.Message;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@Service
@Slf4j
public class MessageEditedListener implements MessageTextUpdatedListener {
private static final String MESSAGE_EDITED_TEMPLATE = "message_edited";
@Autowired
private TemplateService templateService;
@Autowired
private PostTargetService postTargetService;
@Autowired
private MessageCache messageCache;
@Override
@Transactional
public void execute(Message messageBefore, Message messageAfter) {
if(messageBefore.getContentRaw().equals(messageAfter.getContentRaw())){
log.debug("Message content was the same. Possible reason was: message was not in cache.");
return;
}
MessageEditedLog log = MessageEditedLog.
builder().
messageAfter(messageAfter)
.messageBefore(messageBefore)
.textChannel(messageAfter.getTextChannel())
.guild(messageAfter.getGuild())
.member(messageAfter.getMember()).build();
String simpleMessageUpdatedMessage = templateService.renderTemplate(MESSAGE_EDITED_TEMPLATE, log);
postTargetService.sendTextInPostTarget(simpleMessageUpdatedMessage, PostTarget.EDIT_LOG, messageAfter.getGuild().getIdLong());
}
}

View File

@@ -0,0 +1,3 @@
Message from ${member.effectiveName} (${member.idLong?c}) edited in ${textChannel.asMention}.
Before: ${messageBefore.contentRaw}
After: ${messageAfter.contentRaw}

View File

@@ -0,0 +1,13 @@
package dev.sheldan.abstracto.moderation.models.template.listener;
import dev.sheldan.abstracto.core.models.UserInitiatedServerContext;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.SuperBuilder;
import net.dv8tion.jda.api.entities.Message;
@Getter @Setter @SuperBuilder
public class MessageEditedLog extends UserInitiatedServerContext {
private Message messageAfter;
private Message messageBefore;
}