CBZOptimizer

command module
v2.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 6, 2024 License: GPL-3.0 Imports: 1 Imported by: 0

README

CBZOptimizer

CBZOptimizer is a Go-based tool designed to optimize CBZ (Comic Book Zip) files by converting images to a specified format and quality. This tool is useful for reducing the size of comic book archives while maintaining acceptable image quality.

Features

  • Convert images within CBZ files to different formats (e.g., WebP).
  • Adjust the quality of the converted images.
  • Process multiple chapters in parallel.
  • Option to override the original CBZ files.
  • Watch a folder for new CBZ files and optimize them automatically.

Installation

  1. Clone the repository:
git clone https://github.com/belphemur/CBZOptimizer.git
cd CBZOptimizer
  1. Install dependencies:
    go mod tidy
    

Usage

Command Line Interface

The tool provides CLI commands to optimize and watch CBZ files. Below are examples of how to use them:

Optimize Command

Optimize all CBZ files in a folder recursively:

go run main.go optimize [folder] --quality 85 --parallelism 2 --override --format webp --split
Watch Command

Watch a folder for new CBZ files and optimize them automatically:

go run main.go watch [folder] --quality 85 --override --format webp --split
Flags
  • --quality, -q: Quality for conversion (0-100). Default is 85.
  • --parallelism, -n: Number of chapters to convert in parallel. Default is 2.
  • --override, -o: Override the original CBZ files. Default is false.
  • --split, -s: Split long pages into smaller chunks. Default is false.
  • --format, -f: Format to convert the images to (e.g., webp). Default is webp.

Testing

To run the tests, use the following command:

go test ./... -v

Requirement

Needs to have libwep installed on the machine if you're not using the docker image

Docker

ghcr.io/belphemur/cbzoptimizer:latest

GitHub Actions

The project includes a GitHub Actions workflow to run tests on every push and pull request to the main branch. The workflow is defined in .github/workflows/go.yml.

Contributing

  1. Fork the repository.
  2. Create a new branch (git checkout -b feature-branch).
  3. Commit your changes (git commit -am 'Add new feature').
  4. Push to the branch (git push origin feature-branch).
  5. Create a new Pull Request.

License

This project is licensed under the MIT License. See the LICENSE file for details.

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL