mirror of
https://github.com/arthur-pbty/LazyBot.git
synced 2026-06-07 23:04:36 +02:00
feat: Enhance goodbye and welcome forms with new message types and image options
- Added support for different message types (text, embed, both) in goodbye and welcome forms. - Implemented embed options including title, description, color, thumbnail, and footer for both forms. - Introduced image options with gradient selection, title, subtitle, and member count display for goodbye and welcome messages. - Updated API routes to handle new configuration parameters for saving and retrieving goodbye and welcome settings. - Created a new function to generate welcome images with customizable gradients and text.
This commit is contained in:
@@ -32,15 +32,37 @@ db.exec(`
|
||||
CREATE TABLE IF NOT EXISTS welcome_config (
|
||||
guild_id TEXT PRIMARY KEY,
|
||||
channel_id TEXT,
|
||||
enabled INTEGER NOT NULL,
|
||||
message TEXT NOT NULL
|
||||
enabled INTEGER NOT NULL DEFAULT 0,
|
||||
message TEXT,
|
||||
message_type TEXT NOT NULL DEFAULT 'embed',
|
||||
embed_title TEXT,
|
||||
embed_description TEXT,
|
||||
embed_color TEXT DEFAULT '#57F287',
|
||||
embed_thumbnail INTEGER NOT NULL DEFAULT 1,
|
||||
embed_footer TEXT,
|
||||
image_enabled INTEGER NOT NULL DEFAULT 0,
|
||||
image_gradient TEXT DEFAULT 'purple',
|
||||
image_title TEXT,
|
||||
image_subtitle TEXT,
|
||||
image_show_member_count INTEGER NOT NULL DEFAULT 1
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS goodbye_config (
|
||||
guild_id TEXT PRIMARY KEY,
|
||||
channel_id TEXT,
|
||||
enabled INTEGER NOT NULL,
|
||||
message TEXT NOT NULL
|
||||
enabled INTEGER NOT NULL DEFAULT 0,
|
||||
message TEXT,
|
||||
message_type TEXT NOT NULL DEFAULT 'embed',
|
||||
embed_title TEXT,
|
||||
embed_description TEXT,
|
||||
embed_color TEXT DEFAULT '#ED4245',
|
||||
embed_thumbnail INTEGER NOT NULL DEFAULT 1,
|
||||
embed_footer TEXT,
|
||||
image_enabled INTEGER NOT NULL DEFAULT 0,
|
||||
image_gradient TEXT DEFAULT 'red',
|
||||
image_title TEXT,
|
||||
image_subtitle TEXT,
|
||||
image_show_member_count INTEGER NOT NULL DEFAULT 1
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS autorole_newuser_config (
|
||||
@@ -443,4 +465,58 @@ db.exec(`
|
||||
);
|
||||
`);
|
||||
|
||||
// Migration: Ajouter les nouvelles colonnes pour welcome/goodbye si elles n'existent pas
|
||||
const migrateWelcomeGoodbye = () => {
|
||||
// Colonnes à ajouter pour welcome_config
|
||||
const welcomeColumns = [
|
||||
{ name: 'message_type', sql: "ALTER TABLE welcome_config ADD COLUMN message_type TEXT NOT NULL DEFAULT 'embed'" },
|
||||
{ name: 'embed_title', sql: "ALTER TABLE welcome_config ADD COLUMN embed_title TEXT" },
|
||||
{ name: 'embed_description', sql: "ALTER TABLE welcome_config ADD COLUMN embed_description TEXT" },
|
||||
{ name: 'embed_color', sql: "ALTER TABLE welcome_config ADD COLUMN embed_color TEXT DEFAULT '#57F287'" },
|
||||
{ name: 'embed_thumbnail', sql: "ALTER TABLE welcome_config ADD COLUMN embed_thumbnail INTEGER NOT NULL DEFAULT 1" },
|
||||
{ name: 'embed_footer', sql: "ALTER TABLE welcome_config ADD COLUMN embed_footer TEXT" },
|
||||
{ name: 'image_enabled', sql: "ALTER TABLE welcome_config ADD COLUMN image_enabled INTEGER NOT NULL DEFAULT 0" },
|
||||
{ name: 'image_gradient', sql: "ALTER TABLE welcome_config ADD COLUMN image_gradient TEXT DEFAULT 'purple'" },
|
||||
{ name: 'image_title', sql: "ALTER TABLE welcome_config ADD COLUMN image_title TEXT" },
|
||||
{ name: 'image_subtitle', sql: "ALTER TABLE welcome_config ADD COLUMN image_subtitle TEXT" },
|
||||
{ name: 'image_show_member_count', sql: "ALTER TABLE welcome_config ADD COLUMN image_show_member_count INTEGER NOT NULL DEFAULT 1" }
|
||||
];
|
||||
|
||||
// Colonnes à ajouter pour goodbye_config
|
||||
const goodbyeColumns = [
|
||||
{ name: 'message_type', sql: "ALTER TABLE goodbye_config ADD COLUMN message_type TEXT NOT NULL DEFAULT 'embed'" },
|
||||
{ name: 'embed_title', sql: "ALTER TABLE goodbye_config ADD COLUMN embed_title TEXT" },
|
||||
{ name: 'embed_description', sql: "ALTER TABLE goodbye_config ADD COLUMN embed_description TEXT" },
|
||||
{ name: 'embed_color', sql: "ALTER TABLE goodbye_config ADD COLUMN embed_color TEXT DEFAULT '#ED4245'" },
|
||||
{ name: 'embed_thumbnail', sql: "ALTER TABLE goodbye_config ADD COLUMN embed_thumbnail INTEGER NOT NULL DEFAULT 1" },
|
||||
{ name: 'embed_footer', sql: "ALTER TABLE goodbye_config ADD COLUMN embed_footer TEXT" },
|
||||
{ name: 'image_enabled', sql: "ALTER TABLE goodbye_config ADD COLUMN image_enabled INTEGER NOT NULL DEFAULT 0" },
|
||||
{ name: 'image_gradient', sql: "ALTER TABLE goodbye_config ADD COLUMN image_gradient TEXT DEFAULT 'red'" },
|
||||
{ name: 'image_title', sql: "ALTER TABLE goodbye_config ADD COLUMN image_title TEXT" },
|
||||
{ name: 'image_subtitle', sql: "ALTER TABLE goodbye_config ADD COLUMN image_subtitle TEXT" },
|
||||
{ name: 'image_show_member_count', sql: "ALTER TABLE goodbye_config ADD COLUMN image_show_member_count INTEGER NOT NULL DEFAULT 1" }
|
||||
];
|
||||
|
||||
// Exécuter les migrations pour welcome_config
|
||||
welcomeColumns.forEach(col => {
|
||||
db.run(col.sql, (err) => {
|
||||
if (err && !err.message.includes('duplicate column')) {
|
||||
// Ignorer les erreurs de colonnes dupliquées
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
// Exécuter les migrations pour goodbye_config
|
||||
goodbyeColumns.forEach(col => {
|
||||
db.run(col.sql, (err) => {
|
||||
if (err && !err.message.includes('duplicate column')) {
|
||||
// Ignorer les erreurs de colonnes dupliquées
|
||||
}
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
// Exécuter la migration
|
||||
migrateWelcomeGoodbye();
|
||||
|
||||
module.exports = db;
|
||||
|
||||
Reference in New Issue
Block a user