recover from panic when drawing images and just error.

This commit is contained in:
fiatjaf
2024-06-13 15:04:57 -03:00
parent bd1dfb8d50
commit c08f907feb

View File

@@ -72,7 +72,7 @@ func renderImage(w http.ResponseWriter, r *http.Request) {
img, err := drawImage(paragraphs, getPreviewStyle(r), data.metadata, data.createdAt)
if err != nil {
log.Printf("error writing image: %s", err)
log.Warn().Err(err).Msg("failed to draw paragraphs as image")
http.Error(w, "error writing image!", 500)
return
}
@@ -86,7 +86,14 @@ func renderImage(w http.ResponseWriter, r *http.Request) {
}
}
func drawImage(paragraphs []string, style Style, metadata Metadata, date string) (image.Image, error) {
func drawImage(paragraphs []string, style Style, metadata Metadata, date string) (image image.Image, err error) {
defer func() {
if r := recover(); r != nil {
err = fmt.Errorf("panic while drawing image")
log.Warn().Interface("r", r).Msg("panic while drawing image")
}
}()
fontSize := 25
width := 700
height := 525