mirror of
https://github.com/Belphemur/CBZOptimizer.git
synced 2026-07-22 03:15:41 +02:00
Add a new `--keep-filenames` boolean flag (no shorthand, default false) on both `optimize` and `watch` commands. When enabled, page entries in the output CBZ preserve their original base filenames instead of being renumbered to `%04d` sequential indices. Extension is swapped on format conversion (e.g. `001.png` → `001.webp`), split pages get `-NN` suffixes on the original stem, and duplicate base names fall back to `<stem>_<index>.<ext>`. Watch mode supports the flag via the `keep-filenames` viper config key. Design: data-driven `OriginalName` field on `manga.PageFile`, set at extraction in `cbz_loader.ExtractChapter`. The `Converter` interface is unchanged. Flag off → behavior identical to before. Closes #216
23 lines
954 B
Go
23 lines
954 B
Go
package manga
|
|
|
|
// PageFile represents a single page image stored on disk.
|
|
// No image data is held in memory — only metadata and a file path.
|
|
type PageFile struct {
|
|
// Index of the page in the chapter (original ordering).
|
|
Index uint16
|
|
// Extension of the page image file (e.g., ".webp", ".jpg").
|
|
Extension string
|
|
// FilePath is the absolute path to the image file on disk.
|
|
FilePath string
|
|
// IsSplitted indicates whether this page was split from a larger image.
|
|
IsSplitted bool
|
|
// SplitPartIndex is the part index when the page was split.
|
|
SplitPartIndex uint16
|
|
// OriginalName is the base filename (e.g. "page01.png") of the page as
|
|
// it appeared in the source archive, recorded when the --keep-filenames
|
|
// flag is enabled. Empty when the flag is off or the source name is
|
|
// unknown. When set, downstream code uses this stem (with the final
|
|
// Extension swapped in) instead of the default %04d sequential name.
|
|
OriginalName string
|
|
}
|