Adding preliminary table work and breadalert framing
This commit is contained in:
parent
d9561d9179
commit
617a49bb16
BIN
breadbot_test.db
Normal file
BIN
breadbot_test.db
Normal file
Binary file not shown.
@ -13,11 +13,20 @@ const client : Client = new Client({
|
||||
|
||||
if (config.DB_MODE == "sqlite") {
|
||||
const db = new utilities.sqlite.SqliteDB("breadbot_test.db")
|
||||
|
||||
db.run("PRAGMA foreign_keys = ON")
|
||||
|
||||
utilities.tables.makeTables(db)
|
||||
}
|
||||
|
||||
client.once(Events.ClientReady, () => {
|
||||
// TODO Winston should handle this
|
||||
console.log("Breadbot is ready")
|
||||
|
||||
client.guilds.cache.forEach(async (guild: Guild) => {
|
||||
console.log(`ID: ${guild.id}, Name: ${guild.name}, Desc: ${guild.description}`)
|
||||
await utilities.command.deployCommands(guild.id)
|
||||
})
|
||||
})
|
||||
|
||||
client.on(Events.GuildCreate, async (guild : Guild) => {
|
||||
|
55
src/commands/breadalert.ts
Normal file
55
src/commands/breadalert.ts
Normal file
@ -0,0 +1,55 @@
|
||||
import { CommandInteraction, SlashCommandBuilder } from "discord.js";
|
||||
|
||||
export const enabled: boolean = true
|
||||
|
||||
export const data = new SlashCommandBuilder()
|
||||
.setName("breadalert")
|
||||
.setDescription("Controls event alerting using the Bread Alert subsystem")
|
||||
.addSubcommand((subcommand) =>
|
||||
subcommand
|
||||
.setName("list")
|
||||
.setDescription("List the current Bread Alert active alerts")
|
||||
.addNumberOption(option =>
|
||||
option
|
||||
.setName("count")
|
||||
.setDescription("The number of future alerts to return, default 5")
|
||||
.setRequired(false)
|
||||
)
|
||||
)
|
||||
.addSubcommand(subcommand =>
|
||||
subcommand
|
||||
.setName("add")
|
||||
.setDescription("Add a new Bread Alert")
|
||||
.addStringOption(option =>
|
||||
option
|
||||
.setName("name")
|
||||
.setDescription("The name of the event, must be unique")
|
||||
.setRequired(true)
|
||||
)
|
||||
.addStringOption(option =>
|
||||
option
|
||||
.setName("date")
|
||||
.setDescription("The date and time of the event in YYYY-MM-DD HH:MM:SS format")
|
||||
.setRequired(true)
|
||||
)
|
||||
.addStringOption(option =>
|
||||
option
|
||||
.setName("notifications")
|
||||
.setDescription("A comma separated list of time offsets that determine when to alert prior to the event")
|
||||
.setRequired(false)
|
||||
)
|
||||
)
|
||||
.addSubcommand(subcommand =>
|
||||
subcommand
|
||||
.setName("delete")
|
||||
.setDescription("Delete a Bread Alert")
|
||||
.addStringOption(option =>
|
||||
option
|
||||
.setName("name")
|
||||
.setDescription("The name of the event to remove")
|
||||
)
|
||||
)
|
||||
|
||||
export async function execute(interaction: CommandInteraction) {
|
||||
return interaction.reply("NOT IMPLEMENTED!")
|
||||
}
|
@ -1,5 +1,7 @@
|
||||
import * as ping from "./ping";
|
||||
import * as breadalert from "./breadalert"
|
||||
|
||||
export const commands = {
|
||||
ping
|
||||
ping,
|
||||
breadalert
|
||||
}
|
@ -1,7 +1,9 @@
|
||||
import * as command from "./discord/command_utils"
|
||||
import * as sqlite from "./storage/sqlite"
|
||||
import * as tables from "./storage/tables"
|
||||
|
||||
export const utilities = {
|
||||
command,
|
||||
sqlite
|
||||
sqlite,
|
||||
tables
|
||||
}
|
@ -17,7 +17,11 @@ export class SqliteDB implements sql_common {
|
||||
console.log(err)
|
||||
throw err
|
||||
} else {
|
||||
if (result != null) {
|
||||
return result.changes
|
||||
} else {
|
||||
return 0
|
||||
}
|
||||
}
|
||||
})
|
||||
})
|
||||
|
11
src/utilties/storage/tables.ts
Normal file
11
src/utilties/storage/tables.ts
Normal file
@ -0,0 +1,11 @@
|
||||
import { sql_common } from "./interfaces";
|
||||
|
||||
const tables: string[] = [
|
||||
"CREATE TABLE IF NOT EXISTS servers (server_snowflake bigint NOT NULL PRIMARY KEY,server_name text NOT NULL,server_description mediumtext);",
|
||||
"CREATE TABLE IF NOT EXISTS channels (channel_snowflake bigint NOT NULL PRIMARY KEY,server_snowflake bigint NOT NULL,channel_name text NOT NULL);"
|
||||
]
|
||||
|
||||
export async function makeTables(db: sql_common): Promise<number[]> {
|
||||
return Promise.all(tables.map((statement) => db.run(statement)))
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user