mirror of https://github.com/tycrek/ass
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
31 lines
1.1 KiB
31 lines
1.1 KiB
import { AssFile, AssUser, EmbedTemplate, PreparedEmbed } from "ass"
|
|
import { TemplateExecutor } from "./templates/executor";
|
|
|
|
let executor = TemplateExecutor.createExecutor();
|
|
|
|
export const DEFAULT_EMBED: EmbedTemplate = {
|
|
sitename: "ass",
|
|
title: "",
|
|
description: ""
|
|
};
|
|
|
|
// ensures a template is valid
|
|
export const validateEmbed = (template: EmbedTemplate) => {
|
|
// lets hope this works
|
|
let context = executor.createContext(null!, null!);
|
|
|
|
executor.validateTemplate(template.title, context);
|
|
executor.validateTemplate(template.description, context);
|
|
executor.validateTemplate(template.sitename, context);
|
|
}
|
|
|
|
// cooks up the embed
|
|
export const prepareEmbed = (template: EmbedTemplate, user: AssUser, file: AssFile): PreparedEmbed => {
|
|
let context = executor.createContext(user, file);
|
|
|
|
return {
|
|
title: executor.executeTemplate(template.title, context),
|
|
description: executor.executeTemplate(template.description, context),
|
|
sitename: executor.executeTemplate(template.sitename, context)
|
|
};
|
|
}; |