From bd8506d367ea223f2efbf354aac4929df7e25e1e Mon Sep 17 00:00:00 2001 From: celogeek <65178+celogeek@users.noreply.github.com> Date: Thu, 4 May 2023 19:36:26 +0200 Subject: [PATCH] add option to portrait only mode --- internal/converter/converter.go | 1 + .../converter/options/converter_options.go | 40 ++++++++----------- internal/epub/options/epub_options.go | 1 + main.go | 7 ++-- 4 files changed, 22 insertions(+), 27 deletions(-) diff --git a/internal/converter/converter.go b/internal/converter/converter.go index 3b47242..a45083d 100644 --- a/internal/converter/converter.go +++ b/internal/converter/converter.go @@ -128,6 +128,7 @@ func (c *Converter) InitParse() { c.AddBoolParam(&c.Options.NoResize, "noresize", c.Options.NoResize, "Do not reduce image size if exceed device size") c.AddStringParam(&c.Options.Format, "format", c.Options.Format, "Format of output images: jpeg (lossy), png (lossless)") c.AddFloatParam(&c.Options.AspectRatio, "aspect-ratio", c.Options.AspectRatio, "Aspect ratio (height/width) of the output\n -1 = same as device\n 0 = same as source\n1.6 = amazon advice for kindle") + c.AddBoolParam(&c.Options.PortraitOnly, "portrait-only", c.Options.PortraitOnly, "Portrait only: force orientation to portrait only.") c.AddSection("Default config") c.AddBoolParam(&c.Options.Show, "show", false, "Show your default parameters") diff --git a/internal/converter/options/converter_options.go b/internal/converter/options/converter_options.go index c685e6a..280e777 100644 --- a/internal/converter/options/converter_options.go +++ b/internal/converter/options/converter_options.go @@ -44,6 +44,7 @@ type Options struct { NoResize bool `yaml:"noresize"` Format string `yaml:"format"` AspectRatio float64 `yaml:"aspect_ratio"` + PortraitOnly bool `yaml:"portrait_only"` // Default Config Show bool `yaml:"-"` @@ -73,30 +74,20 @@ type Options struct { // Initialize default options. func New() *Options { return &Options{ - Profile: "", - Quality: 85, - Grayscale: true, - Crop: true, - CropRatioLeft: 1, - CropRatioUp: 1, - CropRatioRight: 1, - CropRatioBottom: 3, - Brightness: 0, - Contrast: 0, - AutoRotate: false, - AutoSplitDoublePage: false, - NoBlankImage: true, - Manga: false, - HasCover: true, - LimitMb: 0, - StripFirstDirectoryFromToc: false, - SortPathMode: 1, - ForegroundColor: "000", - BackgroundColor: "FFF", - NoResize: false, - Format: "jpeg", - AspectRatio: 0, - profiles: profiles.New(), + Quality: 85, + Grayscale: true, + Crop: true, + CropRatioLeft: 1, + CropRatioUp: 1, + CropRatioRight: 1, + CropRatioBottom: 3, + NoBlankImage: true, + HasCover: true, + SortPathMode: 1, + ForegroundColor: "000", + BackgroundColor: "FFF", + Format: "jpeg", + profiles: profiles.New(), } } @@ -202,6 +193,7 @@ func (o *Options) ShowConfig() string { {"Background Color", fmt.Sprintf("#%s", o.BackgroundColor), true}, {"Resize", !o.NoResize, true}, {"Aspect Ratio", aspectRatio, true}, + {"Portrait Only", o.PortraitOnly, true}, } { if v.Condition { b.WriteString(fmt.Sprintf("\n %-26s: %v", v.Key, v.Value)) diff --git a/internal/epub/options/epub_options.go b/internal/epub/options/epub_options.go index 7f6cc42..8976b10 100644 --- a/internal/epub/options/epub_options.go +++ b/internal/epub/options/epub_options.go @@ -17,6 +17,7 @@ type Color struct { type View struct { Width, Height int AspectRatio float64 + PortraitOnly bool Color Color } diff --git a/main.go b/main.go index 0db43e5..f6bec7b 100644 --- a/main.go +++ b/main.go @@ -130,9 +130,10 @@ $ go install github.com/celogeek/go-comic-converter/v%d@%s Manga: cmd.Options.Manga, HasCover: cmd.Options.HasCover, View: &epuboptions.View{ - Width: profile.Width, - Height: profile.Height, - AspectRatio: cmd.Options.AspectRatio, + Width: profile.Width, + Height: profile.Height, + AspectRatio: cmd.Options.AspectRatio, + PortraitOnly: cmd.Options.PortraitOnly, Color: epuboptions.Color{ Foreground: cmd.Options.ForegroundColor, Background: cmd.Options.BackgroundColor,