added liquibase for setup of databases and initial values

fixed some table names to be singular
migrated templates to separate repository
added seed data to initial version in liquibase migrations instead of property files (post targets, emotes etc) and created some default tables containing those default values
added separate artifacts to be used containing only the liquibase config
added shell script as a wrapper for ansible deployment, to handle an environment variable defining whether or not the deployment should be executed
added logback scan period
added licenses for ansible, liquibase, docker and docker-compose
This commit is contained in:
Sheldan
2020-07-01 20:44:21 +02:00
parent e8767429bf
commit 9374dfb912
965 changed files with 15775 additions and 2935 deletions

View File

@@ -0,0 +1,18 @@
<assembly xmlns="http://maven.apache.org/ASSEMBLY/2.1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/ASSEMBLY/2.1.0 http://maven.apache.org/xsd/assembly-2.1.0.xsd">
<id>liquibase</id>
<formats>
<format>zip</format>
</formats>
<includeBaseDirectory>false</includeBaseDirectory>
<fileSets>
<fileSet>
<outputDirectory>.</outputDirectory>
<directory>${project.basedir}/src/main/resources/migrations</directory>
<includes>
<include>**/*</include>
</includes>
</fileSet>
</fileSets>
</assembly>

View File

@@ -1,17 +0,0 @@
package dev.sheldan.abstracto.utility.config;
import lombok.Getter;
import lombok.Setter;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.List;
@Component
@Getter
@Setter
@ConfigurationProperties(prefix = "abstracto.starboard")
public class StarboardConfig {
private List<Integer> lvl = new ArrayList<>();
}

View File

@@ -3,6 +3,7 @@ package dev.sheldan.abstracto.utility.config;
import dev.sheldan.abstracto.core.listener.ServerConfigListener;
import dev.sheldan.abstracto.core.models.database.AServer;
import dev.sheldan.abstracto.core.service.management.ConfigManagementService;
import dev.sheldan.abstracto.core.service.management.DefaultConfigManagementService;
import dev.sheldan.abstracto.utility.service.StarboardServiceBean;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
@@ -13,18 +14,19 @@ import org.springframework.stereotype.Component;
public class StarboardConfigListener implements ServerConfigListener {
@Autowired
private StarboardConfig starboardConfig;
private ConfigManagementService configManagementService;
@Autowired
private ConfigManagementService configManagementService;
private DefaultConfigManagementService defaultConfigManagementService;
@Override
public void updateServerConfig(AServer server) {
log.info("Creating starboard config for server {}", server.getId());
int levels = starboardConfig.getLvl().size();
for (int i = 0; i < levels; i++) {
Integer value = starboardConfig.getLvl().get(i);
configManagementService.createIfNotExists(server.getId(), StarboardServiceBean.STAR_LVL_CONFIG_PREFIX + ( i + 1 ), Long.valueOf(value));
int maxLevels = defaultConfigManagementService.getDefaultConfig(StarboardServiceBean.STAR_LEVELS_CONFIG_KEY).getLongValue().intValue();
for (int i = 0; i < maxLevels; i++) {
String configKey = StarboardServiceBean.STAR_LVL_CONFIG_PREFIX + (i + 1);
Integer value = defaultConfigManagementService.getDefaultConfig(configKey).getLongValue().intValue();
configManagementService.createIfNotExists(server.getId(), configKey, Long.valueOf(value));
}
}
}

View File

@@ -1,29 +0,0 @@
package dev.sheldan.abstracto.utility.config;
import dev.sheldan.abstracto.core.service.management.DefaultConfigManagementService;
import dev.sheldan.abstracto.utility.service.StarboardServiceBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.event.ContextRefreshedEvent;
import org.springframework.context.event.EventListener;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
@Component
public class StarboardDefaultConfigListener {
@Autowired
private DefaultConfigManagementService defaultConfigManagementService;
@Autowired
private StarboardConfig starboardConfig;
@EventListener
@Transactional
public void handleContextRefreshEvent(ContextRefreshedEvent ctxStartEvt) {
int levels = starboardConfig.getLvl().size();
for (int i = 0; i < levels; i++) {
Integer value = starboardConfig.getLvl().get(i);
defaultConfigManagementService.createDefaultConfig(StarboardServiceBean.STAR_LVL_CONFIG_PREFIX + ( i + 1 ), Long.valueOf(value));
}
}
}

View File

@@ -1,10 +0,0 @@
package dev.sheldan.abstracto.utility.config;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
@Configuration
@PropertySource("classpath:utility.properties")
public class UtilityConfig {
}

View File

@@ -3,6 +3,7 @@ package dev.sheldan.abstracto.utility.service;
import dev.sheldan.abstracto.core.exception.ChannelNotFoundException;
import dev.sheldan.abstracto.core.exception.UserInServerNotFoundException;
import dev.sheldan.abstracto.core.service.management.ChannelManagementService;
import dev.sheldan.abstracto.core.service.management.DefaultConfigManagementService;
import dev.sheldan.abstracto.core.service.management.PostTargetManagement;
import dev.sheldan.abstracto.core.models.AServerAChannelMessage;
import dev.sheldan.abstracto.core.models.cache.CachedMessage;
@@ -14,7 +15,6 @@ import dev.sheldan.abstracto.core.service.ConfigService;
import dev.sheldan.abstracto.core.service.EmoteService;
import dev.sheldan.abstracto.core.service.PostTargetService;
import dev.sheldan.abstracto.templating.service.TemplateService;
import dev.sheldan.abstracto.utility.config.StarboardConfig;
import dev.sheldan.abstracto.utility.config.posttargets.StarboardPostTarget;
import dev.sheldan.abstracto.utility.models.database.StarboardPost;
import dev.sheldan.abstracto.utility.models.template.commands.starboard.StarStatsModel;
@@ -43,6 +43,7 @@ public class StarboardServiceBean implements StarboardService {
public static final String STARBOARD_POST_TEMPLATE = "starboard_post";
public static final String STAR_LVL_CONFIG_PREFIX = "starLvl";
public static final String STAR_LEVELS_CONFIG_KEY = "starLvls";
@Autowired
private BotService botService;
@@ -59,9 +60,6 @@ public class StarboardServiceBean implements StarboardService {
@Autowired
private StarboardPostManagementService starboardPostManagementService;
@Autowired
private StarboardConfig starboardConfig;
@Autowired
private StarboardPostReactorManagementService starboardPostReactorManagementService;
@@ -77,6 +75,9 @@ public class StarboardServiceBean implements StarboardService {
@Autowired
private EmoteService emoteService;
@Autowired
private DefaultConfigManagementService defaultConfigManagementService;
@Autowired
private StarboardServiceBean self;
@@ -221,7 +222,7 @@ public class StarboardServiceBean implements StarboardService {
}
private String getAppropriateEmote(Long serverId, Integer starCount) {
int maxLevels = starboardConfig.getLvl().size();
int maxLevels = defaultConfigManagementService.getDefaultConfig(StarboardServiceBean.STAR_LEVELS_CONFIG_KEY).getLongValue().intValue();
for(int i = maxLevels; i > 0; i--) {
Long starMinimum = configService.getLongValue(STAR_LVL_CONFIG_PREFIX + i, serverId);
if(starCount >= starMinimum) {

View File

@@ -4,8 +4,9 @@ import dev.sheldan.abstracto.core.config.FeatureConfig;
import dev.sheldan.abstracto.core.models.FeatureValidationResult;
import dev.sheldan.abstracto.core.models.database.AServer;
import dev.sheldan.abstracto.core.service.FeatureValidatorService;
import dev.sheldan.abstracto.core.service.management.DefaultConfigManagementService;
import dev.sheldan.abstracto.utility.StarboardFeatureValidator;
import dev.sheldan.abstracto.utility.config.StarboardConfig;
import dev.sheldan.abstracto.utility.service.StarboardServiceBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@@ -13,14 +14,14 @@ import org.springframework.stereotype.Component;
public class StarboardFeatureValidatorService implements StarboardFeatureValidator {
@Autowired
private StarboardConfig starboardConfig;
private FeatureValidatorService featureValidatorService;
@Autowired
private FeatureValidatorService featureValidatorService;
private DefaultConfigManagementService defaultConfigManagementService;
@Override
public void featureIsSetup(FeatureConfig featureConfig, AServer server, FeatureValidationResult validationResult) {
int levelAmount = starboardConfig.getLvl().size();
int levelAmount = defaultConfigManagementService.getDefaultConfig(StarboardServiceBean.STAR_LEVELS_CONFIG_KEY).getLongValue().intValue();
for(int i = 1; i <= levelAmount; i++) {
featureValidatorService.checkSystemConfig("starLvl" + i, server, validationResult);
}

View File

@@ -0,0 +1,11 @@
<?xml version="1.1" encoding="UTF-8" standalone="no"?>
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext"
xmlns:pro="http://www.liquibase.org/xml/ns/pro"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog ../dbchangelog-3.8.xsd
http://www.liquibase.org/xml/ns/dbchangelog-ext ../dbchangelog-3.8.xsd
http://www.liquibase.org/xml/ns/pro ../dbchangelog-3.8.xsd" >
<include file="utility-tables/tables.xml" relativeToChangelogFile="true"/>
<include file="utility-seedData/data.xml" relativeToChangelogFile="true"/>
</databaseChangeLog>

View File

@@ -0,0 +1,92 @@
<?xml version="1.1" encoding="UTF-8" standalone="no"?>
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext"
xmlns:pro="http://www.liquibase.org/xml/ns/pro"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog ../../dbchangelog-3.8.xsd
http://www.liquibase.org/xml/ns/dbchangelog-ext ../../dbchangelog-3.8.xsd
http://www.liquibase.org/xml/ns/pro ../../dbchangelog-3.8.xsd" >
<property name="utilityModule" value="(SELECT id FROM module WHERE name = 'utility')"/>
<property name="remindFeature" value="(SELECT id FROM feature WHERE key = 'remind')"/>
<property name="starboardFeature" value="(SELECT id FROM feature WHERE key = 'starboard')"/>
<property name="suggestionFeature" value="(SELECT id FROM feature WHERE key = 'suggestion')"/>
<property name="utilityFeature" value="(SELECT id FROM feature WHERE key = 'utility')"/>
<property name="today" value="(SELECT NOW())"/>
<changeSet author="Sheldan" id="utility_remind-commands">
<insert tableName="command">
<column name="name" value="remind"/>
<column name="module_id" valueComputed="${utilityModule}"/>
<column name="feature_id" valueComputed="${remindFeature}"/>
<column name="created" valueComputed="${today}"/>
</insert>
<insert tableName="command">
<column name="name" value="reminders"/>
<column name="module_id" valueComputed="${utilityModule}"/>
<column name="feature_id" valueComputed="${remindFeature}"/>
<column name="created" valueComputed="${today}"/>
</insert>
<insert tableName="command">
<column name="name" value="unRemind"/>
<column name="module_id" valueComputed="${utilityModule}"/>
<column name="feature_id" valueComputed="${remindFeature}"/>
<column name="created" valueComputed="${today}"/>
</insert>
</changeSet>
<changeSet author="Sheldan" id="utility_starboard-commands">
<insert tableName="command">
<column name="name" value="starStats"/>
<column name="module_id" valueComputed="${utilityModule}"/>
<column name="feature_id" valueComputed="${remindFeature}"/>
<column name="created" valueComputed="${today}"/>
</insert>
</changeSet>
<changeSet author="Sheldan" id="utility_suggestion-commands">
<insert tableName="command">
<column name="name" value="accept"/>
<column name="module_id" valueComputed="${utilityModule}"/>
<column name="feature_id" valueComputed="${remindFeature}"/>
<column name="created" valueComputed="${today}"/>
</insert>
<insert tableName="command">
<column name="name" value="reject"/>
<column name="module_id" valueComputed="${utilityModule}"/>
<column name="feature_id" valueComputed="${remindFeature}"/>
<column name="created" valueComputed="${today}"/>
</insert>
<insert tableName="command">
<column name="name" value="suggest"/>
<column name="module_id" valueComputed="${utilityModule}"/>
<column name="feature_id" valueComputed="${remindFeature}"/>
<column name="created" valueComputed="${today}"/>
</insert>
</changeSet>
<changeSet author="Sheldan" id="utility_utility-commands">
<insert tableName="command">
<column name="name" value="serverInfo"/>
<column name="module_id" valueComputed="${utilityModule}"/>
<column name="feature_id" valueComputed="${remindFeature}"/>
<column name="created" valueComputed="${today}"/>
</insert>
<insert tableName="command">
<column name="name" value="showEmote"/>
<column name="module_id" valueComputed="${utilityModule}"/>
<column name="feature_id" valueComputed="${remindFeature}"/>
<column name="created" valueComputed="${today}"/>
</insert>
<insert tableName="command">
<column name="name" value="userInfo"/>
<column name="module_id" valueComputed="${utilityModule}"/>
<column name="feature_id" valueComputed="${remindFeature}"/>
<column name="created" valueComputed="${today}"/>
</insert>
<insert tableName="command">
<column name="name" value="showAvatar"/>
<column name="module_id" valueComputed="${utilityModule}"/>
<column name="feature_id" valueComputed="${remindFeature}"/>
<column name="created" valueComputed="${today}"/>
</insert>
</changeSet>
</databaseChangeLog>

View File

@@ -0,0 +1,16 @@
<?xml version="1.1" encoding="UTF-8" standalone="no"?>
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext"
xmlns:pro="http://www.liquibase.org/xml/ns/pro"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog ../../dbchangelog-3.8.xsd
http://www.liquibase.org/xml/ns/dbchangelog-ext ../../dbchangelog-3.8.xsd
http://www.liquibase.org/xml/ns/pro ../../dbchangelog-3.8.xsd" >
<include file="default_config.xml" relativeToChangelogFile="true"/>
<include file="default_emote.xml" relativeToChangelogFile="true"/>
<include file="feature.xml" relativeToChangelogFile="true"/>
<include file="default_feature_flag.xml" relativeToChangelogFile="true"/>
<include file="default_posttarget.xml" relativeToChangelogFile="true"/>
<include file="command.xml" relativeToChangelogFile="true"/>
<include file="reminder_job.xml" relativeToChangelogFile="true"/>
</databaseChangeLog>

View File

@@ -0,0 +1,38 @@
<?xml version="1.1" encoding="UTF-8" standalone="no"?>
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext"
xmlns:pro="http://www.liquibase.org/xml/ns/pro"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog ../../dbchangelog-3.8.xsd
http://www.liquibase.org/xml/ns/dbchangelog-ext ../../dbchangelog-3.8.xsd
http://www.liquibase.org/xml/ns/pro ../../dbchangelog-3.8.xsd" >
<property name="today" value="(SELECT NOW())"/>
<changeSet author="Sheldan" id="starLevels-insert">
<insert tableName="default_config">
<column name="name" value="starLvl1"/>
<column name="long_value" value="5"/>
<column name="created" valueComputed="${today}"/>
</insert>
<insert tableName="default_config">
<column name="name" value="starLvl2"/>
<column name="long_value" value="8"/>
<column name="created" valueComputed="${today}"/>
</insert>
<insert tableName="default_config">
<column name="name" value="starLvl3"/>
<column name="long_value" value="13"/>
<column name="created" valueComputed="${today}"/>
</insert>
<insert tableName="default_config">
<column name="name" value="starLvl4"/>
<column name="long_value" value="17"/>
<column name="created" valueComputed="${today}"/>
</insert>
<insert tableName="default_config">
<column name="name" value="starLvls"/>
<column name="long_value" value="4"/>
<column name="created" valueComputed="${today}"/>
</insert>
</changeSet>
</databaseChangeLog>

View File

@@ -0,0 +1,67 @@
<?xml version="1.1" encoding="UTF-8" standalone="no"?>
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext"
xmlns:pro="http://www.liquibase.org/xml/ns/pro"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog ../../dbchangelog-3.8.xsd
http://www.liquibase.org/xml/ns/dbchangelog-ext ../../dbchangelog-3.8.xsd
http://www.liquibase.org/xml/ns/pro ../../dbchangelog-3.8.xsd" >
<property name="today" value="(SELECT NOW())"/>
<changeSet author="Sheldan" id="utility_default_emote-insert">
<insert tableName="default_emote">
<column name="emote_key" value="suggestionYes"/>
<column name="name" value="⬆"/>
<column name="created" valueComputed="${today}"/>
</insert>
<insert tableName="default_emote">
<column name="emote_key" value="suggestionNo"/>
<column name="name" value="⬇️"/>
<column name="created" valueComputed="${today}"/>
</insert>
<insert tableName="default_emote">
<column name="emote_key" value="star"/>
<column name="name" value="⭐"/>
<column name="created" valueComputed="${today}"/>
</insert>
<insert tableName="default_emote">
<column name="emote_key" value="star1"/>
<column name="name" value="⭐"/>
<column name="created" valueComputed="${today}"/>
</insert>
<insert tableName="default_emote">
<column name="emote_key" value="star2"/>
<column name="name" value="🌟"/>
<column name="created" valueComputed="${today}"/>
</insert>
<insert tableName="default_emote">
<column name="emote_key" value="star3"/>
<column name="name" value="💫"/>
<column name="created" valueComputed="${today}"/>
</insert>
<insert tableName="default_emote">
<column name="emote_key" value="star4"/>
<column name="name" value="🌠"/>
<column name="created" valueComputed="${today}"/>
</insert>
<insert tableName="default_emote">
<column name="emote_key" value="starboardBadge1"/>
<column name="name" value="🥇"/>
<column name="created" valueComputed="${today}"/>
</insert>
<insert tableName="default_emote">
<column name="emote_key" value="starboardBadge2"/>
<column name="name" value="🥈"/>
<column name="created" valueComputed="${today}"/>
</insert>
<insert tableName="default_emote">
<column name="emote_key" value="starboardBadge3"/>
<column name="name" value="🥉"/>
<column name="created" valueComputed="${today}"/>
</insert>
<insert tableName="default_emote">
<column name="emote_key" value="removeEmbed"/>
<column name="name" value="🗑"/>
<column name="created" valueComputed="${today}"/>
</insert>
</changeSet>
</databaseChangeLog>

View File

@@ -0,0 +1,42 @@
<?xml version="1.1" encoding="UTF-8" standalone="no"?>
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext"
xmlns:pro="http://www.liquibase.org/xml/ns/pro"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog ../../dbchangelog-3.8.xsd
http://www.liquibase.org/xml/ns/dbchangelog-ext ../../dbchangelog-3.8.xsd
http://www.liquibase.org/xml/ns/pro ../../dbchangelog-3.8.xsd" >
<property name="starboardFeature" value="(SELECT id FROM feature WHERE key = 'starboard')"/>
<property name="remindFeature" value="(SELECT id FROM feature WHERE key = 'remind')"/>
<property name="suggestionFeature" value="(SELECT id FROM feature WHERE key = 'suggestion')"/>
<property name="utilityFeature" value="(SELECT id FROM feature WHERE key = 'utility')"/>
<property name="linkEmbedFeature" value="(SELECT id FROM feature WHERE key = 'link_embeds')"/>
<property name="today" value="(SELECT NOW())"/>
<changeSet author="Sheldan" id="utility_default_feature_flag-insertion">
<insert tableName="default_feature_flag">
<column name="enabled" value="false"/>
<column name="feature_id" valueComputed="${starboardFeature}" />
<column name="created" valueComputed="${today}"/>
</insert>
<insert tableName="default_feature_flag">
<column name="enabled" value="false"/>
<column name="feature_id" valueComputed="${remindFeature}" />
<column name="created" valueComputed="${today}"/>
</insert>
<insert tableName="default_feature_flag">
<column name="enabled" value="false"/>
<column name="feature_id" valueComputed="${suggestionFeature}" />
<column name="created" valueComputed="${today}"/>
</insert>
<insert tableName="default_feature_flag">
<column name="enabled" value="false"/>
<column name="feature_id" valueComputed="${utilityFeature}" />
<column name="created" valueComputed="${today}"/>
</insert>
<insert tableName="default_feature_flag">
<column name="enabled" value="false"/>
<column name="feature_id" valueComputed="${linkEmbedFeature}" />
<column name="created" valueComputed="${today}"/>
</insert>
</changeSet>
</databaseChangeLog>

View File

@@ -0,0 +1,20 @@
<?xml version="1.1" encoding="UTF-8" standalone="no"?>
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext"
xmlns:pro="http://www.liquibase.org/xml/ns/pro"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog ../../dbchangelog-3.8.xsd
http://www.liquibase.org/xml/ns/dbchangelog-ext ../../dbchangelog-3.8.xsd
http://www.liquibase.org/xml/ns/pro ../../dbchangelog-3.8.xsd" >
<property name="today" value="(SELECT NOW())"/>
<changeSet author="Sheldan" id="utility_default_posttarget-insertion">
<insert tableName="default_posttarget">
<column name="name" value="suggestions"/>
<column name="created" valueComputed="${today}"/>
</insert>
<insert tableName="default_posttarget">
<column name="name" value="starboard"/>
<column name="created" valueComputed="${today}"/>
</insert>
</changeSet>
</databaseChangeLog>

View File

@@ -0,0 +1,32 @@
<?xml version="1.1" encoding="UTF-8" standalone="no"?>
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext"
xmlns:pro="http://www.liquibase.org/xml/ns/pro"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog ../../dbchangelog-3.8.xsd
http://www.liquibase.org/xml/ns/dbchangelog-ext ../../dbchangelog-3.8.xsd
http://www.liquibase.org/xml/ns/pro ../../dbchangelog-3.8.xsd" >
<property name="today" value="(SELECT NOW())"/>
<changeSet author="Sheldan" id="utility_feature-insertion">
<insert tableName="feature">
<column name="key" value="starboard"/>
<column name="created" valueComputed="${today}"/>
</insert>
<insert tableName="feature">
<column name="key" value="remind"/>
<column name="created" valueComputed="${today}"/>
</insert>
<insert tableName="feature">
<column name="key" value="suggestion"/>
<column name="created" valueComputed="${today}"/>
</insert>
<insert tableName="feature">
<column name="key" value="utility"/>
<column name="created" valueComputed="${today}"/>
</insert>
<insert tableName="feature">
<column name="key" value="link_embeds"/>
<column name="created" valueComputed="${today}"/>
</insert>
</changeSet>
</databaseChangeLog>

View File

@@ -0,0 +1,18 @@
<?xml version="1.1" encoding="UTF-8" standalone="no"?>
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext"
xmlns:pro="http://www.liquibase.org/xml/ns/pro"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog ../../dbchangelog-3.8.xsd
http://www.liquibase.org/xml/ns/dbchangelog-ext ../../dbchangelog-3.8.xsd
http://www.liquibase.org/xml/ns/pro ../../dbchangelog-3.8.xsd" >
<changeSet author="Sheldan" id="reminder-job-insert">
<insert tableName="scheduler_job">
<column name="name" value="reminderJob"/>
<column name="group_name" value="utility"/>
<column name="clazz" value="dev.sheldan.abstracto.utility.jobs.ReminderJob"/>
<column name="active" value="true"/>
<column name="recovery" value="false"/>
</insert>
</changeSet>
</databaseChangeLog>

View File

@@ -0,0 +1,54 @@
<?xml version="1.1" encoding="UTF-8" standalone="no"?>
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext"
xmlns:pro="http://www.liquibase.org/xml/ns/pro"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog ../../dbchangelog-3.8.xsd
http://www.liquibase.org/xml/ns/dbchangelog-ext ../../dbchangelog-3.8.xsd
http://www.liquibase.org/xml/ns/pro ../../dbchangelog-3.8.xsd" >
<changeSet author="Sheldan" id="embedded_message-table">
<createTable tableName="embedded_message">
<column name="embedding_message_id" type="BIGINT">
<constraints nullable="false" primaryKey="true" primaryKeyName="embedded_message_pkey"/>
</column>
<column name="created" type="TIMESTAMP WITHOUT TIME ZONE"/>
<column name="embedded_message_id" type="BIGINT"/>
<column name="original_channel" type="BIGINT">
<constraints nullable="false"/>
</column>
<column name="original_server" type="BIGINT">
<constraints nullable="false"/>
</column>
<column name="embedded_user" type="BIGINT">
<constraints nullable="false"/>
</column>
<column name="embedding_channel" type="BIGINT">
<constraints nullable="false"/>
</column>
<column name="embedding_server" type="BIGINT">
<constraints nullable="false"/>
</column>
<column name="embedding_user" type="BIGINT">
<constraints nullable="false"/>
</column>
</createTable>
</changeSet>
<changeSet author="Sheldan" id="embedded_message-fk_embed_channel">
<addForeignKeyConstraint baseColumnNames="embedding_channel" baseTableName="embedded_message" constraintName="fk_embed_channel_channel" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="id" referencedTableName="channel" validate="true"/>
</changeSet>
<changeSet author="Sheldan" id="embedded_message-fk_original_channel">
<addForeignKeyConstraint baseColumnNames="original_channel" baseTableName="embedded_message" constraintName="fk_embed_original_channel_channel" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="id" referencedTableName="channel" validate="true"/>
</changeSet>
<changeSet author="Sheldan" id="embedded_message-fk_embedded_user">
<addForeignKeyConstraint baseColumnNames="embedding_user" baseTableName="embedded_message" constraintName="fk_embedded_user_user" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="user_in_server_id" referencedTableName="user_in_server" validate="true"/>
</changeSet>
<changeSet author="Sheldan" id="embedded_message-fk_embedding_user">
<addForeignKeyConstraint baseColumnNames="embedded_user" baseTableName="embedded_message" constraintName="fk_embedding_user_user" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="user_in_server_id" referencedTableName="user_in_server" validate="true"/>
</changeSet>
<changeSet author="Sheldan" id="embedded_message-fk_embedding_server">
<addForeignKeyConstraint baseColumnNames="embedding_server" baseTableName="embedded_message" constraintName="fk_embedding_server_server" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="id" referencedTableName="server" validate="true"/>
</changeSet>
<changeSet author="Sheldan" id="embedded_message-fk_original_server">
<addForeignKeyConstraint baseColumnNames="original_server" baseTableName="embedded_message" constraintName="fk_embed_original_server_server" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="id" referencedTableName="server" validate="true"/>
</changeSet>
</databaseChangeLog>

View File

@@ -0,0 +1,43 @@
<?xml version="1.1" encoding="UTF-8" standalone="no"?>
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext"
xmlns:pro="http://www.liquibase.org/xml/ns/pro"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog ../../dbchangelog-3.8.xsd
http://www.liquibase.org/xml/ns/dbchangelog-ext ../../dbchangelog-3.8.xsd
http://www.liquibase.org/xml/ns/pro ../../dbchangelog-3.8.xsd" >
<changeSet author="Sheldan" id="reminder-table">
<createTable tableName="reminder">
<column autoIncrement="true" name="id" type="BIGINT">
<constraints nullable="false" primaryKey="true" primaryKeyName="reminder_pkey"/>
</column>
<column name="job_trigger_key" type="VARCHAR(255)"/>
<column name="message_id" type="BIGINT"/>
<column name="reminded" type="BOOLEAN">
<constraints nullable="false"/>
</column>
<column name="created" type="TIMESTAMP WITHOUT TIME ZONE"/>
<column name="target_date" type="TIMESTAMP WITHOUT TIME ZONE"/>
<column name="text" type="VARCHAR(255)"/>
<column name="updated" type="TIMESTAMP WITHOUT TIME ZONE"/>
<column name="channel_id" type="BIGINT">
<constraints nullable="false"/>
</column>
<column name="reminded_user" type="BIGINT">
<constraints nullable="false"/>
</column>
<column name="server_id" type="BIGINT">
<constraints nullable="false"/>
</column>
</createTable>
</changeSet>
<changeSet author="Sheldan" id="reminder-fk_reminder_channel">
<addForeignKeyConstraint baseColumnNames="channel_id" baseTableName="reminder" constraintName="fk_reminder_channel" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="id" referencedTableName="channel" validate="true"/>
</changeSet>
<changeSet author="Sheldan" id="reminder-fk_reminded_user">
<addForeignKeyConstraint baseColumnNames="reminded_user" baseTableName="reminder" constraintName="fk_reminder_user" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="user_in_server_id" referencedTableName="user_in_server" validate="true"/>
</changeSet>
<changeSet author="Sheldan" id="reminder-fk_reminder_server">
<addForeignKeyConstraint baseColumnNames="server_id" baseTableName="reminder" constraintName="fk_reminder_server" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="id" referencedTableName="server" validate="true"/>
</changeSet>
</databaseChangeLog>

View File

@@ -0,0 +1,42 @@
<?xml version="1.1" encoding="UTF-8" standalone="no"?>
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext"
xmlns:pro="http://www.liquibase.org/xml/ns/pro"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog ../../dbchangelog-3.8.xsd
http://www.liquibase.org/xml/ns/dbchangelog-ext ../../dbchangelog-3.8.xsd
http://www.liquibase.org/xml/ns/pro ../../dbchangelog-3.8.xsd" >
<changeSet author="Sheldan" id="starboard-table">
<createTable tableName="starboard_post">
<column autoIncrement="true" name="id" type="BIGINT">
<constraints nullable="false" primaryKey="true" primaryKeyName="starboard_post_pkey"/>
</column>
<column name="created" type="TIMESTAMP WITHOUT TIME ZONE"/>
<column name="ignored" type="BOOLEAN"/>
<column name="post_message_id" type="BIGINT"/>
<column name="starboard_message_id" type="BIGINT"/>
<column name="starred_date" type="TIMESTAMP WITHOUT TIME ZONE"/>
<column name="updated" type="TIMESTAMP WITHOUT TIME ZONE"/>
<column name="poster" type="BIGINT">
<constraints nullable="false"/>
</column>
<column name="source_channel_id" type="BIGINT">
<constraints nullable="false"/>
</column>
<column name="channel_id" type="BIGINT">
<constraints nullable="false"/>
</column>
</createTable>
</changeSet>
<changeSet author="Sheldan" id="starboard-fk_starboard_post_poster">
<addForeignKeyConstraint baseColumnNames="poster" baseTableName="starboard_post" constraintName="fk_starboard_post_poster" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="user_in_server_id" referencedTableName="user_in_server" validate="true"/>
</changeSet>
<changeSet author="Sheldan" id="starboard-fk_starboard_post_channel">
<addForeignKeyConstraint baseColumnNames="channel_id" baseTableName="starboard_post" constraintName="fk_starboard_post_channel" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="id" referencedTableName="channel" validate="true"/>
</changeSet>
<changeSet author="Sheldan" id="starboard-fk_starboard_post_source_channel">
<addForeignKeyConstraint baseColumnNames="source_channel_id" baseTableName="starboard_post" constraintName="fk_starboard_post_source_channel" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="id" referencedTableName="channel" validate="true"/>
</changeSet>
</databaseChangeLog>

View File

@@ -0,0 +1,28 @@
<?xml version="1.1" encoding="UTF-8" standalone="no"?>
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext"
xmlns:pro="http://www.liquibase.org/xml/ns/pro"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog ../../dbchangelog-3.8.xsd
http://www.liquibase.org/xml/ns/dbchangelog-ext ../../dbchangelog-3.8.xsd
http://www.liquibase.org/xml/ns/pro ../../dbchangelog-3.8.xsd" >
<changeSet author="Sheldan" id="starboard_post_reaction-table">
<createTable tableName="starboard_post_reaction">
<column autoIncrement="true" name="id" type="BIGINT">
<constraints nullable="false" primaryKey="true" primaryKeyName="starboard_post_reaction_pkey"/>
</column>
<column name="created" type="TIMESTAMP WITHOUT TIME ZONE"/>
<column name="reactor_id" type="BIGINT">
<constraints nullable="false"/>
</column>
<column name="post_id" type="BIGINT"/>
</createTable>
</changeSet>
<changeSet author="Sheldan" id="starboard_post_reaction-fk_starboard_post_reaction_reactor">
<addForeignKeyConstraint baseColumnNames="reactor_id" baseTableName="starboard_post_reaction" constraintName="fk_starboard_post_reaction_reactor" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="user_in_server_id" referencedTableName="user_in_server" validate="true"/>
</changeSet>
<changeSet author="Sheldan" id="starboard_post_reaction-fk_starboard_post_reaction_post">
<addForeignKeyConstraint baseColumnNames="post_id" baseTableName="starboard_post_reaction" constraintName="fk_starboard_post_reaction_post" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="id" referencedTableName="starboard_post" validate="true"/>
</changeSet>
</databaseChangeLog>

View File

@@ -0,0 +1,35 @@
<?xml version="1.1" encoding="UTF-8" standalone="no"?>
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext"
xmlns:pro="http://www.liquibase.org/xml/ns/pro"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog ../../dbchangelog-3.8.xsd
http://www.liquibase.org/xml/ns/dbchangelog-ext ../../dbchangelog-3.8.xsd
http://www.liquibase.org/xml/ns/pro ../../dbchangelog-3.8.xsd" >
<changeSet author="Sheldan" id="suggestion-table">
<createTable tableName="suggestion">
<column autoIncrement="true" name="id" type="BIGINT">
<constraints nullable="false" primaryKey="true" primaryKeyName="suggestion_pkey"/>
</column>
<column name="created" type="TIMESTAMP WITHOUT TIME ZONE"/>
<column name="message_id" type="BIGINT"/>
<column name="state" type="VARCHAR(255)"/>
<column name="suggestion_date" type="TIMESTAMP WITHOUT TIME ZONE"/>
<column name="updated" type="TIMESTAMP WITHOUT TIME ZONE"/>
<column name="channel_id" type="BIGINT"/>
<column name="server_id" type="BIGINT"/>
<column name="suggester_id" type="BIGINT">
<constraints nullable="false"/>
</column>
</createTable>
</changeSet>
<changeSet author="Sheldan" id="suggestion-fk_suggestion_channel">
<addForeignKeyConstraint baseColumnNames="channel_id" baseTableName="suggestion" constraintName="fk_suggestion_channel" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="id" referencedTableName="channel" validate="true"/>
</changeSet>
<changeSet author="Sheldan" id="suggestion-fk_suggestion_suggester">
<addForeignKeyConstraint baseColumnNames="suggester_id" baseTableName="suggestion" constraintName="fk_suggestion_suggester" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="user_in_server_id" referencedTableName="user_in_server" validate="true"/>
</changeSet>
<changeSet author="Sheldan" id="suggestion-fk_suggestion_server">
<addForeignKeyConstraint baseColumnNames="server_id" baseTableName="suggestion" constraintName="fk_suggestion_server" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="id" referencedTableName="server" validate="true"/>
</changeSet>
</databaseChangeLog>

View File

@@ -0,0 +1,14 @@
<?xml version="1.1" encoding="UTF-8" standalone="no"?>
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext"
xmlns:pro="http://www.liquibase.org/xml/ns/pro"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog ../../dbchangelog-3.8.xsd
http://www.liquibase.org/xml/ns/dbchangelog-ext ../../dbchangelog-3.8.xsd
http://www.liquibase.org/xml/ns/pro ../../dbchangelog-3.8.xsd" >
<include file="embedded_message.xml" relativeToChangelogFile="true"/>
<include file="reminder.xml" relativeToChangelogFile="true"/>
<include file="starboard.xml" relativeToChangelogFile="true"/>
<include file="starboard_post.xml" relativeToChangelogFile="true"/>
<include file="suggestion.xml" relativeToChangelogFile="true"/>
</databaseChangeLog>

View File

@@ -0,0 +1,10 @@
<?xml version="1.1" encoding="UTF-8" standalone="no"?>
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext"
xmlns:pro="http://www.liquibase.org/xml/ns/pro"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog dbchangelog-3.8.xsd
http://www.liquibase.org/xml/ns/dbchangelog-ext dbchangelog-3.8.xsd
http://www.liquibase.org/xml/ns/pro dbchangelog-3.8.xsd" >
<include file="1.0-utility/collection.xml" relativeToChangelogFile="true"/>
</databaseChangeLog>

View File

@@ -1,27 +0,0 @@
{
"author": {
"name": "${member.effectiveName}",
"avatar": "${member.user.effectiveAvatarUrl}"
},
"color" : {
"r": 200,
"g": 0,
"b": 255
},
"description": "<#include "remind_reminder_description">",
"fields": [
{
"name": "<#include "remind_reminder_duration_field_title">",
"value": "${fmtDuration(duration)}"
},
{
"name": "<#include "remind_reminder_note_field_title">",
"value": "${reminder.text}"
},
{
"name": "<#include "remind_reminder_link_field_title">",
"value": "[<#include "remind_reminder_link_content_display_text">](${messageUrl})"
}
],
"additionalMessage": "${member.asMention}"
}

View File

@@ -1,15 +0,0 @@
{
<#assign id>${reminder.id}</#assign>
<#assign messageUrl>${message.jumpUrl}</#assign>
"author": {
"name": "${member.effectiveName}",
"avatar": "${member.user.effectiveAvatarUrl}"
},
"color" : {
"r": 200,
"g": 0,
"b": 255
},
"description": "<#include "remind_reminding_description_text">",
"additionalMessage": "${member.asMention}"
}

View File

@@ -1,24 +0,0 @@
{
"author": {
"name": "${member.effectiveName}",
"avatar": "${member.user.effectiveAvatarUrl}"
},
"color" : {
"r": 200,
"g": 0,
"b": 255
},
"title": {
"title": "<#include "reminders_reminders_embed_title">"
},
"fields": [
<#list reminders as reminder>
{
<#assign id>${reminder.id}</#assign>
"name": "<#include "reminders_reminder_field_title">",
"value": "<#include "reminders_due_on">"
}
<#sep>,
</#list>
]
}

View File

@@ -1 +0,0 @@
<#assign additionalInfo><#if count gt 1>${count}<#else><#assign count>${list?size}</#assign><#include "serverinfo_embed_emotes_title_total_emotes"></#if></#assign><#include "serverinfo_embed_emotes_field_title_message">

View File

@@ -1,43 +0,0 @@
{
"title": {
"title": "<#assign name=guild.name><#include "serverinfo_embed_title">"
},
"color" : {
"r": 200,
"g": 0,
"b": 255
},
"fields": [
{
"name": "<#include "serverinfo_embed_id_field_title">",
"value": "${guild.id}",
"inline": "true"
},
{
"name": "<#include "serverinfo_embed_owner_field_title">",
"value": "${guild.owner.effectiveName}#${guild.owner.user.discriminator}",
"inline": "true"
},
{
"name": "<#include "serverinfo_embed_members_field_title">",
"value": "${guild.memberCount}",
"inline": "true"
},
{
"name": "<#include "serverinfo_embed_role_count_field_title">",
"value": "${guild.roles?size}",
"inline": "true"
},
{
"name": "<#include "serverinfo_embed_created_field_title">",
"value": "${guild.timeCreated}",
"inline": "true"
},
${safeFieldLength(guild.emotes, 'emote_mention', 'serverinfo_embed_emotes_field_title', 'false')},
{
"name": "<#include "serverinfo_embed_features_field_title">",
"value": "<#list guild.features as feature>${feature}<#else>No features</#list>",
"inline": "true"
}
]
}

View File

@@ -1,24 +0,0 @@
{
"author": {
"name": "${memberInfo.user.name}#${memberInfo.user.discriminator}",
"avatar": "${memberInfo.user.effectiveAvatarUrl}"
},
"color" : {
"r": 200,
"g": 0,
"b": 255
},
"imageUrl": "${memberInfo.user.effectiveAvatarUrl}",
"fields": [
{
"name": "<#include "showAvatar_response_embed_user_field_title">",
"value": "${memberInfo.user.name}#${memberInfo.user.discriminator}",
"inline": "true"
},
{
"name": "<#include "showAvatar_response_embed_image_field_title">",
"value": "[<#include "showAvatar_response_embed_image_field_value_display">](${memberInfo.user.effectiveAvatarUrl})",
"inline": "true"
}
]
}

View File

@@ -1 +0,0 @@
<#assign name> ${emote.name} </#assign> <#assign url> ${emote.imageUrl} </#assign>**<#include "showEmote_name">**: ${emote.name} **<#include "showEmote_link">**: ${emote.imageUrl}

View File

@@ -1,53 +0,0 @@
{
"title": {
"title": "<#include "starStats_response_title">"
},
"color" : {
"r": 200,
"g": 0,
"b": 255
},
"description": "<#include "startStats_description">",
"fields": [
{
"name": "<#include "starStats_top_starred_field_title">",
"value": "
<#list topPosts as post>
<#assign badge>${badgeEmotes[post?index]}</#assign><#assign count>${post.starCount}</assign><#assign link>${post.messageUrl}</#assign> <#include "starStats_starred_entry">
<#else>
<#include "starStats_no_starred_messages">
</#list>
"
},
{
"name": "<#include "starStats_top_starrer_field_title">",
"value": "
<#list starGiver as starrer>
<#assign badge>${badgeEmotes[starrer?index]}</#assign><#assign count>${starrer.starCount}</assign>
<#if starrer.member?has_content>
<#assign user>${starrer.member.asMention}</#assign> <#include "starStats_starrer_entry">
<#else>
<#assign user>${starrer.user.id?c}</#assign> <#include "starStats_starrer_entry_left_guild_en_US.ftl">
</#if>
<#else>
<#include "starStats_no_starred_messages">
</#list>
"
},
{
"name": "<#include "starStats_top_receiver_field_title">",
"value": "
<#list starReceiver as starred>
<#assign badge>${badgeEmotes[starred?index]}</#assign><#assign count>${starred.starCount}</assign>
<#if starred.member?has_content>
<#assign user>${starred.member.asMention}</#assign> <#include "starStats_receiver_entry">
<#else>
<#assign user>${starred.user.id?c}</#assign> <#include "starStats_receiver_entry_left_guild">
</#if>
<#else>
<#include "starStats_no_starred_messages">
</#list>
"
}
]
}

View File

@@ -1,35 +0,0 @@
{
"author": {
<#if suggester?has_content>
"name": "${suggester.effectiveName}",
"avatar": "${suggester.user.effectiveAvatarUrl}"
<#else>
"name": "${suggesterUser.userReference.id}"
</#if>
},
"color" : {
"r": 200,
"g": 0,
"b": 255
},
<#assign user>${member.effectiveName}</#assign>
<#assign id>${suggestion.id}</#assign>
<#if suggestion.state = "ACCEPTED">
"description": "~~${text}~~ \n✅ ${reason} - <#include "suggest_accepted_by">",
<#elseif suggestion.state = "REJECTED">
"description": "~~${text}~~ \n❌ ${reason} - <#include "suggest_rejected_by">",
<#else>
"description": "${text}",
</#if>
<#if suggestion.state = "ACCEPTED" || suggestion.state = "REJECTED">
"fields": [
{
"name": "<#include "suggest_link_field_title">",
"value": "[<#include "suggest_link_display_value">](${originalMessageUrl})"
}
],
</#if>
"footer": {
"text": "<#include "suggest_suggestion_id_footer">"
}
}

View File

@@ -1,49 +0,0 @@
{
"author": {
"name": "${memberInfo.user.name}#${memberInfo.user.discriminator}",
"avatar": "${memberInfo.user.effectiveAvatarUrl}"
},
"color" : {
"r": 200,
"g": 0,
"b": 255
},
"thumbnail": "${memberInfo.user.effectiveAvatarUrl}",
"fields": [
{
"name": "<#include "userInfo_response_embed_id_field_title">",
"value": "${memberInfo.user.id}",
"inline": "true"
},
<#if memberInfo.nickname?has_content>
{
"name": "<#include "userInfo_response_embed_nickname_field_title">",
"value": "${memberInfo.nickname}",
"inline": "true"
},
</#if>
{
"name": "<#include "userInfo_response_embed_status_field_title">",
"value": "${memberInfo.onlineStatus.key}",
"inline": "true"
},
{
"name": "<#include "userInfo_response_embed_joined_field_title">",
"value": "${formatDate(memberInfo.timeJoined, "yyyy-MM-dd HH:mm:ss")}",
"inline": "true"
},
{
"name": "<#include "userInfo_response_embed_registered_field_title">",
"value": "${formatDate(memberInfo.timeCreated, "yyyy-MM-dd HH:mm:ss")}",
"inline": "true"
}
<#if memberInfo.activities?size gt 0>
,
{
"name": "<#include "userInfo_response_embed_activity_field_title">",
"value": "<#list memberInfo.activities as activity>${activity.type}<#sep>, </#list>",
"inline": "true"
}
</#if>
]
}

View File

@@ -1,34 +0,0 @@
{
"author": {
"name": "${author.effectiveName}",
"avatar": "${author.user.effectiveAvatarUrl}"
},
"color" : {
"r": 200,
"g": 0,
"b": 255
},
<#if embeddedMessage.content?has_content || embeddedMessage.embeds?size gt 0>
"description": "${embeddedMessage.content}
<#list embeddedMessage.embeds>
<#include "message_embed_embed_embeds_name">:
<#items as embed>
<#include "message_embed_embed_description">: <#if embed.description?has_content >${embed.description}</#if> <#if embed.imageUrl?has_content> <#include "message_embed_embed_image_url">: ${embed.imageUrl} </#if>
</#items>
</#list>
",
</#if>
<#if embeddedMessage.attachmentUrls?size gt 0>
"imageUrl": "${embeddedMessage.attachmentUrls[0]}",
</#if>
"fields": [
{
"name": "<#include "message_embed_embed_quoted_by_field_title">",
<#assign user>${embeddingUser.asMention}</#assign>
<#assign channelName>${sourceChannel.name}</#assign>
<#assign messageLink>${embeddedMessage.messageUrl}</#assign>
"value": "<#include "message_embed_embed_quoted_by_field_value">"
}
],
"timeStamp": "${embeddedMessage.timeCreated}"
}

View File

@@ -1,49 +0,0 @@
{
"author": {
<#if author?has_content>
"name": "${author.effectiveName}",
"avatar": "${author.user.effectiveAvatarUrl}"
<#else>
"name": "${user.id?c} (<#include "user_left_server">)"
</#if>
},
"color" : {
"r": 200,
"g": 0,
"b": 255
}
<#if message.content?has_content || message.embeds?size gt 0>
,"description": "${message.content}
<#list message.embeds>
<#include "starboard_post_embed_embeds_name">:
<#items as embed>
<#include "starboard_post_embed_description">: ${embed.description} <#if embed.imageUrl?has_content> <#include "starboard_post_embed_image_url">: ${embed.imageUrl} </#if>
</#items>
</#list>
"
</#if>
<#assign emote>${starLevelEmote}</#assign>
<#assign count>${starCount}</#assign>
<#assign messageId>${message.messageId?c}</#assign>
<#if channel?has_content>
<#assign channelMention>${channel.asMention}</#assign>
,"additionalMessage": "<#include "starboard_post_embed_additional_message">"
<#else>
<#assign channelMention>${aChannel.id?c}</#assign>
,"additionalMessage": "<#include "starboard_post_embed_additional_message">"
</#if>
<#if message.attachmentUrls?size gt 0>
,"imageUrl": "${message.attachmentUrls[0]}"
</#if>
,"fields": [
{
"name": "<#include "starboard_post_embed_original_field_title">"
<#if channel?has_content>
,"value": "[${channel.name}](${message.messageUrl})"
<#else>
,"value": "[${aChannel.id?c}](${message.messageUrl})"
</#if>
}
],
"timeStamp": "${message.timeCreated}"
}

View File

@@ -1,32 +0,0 @@
abstracto.postTargets.utility=suggestions,starboard
abstracto.emoteNames.suggestion=suggestionYes,suggestionNo
abstracto.emoteNames.starboard=star,star1,star2,star3,star4,starboardBadge1,starboardBadge2,starboardBadge3
abstracto.emoteNames.embed=removeEmbed
abstracto.defaultEmotes.suggestionYes=\u2B06\uFE0F
abstracto.defaultEmotes.suggestionNo=\u2B07\uFE0F
abstracto.defaultEmotes.star=\u2B50
abstracto.defaultEmotes.star1=\u2B50
abstracto.defaultEmotes.star2=\uD83C\uDF1F
abstracto.defaultEmotes.star3=\uD83D\uDCAB
abstracto.defaultEmotes.star4=\uD83C\uDF20
abstracto.defaultEmotes.starboardBadge1=\ud83e\udd47
abstracto.defaultEmotes.starboardBadge2=\ud83e\udd48
abstracto.defaultEmotes.starboardBadge3=\ud83e\udd49
abstracto.defaultEmotes.removeEmbed=\uD83D\uDDD1\uFE0F
abstracto.starboard.lvl[0]=5
abstracto.starboard.lvl[1]=8
abstracto.starboard.lvl[2]=13
abstracto.starboard.lvl[3]=17
abstracto.scheduling.jobs.reminderJob.name=reminderJob
abstracto.scheduling.jobs.reminderJob.group=utility
abstracto.scheduling.jobs.reminderJob.clazz=dev.sheldan.abstracto.utility.jobs.ReminderJob
abstracto.scheduling.jobs.reminderJob.standAlone=false
abstracto.scheduling.jobs.reminderJob.active=true
abstracto.scheduling.jobs.reminderJob.recovery=false
abstracto.features.starboard.enabled=false
abstracto.features.remind.enabled=false
abstracto.features.suggestion.enabled=false
abstracto.features.utility.enabled=false
abstracto.features.link_embeds.enabled=false