diff --git a/server/go.mod b/server/go.mod index e37225f..2e4f299 100644 --- a/server/go.mod +++ b/server/go.mod @@ -17,6 +17,7 @@ require ( github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8 github.com/pkg/errors v0.9.1 go.etcd.io/bbolt v1.3.7 + golang.org/x/image v0.7.0 golang.org/x/time v0.3.0 gopkg.in/vansante/go-ffprobe.v2 v2.1.1 ) diff --git a/server/go.sum b/server/go.sum index 8f6c25a..a233cd8 100644 --- a/server/go.sum +++ b/server/go.sum @@ -442,6 +442,8 @@ golang.org/x/crypto v0.8.0/go.mod h1:mRqEX+O9/h5TFCrQhkgjo2yKi0yYA+9ecGkdQoHrywE golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20230425010034-47ecfdc1ba53 h1:5llv2sWeaMSnA3w2kS57ouQQ4pudlXrR0dCgw51QK9o= golang.org/x/exp v0.0.0-20230425010034-47ecfdc1ba53/go.mod h1:V1LtkGg67GoY2N1AnLN78QLrzxkLyJw7RJb1gzOOz9w= +golang.org/x/image v0.7.0 h1:gzS29xtG1J5ybQlv0PuyfE3nmc6R4qB73m6LUUmvFuw= +golang.org/x/image v0.7.0/go.mod h1:nd/q4ef1AKKYl/4kft7g+6UyGbdiqWqTP1ZAbRoV7Rg= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= diff --git a/server/torr/utils/webImageChecker.go b/server/torr/utils/webImageChecker.go index 3b457d7..4743195 100644 --- a/server/torr/utils/webImageChecker.go +++ b/server/torr/utils/webImageChecker.go @@ -2,9 +2,13 @@ package utils import ( "image" + _ "image/gif" _ "image/jpeg" _ "image/png" "net/http" + "strings" + + "golang.org/x/image/webp" "server/log" ) @@ -19,7 +23,11 @@ func CheckImgUrl(link string) bool { return false } defer resp.Body.Close() - _, _, err = image.Decode(resp.Body) + if strings.HasSuffix(link, ".webp") { + _, err = webp.Decode(resp.Body) + } else { + _, _, err = image.Decode(resp.Body) + } if err != nil { log.TLogln("Error decode image:", err) return false