diff --git a/config.example.yml b/config.example.yml index 52c4d39..b41c8e2 100644 --- a/config.example.yml +++ b/config.example.yml @@ -8,6 +8,7 @@ routes: default_download: false default_scale: 4 default_format: png + default_square: false min_scale: 1 max_scale: 64 head: @@ -15,6 +16,7 @@ routes: default_download: false default_scale: 4 default_format: png + default_square: false min_scale: 1 max_scale: 64 full_body: @@ -22,6 +24,7 @@ routes: default_download: false default_scale: 4 default_format: png + default_square: false min_scale: 1 max_scale: 64 front_body: @@ -29,6 +32,7 @@ routes: default_download: false default_scale: 4 default_format: png + default_square: false min_scale: 1 max_scale: 64 back_body: @@ -36,6 +40,7 @@ routes: default_download: false default_scale: 4 default_format: png + default_square: false min_scale: 1 max_scale: 64 left_body: @@ -43,6 +48,7 @@ routes: default_download: false default_scale: 4 default_format: png + default_square: false min_scale: 1 max_scale: 64 right_body: @@ -50,6 +56,7 @@ routes: default_download: false default_scale: 4 default_format: png + default_square: false min_scale: 1 max_scale: 64 raw_skin: diff --git a/go.mod b/go.mod index e756fe1..9baf8b7 100644 --- a/go.mod +++ b/go.mod @@ -5,7 +5,7 @@ go 1.18 require ( github.com/go-redsync/redsync/v4 v4.12.1 github.com/gofiber/fiber/v2 v2.52.2 - github.com/mineatar-io/skin-render v1.2.0 + github.com/mineatar-io/skin-render v1.3.0 github.com/redis/go-redis/v9 v9.5.1 gopkg.in/yaml.v3 v3.0.1 ) diff --git a/go.sum b/go.sum index 6537d84..f737537 100644 --- a/go.sum +++ b/go.sum @@ -41,6 +41,8 @@ github.com/mattn/go-runewidth v0.0.15 h1:UNAjwbU9l54TA3KzvqLGxwWjHmMgBUVhBiTjelZ github.com/mattn/go-runewidth v0.0.15/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= github.com/mineatar-io/skin-render v1.2.0 h1:0lGe8epVbeqnDMnj7EleKZeoQBA3k5WVMIm8UE8fF+g= github.com/mineatar-io/skin-render v1.2.0/go.mod h1:ESYvjLHUilplx/WhI3fNCfbvAGhiPL0kC273tIdZ8WA= +github.com/mineatar-io/skin-render v1.3.0 h1:xLDBmTjPaq+g+EvsyLxlY66lK63UQ86aYUu1FY1U7ZM= +github.com/mineatar-io/skin-render v1.3.0/go.mod h1:ESYvjLHUilplx/WhI3fNCfbvAGhiPL0kC273tIdZ8WA= github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= github.com/redis/go-redis/v9 v9.5.1 h1:H1X4D3yHPaYrkL5X06Wh6xNVM/pX0Ft4RV0vMGvLBh8= github.com/redis/go-redis/v9 v9.5.1/go.mod h1:hdY0cQFCN4fnSYT6TkisLufl/4W5UIXyv0b/CLO2V2M= diff --git a/src/cache.go b/src/cache.go index fa1ab4d..a11d5dc 100644 --- a/src/cache.go +++ b/src/cache.go @@ -22,6 +22,7 @@ func GetResultCacheKey(uuid, renderType string, opts *QueryParams) string { values.Set("scale", strconv.FormatInt(int64(opts.Scale), 10)) values.Set("overlay", strconv.FormatBool(opts.Overlay)) values.Set("format", opts.Format) + values.Set("square", strconv.FormatBool(opts.Square)) return SHA256(values.Encode()) } diff --git a/src/config.go b/src/config.go index 96b464c..463395f 100644 --- a/src/config.go +++ b/src/config.go @@ -19,6 +19,7 @@ var ( DefaultOverlay: true, DefaultDownload: false, DefaultScale: 4, + DefaultSquare: false, MinScale: 1, MaxScale: 64, DefaultFormat: "png", @@ -27,6 +28,7 @@ var ( DefaultOverlay: true, DefaultDownload: false, DefaultScale: 4, + DefaultSquare: false, MinScale: 1, MaxScale: 64, DefaultFormat: "png", @@ -35,6 +37,7 @@ var ( DefaultOverlay: true, DefaultDownload: false, DefaultScale: 4, + DefaultSquare: false, MinScale: 1, MaxScale: 64, DefaultFormat: "png", @@ -43,6 +46,7 @@ var ( DefaultOverlay: true, DefaultDownload: false, DefaultScale: 4, + DefaultSquare: false, MinScale: 1, MaxScale: 64, DefaultFormat: "png", @@ -51,6 +55,7 @@ var ( DefaultOverlay: true, DefaultDownload: false, DefaultScale: 4, + DefaultSquare: false, MinScale: 1, MaxScale: 64, DefaultFormat: "png", @@ -59,6 +64,7 @@ var ( DefaultOverlay: true, DefaultDownload: false, DefaultScale: 4, + DefaultSquare: false, MinScale: 1, MaxScale: 64, DefaultFormat: "png", @@ -67,6 +73,7 @@ var ( DefaultOverlay: true, DefaultDownload: false, DefaultScale: 4, + DefaultSquare: false, MinScale: 1, MaxScale: 64, DefaultFormat: "png", @@ -112,6 +119,7 @@ type RouteConfig struct { DefaultOverlay bool `yaml:"default_overlay"` DefaultDownload bool `yaml:"default_download"` DefaultFormat string `yaml:"default_format"` + DefaultSquare bool `yaml:"default_square"` MinScale int `yaml:"min_scale"` MaxScale int `yaml:"max_scale"` } diff --git a/src/renderer.go b/src/renderer.go index 7082570..69c770d 100644 --- a/src/renderer.go +++ b/src/renderer.go @@ -45,6 +45,7 @@ func Render(renderType, uuid string, rawSkin *image.NRGBA, isSlim bool, opts *Qu Overlay: opts.Overlay, Slim: isSlim, Scale: opts.Scale, + Square: opts.Square, } ) diff --git a/src/util.go b/src/util.go index fc71dee..2731fa7 100644 --- a/src/util.go +++ b/src/util.go @@ -39,6 +39,7 @@ type QueryParams struct { Download bool Overlay bool Format string + Square bool } // PointerOf returns the value of the first argument as a pointer. @@ -278,6 +279,7 @@ func ParseQueryParams(ctx *fiber.Ctx, route RouteConfig) *QueryParams { Download: ctx.QueryBool("download", route.DefaultDownload), Overlay: ctx.QueryBool("overlay", route.DefaultOverlay), Format: ctx.Query("format", route.DefaultFormat), + Square: ctx.QueryBool("square", route.DefaultSquare), } }