Handle errors

This commit is contained in:
Michał Gdula 2025-05-08 18:26:50 +01:00
parent 3fafa834ed
commit 98dd655ddd
5 changed files with 58 additions and 16 deletions

View file

@ -114,7 +114,7 @@ func (a *App) handler(session *discordgo.Session, message *discordgo.MessageCrea
return return
} }
h.Session.ChannelTyping(h.Message.ChannelID) _ = h.Session.ChannelTyping(h.Message.ChannelID)
err := callback(h, strings.Split(args, " ")) err := callback(h, strings.Split(args, " "))
if !err.Ok() { if !err.Ok() {
@ -128,7 +128,7 @@ func printHelp(a *App, h *Handler) {
commands = append(commands, cmd) commands = append(commands, cmd)
} }
h.Session.ChannelMessageSendComplex(h.Message.ChannelID, &discordgo.MessageSend{ _, _ = h.Session.ChannelMessageSendComplex(h.Message.ChannelID, &discordgo.MessageSend{
Embed: &discordgo.MessageEmbed{ Embed: &discordgo.MessageEmbed{
Title: "Help", Title: "Help",
Description: strings.Join(commands, "\n"), Description: strings.Join(commands, "\n"),
@ -141,7 +141,7 @@ func printHelp(a *App, h *Handler) {
func printError(a *App, h *Handler, e Error) { func printError(a *App, h *Handler, e Error) {
log.Println(e.Err) log.Println(e.Err)
h.Session.ChannelMessageSendComplex(h.Message.ChannelID, &discordgo.MessageSend{ _, _ = h.Session.ChannelMessageSendComplex(h.Message.ChannelID, &discordgo.MessageSend{
Embed: &discordgo.MessageEmbed{ Embed: &discordgo.MessageEmbed{
Title: "Error", Title: "Error",
Description: e.Msg, Description: e.Msg,

View file

@ -32,7 +32,7 @@ func registerDebug(a *app.App) app.Callback {
} }
} }
h.Session.ChannelMessageSendComplex(h.Message.ChannelID, &discordgo.MessageSend{ _, err := h.Session.ChannelMessageSendComplex(h.Message.ChannelID, &discordgo.MessageSend{
Embed: &discordgo.MessageEmbed{ Embed: &discordgo.MessageEmbed{
Title: "Lynxie", Title: "Lynxie",
Fields: []*discordgo.MessageEmbedField{ Fields: []*discordgo.MessageEmbedField{
@ -71,6 +71,12 @@ func registerDebug(a *app.App) app.Callback {
}, },
Reference: h.Reference, Reference: h.Reference,
}) })
if err != nil {
return app.Error{
Msg: "failed to send debug message",
Err: err,
}
}
return app.Error{} return app.Error{}
} }

View file

@ -69,7 +69,7 @@ func registerSaveable(a *app.App) app.Callback {
} }
defer res.Body.Close() defer res.Body.Close()
h.Session.ChannelMessageSendComplex(h.Message.ChannelID, &discordgo.MessageSend{ _, err = h.Session.ChannelMessageSendComplex(h.Message.ChannelID, &discordgo.MessageSend{
Embed: &discordgo.MessageEmbed{ Embed: &discordgo.MessageEmbed{
Title: "Saveable", Title: "Saveable",
Description: "Image converted to GIF :3", Description: "Image converted to GIF :3",
@ -87,6 +87,12 @@ func registerSaveable(a *app.App) app.Callback {
}, },
Reference: h.Reference, Reference: h.Reference,
}) })
if err != nil {
return app.Error{
Msg: "failed to send saveable message",
Err: err,
}
}
return app.Error{} return app.Error{}
} }
@ -129,7 +135,7 @@ func registerCaption(a *app.App) app.Callback {
buff, err := io.ReadAll(res.Body) buff, err := io.ReadAll(res.Body)
if err != nil { if err != nil {
return app.Error{ return app.Error{
Msg: "Failed to read image", Msg: "failed to read image",
Err: err, Err: err,
} }
} }
@ -137,7 +143,7 @@ func registerCaption(a *app.App) app.Callback {
img, err := loadImageFromBytes(buff) img, err := loadImageFromBytes(buff)
if err != nil { if err != nil {
return app.Error{ return app.Error{
Msg: "Failed to load image", Msg: "failed to load image",
Err: errors.New("Failed to load image " + err.Error()), Err: errors.New("Failed to load image " + err.Error()),
} }
} }
@ -162,7 +168,7 @@ func registerCaption(a *app.App) app.Callback {
err = canvas.LoadFontFaceFromBytes(_resources.FontRoboto, captionSize) err = canvas.LoadFontFaceFromBytes(_resources.FontRoboto, captionSize)
if err != nil { if err != nil {
return app.Error{ return app.Error{
Msg: "Failed to load font", Msg: "failed to load font",
Err: err, Err: err,
} }
} }
@ -188,12 +194,12 @@ func registerCaption(a *app.App) app.Callback {
) )
if err != nil { if err != nil {
return app.Error{ return app.Error{
Msg: "Failed to encode JPEG", Msg: "failed to encode JPEG",
Err: err, Err: err,
} }
} }
h.Session.ChannelMessageSendComplex(h.Message.ChannelID, &discordgo.MessageSend{ _, err = h.Session.ChannelMessageSendComplex(h.Message.ChannelID, &discordgo.MessageSend{
Embed: &discordgo.MessageEmbed{ Embed: &discordgo.MessageEmbed{
Title: "Caption", Title: "Caption",
Image: &discordgo.MessageEmbedImage{ Image: &discordgo.MessageEmbedImage{
@ -210,6 +216,12 @@ func registerCaption(a *app.App) app.Callback {
}, },
Reference: h.Reference, Reference: h.Reference,
}) })
if err != nil {
return app.Error{
Msg: "failed to send caption message",
Err: err,
}
}
return app.Error{} return app.Error{}
} }

View file

@ -80,7 +80,13 @@ func registerE621(a *app.App) app.Callback {
cmd.StringVar(&options.Order, "order", "random", "Search order") cmd.StringVar(&options.Order, "order", "random", "Search order")
cmd.StringVar(&options.Rating, "rating", "e", "Search rating") cmd.StringVar(&options.Rating, "rating", "e", "Search rating")
cmd.Parse(args) err := cmd.Parse(args)
if err != nil {
return app.Error{
Msg: "failed parsing e621 flags",
Err: err,
}
}
req, err := http.NewRequest( req, err := http.NewRequest(
http.MethodGet, http.MethodGet,
@ -94,7 +100,7 @@ func registerE621(a *app.App) app.Callback {
) )
if err != nil { if err != nil {
return app.Error{ return app.Error{
Msg: "Failed to make request", Msg: "failed to make request",
Err: err, Err: err,
} }
} }
@ -119,11 +125,17 @@ func registerE621(a *app.App) app.Callback {
var data struct { var data struct {
Posts []post `json:"posts"` Posts []post `json:"posts"`
} }
json.NewDecoder(res.Body).Decode(&data) err = json.NewDecoder(res.Body).Decode(&data)
if err != nil {
return app.Error{
Msg: "failed decoding e621 response",
Err: err,
}
}
if len(data.Posts) == 0 { if len(data.Posts) == 0 {
return app.Error{ return app.Error{
Msg: "No posts found", Msg: "no posts found",
Err: fmt.Errorf("no posts found"), Err: fmt.Errorf("no posts found"),
} }
} }
@ -142,7 +154,7 @@ func registerE621(a *app.App) app.Callback {
generalTags = "No tags provided." generalTags = "No tags provided."
} }
h.Session.ChannelMessageSendComplex(h.Message.ChannelID, &discordgo.MessageSend{ _, err = h.Session.ChannelMessageSendComplex(h.Message.ChannelID, &discordgo.MessageSend{
Embed: &discordgo.MessageEmbed{ Embed: &discordgo.MessageEmbed{
Title: "E621", Title: "E621",
Description: description, Description: description,
@ -184,6 +196,12 @@ func registerE621(a *app.App) app.Callback {
}, },
Reference: h.Reference, Reference: h.Reference,
}) })
if err != nil {
return app.Error{
Msg: "failed sending e621 message",
Err: err,
}
}
return app.Error{} return app.Error{}
} }

View file

@ -125,7 +125,7 @@ func registerAnimal(a *app.App) app.Callback {
} }
defer res.Body.Close() defer res.Body.Close()
h.Session.ChannelMessageSendComplex(h.Message.ChannelID, &discordgo.MessageSend{ _, err = h.Session.ChannelMessageSendComplex(h.Message.ChannelID, &discordgo.MessageSend{
Embed: &discordgo.MessageEmbed{ Embed: &discordgo.MessageEmbed{
Title: "Animal", Title: "Animal",
Image: &discordgo.MessageEmbedImage{ Image: &discordgo.MessageEmbedImage{
@ -142,6 +142,12 @@ func registerAnimal(a *app.App) app.Callback {
}, },
Reference: h.Reference, Reference: h.Reference,
}) })
if err != nil {
return app.Error{
Msg: "failed to send tinyfox message",
Err: err,
}
}
return app.Error{} return app.Error{}
} }