better error handling for broken redirects

This commit is contained in:
kageru 2019-06-09 14:00:23 +02:00
parent ffae758587
commit 3cdb5418ff
Signed by: kageru
GPG Key ID: 8282A2BEA4ADA3D2

View File

@ -204,19 +204,28 @@ func generateReply(message *discordgo.MessageCreate, command *Command) string {
* Hence, small wrappers around the redirect function.
*/
func modComplain(s *discordgo.Session, m *discordgo.MessageCreate) {
redirectMessage(s, m, config.ModChannel, true)
success := redirectMessage(s, m, config.ModChannel, true)
dm, _ := s.UserChannelCreate(m.Author.ID)
s.ChannelMessageSend(dm.ID, config.ComplaintReceivedMessage)
if success {
s.ChannelMessageSend(dm.ID, config.ComplaintReceivedMessage)
} else {
s.ChannelMessageSend(dm.ID, "Could not send message. Please tell kageru about this.")
}
}
func selphyComplain(s *discordgo.Session, m *discordgo.MessageCreate) {
dm_target, _ := s.UserChannelCreate("190958368301645824")
redirectMessage(s, m, dm_target.ID, true)
success := redirectMessage(s, m, dm_target.ID, true)
dm, _ := s.UserChannelCreate(m.Author.ID)
s.ChannelMessageSend(dm.ID, config.ComplaintReceivedMessage)
if success {
s.ChannelMessageSend(dm.ID, config.ComplaintReceivedMessage)
} else {
s.ChannelMessageSend(dm.ID, "Could not send message. Please tell kageru about this.")
}
}
func redirectMessage(s *discordgo.Session, m *discordgo.MessageCreate, target string, isEmbed bool) {
func redirectMessage(s *discordgo.Session, m *discordgo.MessageCreate, target string, isEmbed bool) bool {
var err error
if isEmbed {
embed := &discordgo.MessageEmbed{
// Embed are anonymized by default for now. Fits the use case.
@ -224,10 +233,15 @@ func redirectMessage(s *discordgo.Session, m *discordgo.MessageCreate, target st
Color: 0xbb0000,
Description: m.Content,
}
s.ChannelMessageSendEmbed(target, embed)
return
_, err = s.ChannelMessageSendEmbed(target, embed)
} else {
_, err = s.ChannelMessageSend(target, messageToString(m.Message))
}
s.ChannelMessageSend(target, messageToString(m.Message))
if err != nil {
log.Printf("Could not redirect message", err)
return false
}
return true
}
func echoMessage(s *discordgo.Session, m *discordgo.MessageCreate) {