mirror of
https://github.com/Sheldan/abstracto.git
synced 2026-03-05 16:01:49 +00:00
added scheduling support
added remind command added support for parameters with spaces (they are contained by ") fixed support for remainder parameters added maxlength support for parameters added ability to embed templates, to have a text as well moved properties to a more appropriate position added method do parse a duration
This commit is contained in:
@@ -17,4 +17,5 @@ public class EmbedConfiguration {
|
||||
private List<EmbedField> fields;
|
||||
private EmbedFooter footer;
|
||||
private OffsetDateTime timeStamp;
|
||||
private String additionalMessage;
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@ package dev.sheldan.abstracto.templating.loading;
|
||||
import com.google.gson.Gson;
|
||||
import dev.sheldan.abstracto.core.models.ContextAware;
|
||||
import dev.sheldan.abstracto.core.models.ServerContext;
|
||||
import dev.sheldan.abstracto.core.models.embed.MessageToSend;
|
||||
import dev.sheldan.abstracto.templating.TemplateDto;
|
||||
import dev.sheldan.abstracto.templating.TemplateService;
|
||||
import dev.sheldan.abstracto.templating.embed.*;
|
||||
@@ -11,7 +12,6 @@ import freemarker.template.Template;
|
||||
import freemarker.template.TemplateException;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import net.dv8tion.jda.api.EmbedBuilder;
|
||||
import net.dv8tion.jda.api.entities.MessageEmbed;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.ui.freemarker.FreeMarkerTemplateUtils;
|
||||
@@ -51,7 +51,7 @@ public class TemplateServiceBean implements TemplateService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public MessageEmbed renderEmbedTemplate(String key, Object model) {
|
||||
public MessageToSend renderEmbedTemplate(String key, Object model) {
|
||||
String embedConfig = this.renderTemplate(key + "_embed", model);
|
||||
EmbedBuilder builder = new EmbedBuilder();
|
||||
EmbedConfiguration configuration = gson.fromJson(embedConfig, EmbedConfiguration.class);
|
||||
@@ -91,7 +91,11 @@ public class TemplateServiceBean implements TemplateService {
|
||||
builder.setColor(new Color(color.getR(), color.getG(), color.getB()).getRGB());
|
||||
}
|
||||
|
||||
return builder.build();
|
||||
|
||||
return MessageToSend.builder()
|
||||
.embed(builder.build())
|
||||
.message(configuration.getAdditionalMessage())
|
||||
.build();
|
||||
}
|
||||
|
||||
private String impromptu(String templateStr, Object model) {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package dev.sheldan.abstracto.templating;
|
||||
|
||||
import dev.sheldan.abstracto.core.models.ServerContext;
|
||||
import net.dv8tion.jda.api.entities.MessageEmbed;
|
||||
import dev.sheldan.abstracto.core.models.embed.MessageToSend;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
||||
@@ -9,7 +9,7 @@ public interface TemplateService {
|
||||
TemplateDto getTemplateByKey(String key);
|
||||
boolean templateExists(String key);
|
||||
String renderTemplate(TemplateDto templateDto);
|
||||
MessageEmbed renderEmbedTemplate(String key, Object model);
|
||||
MessageToSend renderEmbedTemplate(String key, Object model);
|
||||
String renderTemplate(String key, HashMap<String, Object> parameters);
|
||||
String renderTemplate(String key, Object model);
|
||||
String renderContextAwareTemplate(String key, ServerContext serverContext);
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
package dev.sheldan.abstracto.templating.embed;
|
||||
|
||||
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
public class EmbedAuthor {
|
||||
private String name;
|
||||
private String url;
|
||||
private String avatar;
|
||||
}
|
||||
@@ -1,12 +0,0 @@
|
||||
package dev.sheldan.abstracto.templating.embed;
|
||||
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
@Setter
|
||||
@Getter
|
||||
public class EmbedColor {
|
||||
private Integer r;
|
||||
private Integer g;
|
||||
private Integer b;
|
||||
}
|
||||
@@ -1,21 +0,0 @@
|
||||
package dev.sheldan.abstracto.templating.embed;
|
||||
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
import java.time.OffsetDateTime;
|
||||
import java.util.List;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
public class EmbedConfiguration {
|
||||
private EmbedAuthor author;
|
||||
private EmbedTitle title;
|
||||
private EmbedColor color;
|
||||
private String description;
|
||||
private String thumbnail;
|
||||
private String imageUrl;
|
||||
private List<EmbedField> fields;
|
||||
private EmbedFooter footer;
|
||||
private OffsetDateTime timeStamp;
|
||||
}
|
||||
@@ -1,12 +0,0 @@
|
||||
package dev.sheldan.abstracto.templating.embed;
|
||||
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
public class EmbedField {
|
||||
private String name;
|
||||
private String value;
|
||||
private Boolean inline;
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
package dev.sheldan.abstracto.templating.embed;
|
||||
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
public class EmbedFooter {
|
||||
private String text;
|
||||
private String icon;
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
package dev.sheldan.abstracto.templating.embed;
|
||||
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
public class EmbedTitle {
|
||||
private String title;
|
||||
private String url;
|
||||
}
|
||||
Reference in New Issue
Block a user