clearing unused values from database on ready
This commit is contained in:
@@ -26,6 +26,7 @@ var commands []Command = []Command{cmd_form, cmd_tag, cmd_tag_short, cmd_dadjoke
|
|||||||
|
|
||||||
func ready(s *discordgo.Session, event *discordgo.Ready) {
|
func ready(s *discordgo.Session, event *discordgo.Ready) {
|
||||||
fmt.Print("\nStarting up...")
|
fmt.Print("\nStarting up...")
|
||||||
|
findAndDeleteUnusedMessages()
|
||||||
removeOldCommandFromAllGuilds(s)
|
removeOldCommandFromAllGuilds(s)
|
||||||
var existingCommandNames []string
|
var existingCommandNames []string
|
||||||
for _, guild := range event.Guilds {
|
for _, guild := range event.Guilds {
|
||||||
@@ -140,7 +141,7 @@ func messageCreate(s *discordgo.Session, m *discordgo.MessageCreate) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func messageDelete(s *discordgo.Session, m *discordgo.MessageDelete) { //TODO: also clear on bot start when message doesn't exist
|
func messageDelete(s *discordgo.Session, m *discordgo.MessageDelete) { //TODO: also clear on bot start when message doesn't exist
|
||||||
tryDeleteUnusedMessage(m.GuildID, m.ChannelID, m.ID)
|
tryDeleteUnusedMessage(m.ID)
|
||||||
}
|
}
|
||||||
|
|
||||||
func guildMemberJoin(s *discordgo.Session, m *discordgo.GuildMemberAdd) {
|
func guildMemberJoin(s *discordgo.Session, m *discordgo.GuildMemberAdd) {
|
||||||
|
@@ -361,9 +361,31 @@ func isAutopublishEnabled(guildID string, newsChannelID string) bool {
|
|||||||
return enabled
|
return enabled
|
||||||
}
|
}
|
||||||
|
|
||||||
func tryDeleteUnusedMessage(guildID string, channelID string, messageID string) {
|
func tryDeleteUnusedMessage(messageID string) {
|
||||||
_, err := db.Exec("DELETE FROM form_manage WHERE guild_id = $1 AND channel_id = $2 AND message_id = $3", guildID, channelID, messageID)
|
_, err := db.Exec("DELETE FROM form_manage WHERE message_id = $1", messageID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Println(err)
|
log.Println(err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func getAllSavedMessages() []MessageIDs {
|
||||||
|
var savedMessages []MessageIDs
|
||||||
|
rows, err := db.Query("SELECT message_id, channel_id FROM form_manage")
|
||||||
|
if err != nil {
|
||||||
|
log.Print(err)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
defer rows.Close()
|
||||||
|
for rows.Next() {
|
||||||
|
var messageID, channelID string
|
||||||
|
if err := rows.Scan(&messageID, &channelID); err != nil {
|
||||||
|
log.Print(err)
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
savedMessages = append(savedMessages, MessageIDs{ID: messageID, ChannelID: channelID})
|
||||||
|
}
|
||||||
|
if err := rows.Err(); err != nil {
|
||||||
|
log.Print(err)
|
||||||
|
}
|
||||||
|
return savedMessages
|
||||||
|
}
|
||||||
|
21
tool.go
21
tool.go
@@ -27,6 +27,11 @@ type ModalJson struct {
|
|||||||
Form []ModalJsonField `json:"form"`
|
Form []ModalJsonField `json:"form"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type MessageIDs struct {
|
||||||
|
ID string
|
||||||
|
ChannelID string
|
||||||
|
}
|
||||||
|
|
||||||
func jsonStringShowModal(interaction *discordgo.Interaction, manageID string, formID string, overwrite ...string) {
|
func jsonStringShowModal(interaction *discordgo.Interaction, manageID string, formID string, overwrite ...string) {
|
||||||
var modal ModalJson = getModalByFormID(formID)
|
var modal ModalJson = getModalByFormID(formID)
|
||||||
var components []discordgo.MessageComponent
|
var components []discordgo.MessageComponent
|
||||||
@@ -152,3 +157,19 @@ func respondEmbed(interaction *discordgo.Interaction, embed discordgo.MessageEmb
|
|||||||
},
|
},
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func checkMessageNotExists(channelID, messageID string) bool {
|
||||||
|
_, err := bot.ChannelMessage(channelID, messageID)
|
||||||
|
if err != nil {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
func findAndDeleteUnusedMessages() {
|
||||||
|
for _, message := range getAllSavedMessages() {
|
||||||
|
if checkMessageNotExists(message.ChannelID, message.ID) {
|
||||||
|
tryDeleteUnusedMessage(message.ID)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Reference in New Issue
Block a user