Go to file
2019-09-15 12:49:34 +02:00
src Add first documentation of this project 2019-09-15 12:49:34 +02:00
.gitignore initial commit 2019-02-14 23:55:00 +01:00
Cargo.lock look for the widest number instead of trying to sort the files 2019-05-23 14:20:58 +02:00
Cargo.toml Add first documentation of this project 2019-09-15 12:49:34 +02:00
LICENSE Initial commit 2019-02-12 00:29:39 +00:00
README.md Add first documentation of this project 2019-09-15 12:49:34 +02:00

comic-book-binder (cbb)

This software aim at helping you manage your comic book library. It take care of renaming each page of a book so they are in the same order no matter the operating system or software reading the files. To achieve this, the "number" part of the page's filename is padded with 0, this way we do not have strange sort like 1.png, 10.png, 11.png, 100.png, 2.png, 20.png,…

State

The software is still in early developments. I'm using it as a way to introduce myself to the rust programming language. Do not hesitate to give me feedback on how to write more idiomatic rust code.

Usage

The simplest way to use this program is to simply call it on a comic folder. This way it will ensure the pages are formatted with just the right number of leading 0 to pad the number part of the page.

cbb comic/

You may want to customize the number of leading 0, it is useful when you plan on adding more pages later.

cbb comic/ --pad=3

TODO

  • Add tests: I'm not used to create tests on projects (unit & integration).
  • Add tests: HELP WANTED: how can I tests operations on the filesystem?
  • Add some quality of life features:
    • Dry-run: Show how the files will be changed without modifying anything
    • Recursivity: user select a "library" folder for which each sub-folder is considered to be a comic book (or an other library)
    • Prefix: let the user set the prefix of the pages: Useful when the name contains a number: "Name-Season5-chapter02-page10.png" => prefix = "Name-Season5-chapter02-page".
      • Deduce the prefix from the file name (nice to have, not sure it is used that often)
  • Integrate an archive crate to be able to open/create .cba, .cbr .cbt, or .cbz archives.
  • Add documentation
  • Maybe integrate rayon (test with a benchmark if it really help: part 1 of the tool is listing the files, part 2 is based on os::rename operations).

Also I saw on Wikipedia that it is possible to include metadata such as artists, story information, table of contents or even a separate text layer for comic book translations. If the feature is requested I could check if the different way to include this metadata are well spread. This however will not be discussed before (almost) releasing the 1.0.