commit ff1b99ccc4c91de819b507a274c9ac200bf01026
parent a9d3ead40b3e6f0910e1414df38d2c1216942a57
Author: n0tr1v <n0tr1v@protonmail.com>
Date: Sat, 7 Jan 2023 22:12:57 -0800
add support for webp avatar
Diffstat:
2 files changed, 7 insertions(+), 4 deletions(-)
diff --git a/pkg/web/handlers/handlers.go b/pkg/web/handlers/handlers.go
@@ -13,6 +13,7 @@ import (
"github.com/jinzhu/gorm"
"github.com/notnil/chess"
_ "golang.org/x/image/bmp"
+ _ "golang.org/x/image/webp"
"image"
_ "image/gif"
"image/png"
@@ -3010,8 +3011,8 @@ func changeAvatarForm(c echo.Context, data settingsAccountData) error {
filetype := http.DetectContentType(fileBytes)
logrus.Error(filetype)
- if filetype != "image/jpeg" && filetype != "image/png" && filetype != "image/gif" && filetype != "image/bmp" {
- data.ErrorAvatar = "The provided file format is not allowed. Please upload a JPEG, PNG, BMP or GIF image"
+ if filetype != "image/jpeg" && filetype != "image/png" && filetype != "image/gif" && filetype != "image/bmp" && filetype != "image/webp" {
+ data.ErrorAvatar = "The provided file format is not allowed. Please upload a JPEG, PNG, WEBP, BMP or GIF image"
return c.Render(http.StatusOK, "settings.account", data)
}
@@ -3026,8 +3027,10 @@ func changeAvatarForm(c echo.Context, data settingsAccountData) error {
ext = ".gif"
case "image/bmp":
ext = ".bmp"
+ case "image/webp":
+ ext = ".webp"
default:
- data.ErrorAvatar = "Image must be JPEG, PNG, BMP or GIF."
+ data.ErrorAvatar = "Image must be JPEG, PNG, WEBP, BMP or GIF."
return c.Render(http.StatusOK, "settings.account", data)
}
diff --git a/pkg/web/public/views/pages/settings/account.gohtml b/pkg/web/public/views/pages/settings/account.gohtml
@@ -68,7 +68,7 @@
The maximum dimensions for avatars are: 120x120 pixels.<br />
The maximum file size for avatars is 300 KB.
</p>
- <input name="avatar" class="{{ if .Data.ErrorAvatar }} is-invalid{{ end }}" type="file" accept=".bmp,.gif,.png,.jpg,.jpeg,image/gif,image/png,image/jpeg,image/bmp" required />
+ <input name="avatar" class="{{ if .Data.ErrorAvatar }} is-invalid{{ end }}" type="file" accept=".bmp,.gif,.png,.jpg,.jpeg,.webp,image/gif,image/png,image/jpeg,image/bmp,image/webp" required />
{{ if .Data.ErrorAvatar }}
<div class="invalid-feedback">{{ .Data.ErrorAvatar }}</div>
{{ end }}