Files
acecore/plugin_src/stickymessages/data.go
2024-04-15 18:17:12 +02:00

63 lines
1.8 KiB
Go

package main
import (
"github.com/sirupsen/logrus"
)
func addSticky(guildID string, channelID string, messageContent string, messageID string) {
_, err := db.Exec("INSERT INTO sticky (guild_id, channel_id, message_id, message_content) VALUES ($1, $2, $3, $4)", guildID, channelID, messageID, messageContent)
if err != nil {
logrus.Error(err)
}
}
func hasSticky(guildID string, channelID string) bool {
var exists bool
err := db.QueryRow("SELECT EXISTS (SELECT 1 FROM sticky WHERE guild_id = $1 AND channel_id = $2)", guildID, channelID).Scan(&exists)
if err != nil {
logrus.Error(err)
}
return exists
}
func getStickyMessageID(guildID string, channelID string) string {
var messageID string
exists := hasSticky(guildID, channelID)
if exists {
err := db.QueryRow("SELECT message_id FROM sticky WHERE guild_id = $1 AND channel_id = $2", guildID, channelID).Scan(&messageID)
if err != nil {
logrus.Error(err)
}
}
return messageID
}
func getStickyMessageContent(guildID string, channelID string) string {
var messageID string
exists := hasSticky(guildID, channelID)
if exists {
err := db.QueryRow("SELECT message_content FROM sticky WHERE guild_id = $1 AND channel_id = $2", guildID, channelID).Scan(&messageID)
if err != nil {
logrus.Error(err)
}
}
return messageID
}
func updateStickyMessageID(guildID string, channelID string, messageID string) {
exists := hasSticky(guildID, channelID)
if exists {
_, err := db.Exec("UPDATE sticky SET message_id = $1 WHERE guild_id = $2 AND channel_id = $3", messageID, guildID, channelID)
if err != nil {
logrus.Error(err)
}
}
}
func removeSticky(guildID string, channelID string) {
_, err := db.Exec("DELETE FROM sticky WHERE guild_id = $1 AND channel_id = $2", guildID, channelID)
if err != nil {
logrus.Error(err)
}
}