6 Commits

Author SHA1 Message Date
Antoine Aflalo
72c6776793 fix: make the progress more readable 2024-08-27 20:42:26 -04:00
Antoine Aflalo
e0b6d7fcef ci: add bash completion to image 2024-08-27 20:29:38 -04:00
Antoine Aflalo
9305c8fa76 perf: add completion to bash docker image 2024-08-27 20:27:45 -04:00
Antoine Aflalo
9cc45e75cf fix(ci): fix built date 2024-08-27 20:26:29 -04:00
Antoine Aflalo
f451b660be fix: get proper version 2024-08-27 20:22:22 -04:00
Antoine Aflalo
c8fe726a96 fix: quality value validation 2024-08-27 20:18:36 -04:00
10 changed files with 22 additions and 30 deletions

View File

@@ -36,7 +36,7 @@ builds:
# trims path # trims path
- -trimpath - -trimpath
ldflags: ldflags:
- -s -w -X meta.Version={{.Version}} -X meta.Commit={{.Commit}} -X meta.Date={{ .CommitDate }} - -s -w -X main.version={{.Version}} -X main.commit={{.Commit}} -X main.date={{ .CommitDate }}
env: env:
- CGO_ENABLED=0 - CGO_ENABLED=0
# config the checksum filename # config the checksum filename

View File

@@ -15,7 +15,7 @@ RUN mkdir -p "${CONFIG_FOLDER}" && adduser \
COPY CBZOptimizer /usr/local/bin/CBZOptimizer COPY CBZOptimizer /usr/local/bin/CBZOptimizer
RUN apk add --no-cache inotify-tools && chmod +x /usr/local/bin/CBZOptimizer RUN apk add --no-cache inotify-tools bash-completion && chmod +x /usr/local/bin/CBZOptimizer && /usr/local/bin/CBZOptimizer completion bash > /etc/bash_completion.d/CBZOptimizer
USER ${USER} USER ${USER}
ENTRYPOINT ["/usr/local/bin/CBZOptimizer"] ENTRYPOINT ["/usr/local/bin/CBZOptimizer"]

View File

@@ -49,7 +49,7 @@ func ConvertCbzCommand(cmd *cobra.Command, args []string) error {
} }
quality, err := cmd.Flags().GetUint8("quality") quality, err := cmd.Flags().GetUint8("quality")
if err != nil { if err != nil || quality <= 0 || quality > 100 {
return fmt.Errorf("invalid quality value") return fmt.Errorf("invalid quality value")
} }

View File

@@ -14,6 +14,10 @@ var rootCmd = &cobra.Command{
Short: "Convert CBZ files using a specified converter", Short: "Convert CBZ files using a specified converter",
} }
func SetVersionInfo(version, commit, date string) {
rootCmd.Version = fmt.Sprintf("%s (Built on %s from Git SHA %s)", version, date, commit)
}
func getPath() string { func getPath() string {
return filepath.Join(map[string]string{ return filepath.Join(map[string]string{
"windows": filepath.Join(os.Getenv("APPDATA")), "windows": filepath.Join(os.Getenv("APPDATA")),

View File

@@ -1,21 +0,0 @@
package cmd
import (
"fmt"
"github.com/belphemur/CBZOptimizer/meta"
"github.com/spf13/cobra"
)
func init() {
command := &cobra.Command{
Use: "version",
Short: "Print the version of the application",
Long: "Print the version of the application",
Run: VersionCommand,
}
AddCommand(command)
}
func VersionCommand(_ *cobra.Command, _ []string) {
fmt.Printf("CBZOptimizer %s [%s] built [%s]\n", meta.Version, meta.Commit, meta.Date)
}

View File

@@ -55,7 +55,7 @@ func WatchCommand(_ *cobra.Command, args []string) error {
} }
quality := uint8(viper.GetUint16("quality")) quality := uint8(viper.GetUint16("quality"))
if quality <= 0 { if quality <= 0 || quality > 100 {
return fmt.Errorf("invalid quality value") return fmt.Errorf("invalid quality value")
} }

View File

@@ -12,7 +12,7 @@ import (
type Converter interface { type Converter interface {
// Format of the converter // Format of the converter
Format() (format constant.ConversionFormat) Format() (format constant.ConversionFormat)
ConvertChapter(chapter *manga.Chapter, quality uint8, progress func(string)) (*manga.Chapter, error) ConvertChapter(chapter *manga.Chapter, quality uint8, progress func(message string, current uint32, total uint32)) (*manga.Chapter, error)
PrepareConverter() error PrepareConverter() error
} }

View File

@@ -48,7 +48,7 @@ func (converter *Converter) PrepareConverter() error {
return nil return nil
} }
func (converter *Converter) ConvertChapter(chapter *packer2.Chapter, quality uint8, progress func(string)) (*packer2.Chapter, error) { func (converter *Converter) ConvertChapter(chapter *packer2.Chapter, quality uint8, progress func(message string, current uint32, total uint32)) (*packer2.Chapter, error) {
err := converter.PrepareConverter() err := converter.PrepareConverter()
if err != nil { if err != nil {
return nil, err return nil, err
@@ -93,7 +93,7 @@ func (converter *Converter) ConvertChapter(chapter *packer2.Chapter, quality uin
} }
pagesMutex.Lock() pagesMutex.Lock()
pages = append(pages, convertedPage.Page) pages = append(pages, convertedPage.Page)
progress(fmt.Sprintf("Converted %d/%d pages to %s format", len(pages), totalPages, converter.Format())) progress(fmt.Sprintf("Converted %d/%d pages to %s format", len(pages), totalPages, converter.Format()), uint32(len(pages)), totalPages)
pagesMutex.Unlock() pagesMutex.Unlock()
<-guard <-guard
}(page) }(page)

View File

@@ -4,6 +4,13 @@ import (
"github.com/belphemur/CBZOptimizer/cmd" "github.com/belphemur/CBZOptimizer/cmd"
) )
var (
version = "dev"
commit = "none"
date = "unknown"
)
func main() { func main() {
cmd.SetVersionInfo(version, commit, date)
cmd.Execute() cmd.Execute()
} }

View File

@@ -24,8 +24,10 @@ func Optimize(chapterConverter converter.Converter, path string, quality uint8,
} }
// Convert the chapter // Convert the chapter
convertedChapter, err := chapterConverter.ConvertChapter(chapter, quality, func(msg string) { convertedChapter, err := chapterConverter.ConvertChapter(chapter, quality, func(msg string, current uint32, total uint32) {
log.Printf("[%s]%s", path, msg) if current%10 == 0 || current == total {
log.Printf("[%s] Converting: %d/%d", chapter.FilePath, current, total)
}
}) })
if err != nil { if err != nil {
return fmt.Errorf("failed to convert chapter: %v", err) return fmt.Errorf("failed to convert chapter: %v", err)