diff --git a/cbz/cbz_creator.go b/cbz/cbz_creator.go index 175a3bd..d4f2073 100644 --- a/cbz/cbz_creator.go +++ b/cbz/cbz_creator.go @@ -30,10 +30,10 @@ func WriteChapterToCBZ(chapter *manga.Chapter, outputFilePath string) error { var fileName string if page.IsSplitted { // Use the format page%03d-%02d for split pages - fileName = fmt.Sprintf("page_%04d-%02d%s", page.Index, page.SplitPartIndex, page.Extension) + fileName = fmt.Sprintf("%04d-%02d%s", page.Index, page.SplitPartIndex, page.Extension) } else { // Use the format page%03d for non-split pages - fileName = fmt.Sprintf("page_%04d%s", page.Index, page.Extension) + fileName = fmt.Sprintf("%04d%s", page.Index, page.Extension) } // Create a new file in the ZIP archive diff --git a/cbz/cbz_creator_test.go b/cbz/cbz_creator_test.go index c0337d4..f015514 100644 --- a/cbz/cbz_creator_test.go +++ b/cbz/cbz_creator_test.go @@ -31,7 +31,7 @@ func TestWriteChapterToCBZ(t *testing.T) { IsConverted: true, ConvertedTime: time.Now(), }, - expectedFiles: []string{"page_0000.jpg", "ComicInfo.xml", "Converted.txt"}, + expectedFiles: []string{"0000.jpg", "ComicInfo.xml", "Converted.txt"}, }, //test case where there is only one page and no { @@ -45,7 +45,7 @@ func TestWriteChapterToCBZ(t *testing.T) { }, }, }, - expectedFiles: []string{"page_0000.jpg"}, + expectedFiles: []string{"0000.jpg"}, }, { name: "Multiple pages with ComicInfo", @@ -64,7 +64,7 @@ func TestWriteChapterToCBZ(t *testing.T) { }, ComicInfoXml: "Boundless Necromancer", }, - expectedFiles: []string{"page_0000.jpg", "page_0001.jpg", "ComicInfo.xml"}, + expectedFiles: []string{"0000.jpg", "0001.jpg", "ComicInfo.xml"}, }, { name: "Split page", @@ -79,7 +79,7 @@ func TestWriteChapterToCBZ(t *testing.T) { }, }, }, - expectedFiles: []string{"page_0000-01.jpg"}, + expectedFiles: []string{"0000-01.jpg"}, }, } diff --git a/cmd/optimize_command_test.go b/cmd/optimize_command_test.go index f7f532a..66b7886 100644 --- a/cmd/optimize_command_test.go +++ b/cmd/optimize_command_test.go @@ -17,17 +17,16 @@ import ( // MockConverter is a mock implementation of the Converter interface type MockConverter struct{} -func (m *MockConverter) Format() constant.ConversionFormat { - return constant.WebP -} - -func (m *MockConverter) ConvertChapter(chapter *manga.Chapter, quality uint8, progress func(string)) (*manga.Chapter, error) { - // Simulate conversion by setting the IsConverted flag +func (m *MockConverter) ConvertChapter(chapter *manga.Chapter, quality uint8, split bool, progress func(message string, current uint32, total uint32)) (*manga.Chapter, error) { chapter.IsConverted = true chapter.ConvertedTime = time.Now() return chapter, nil } +func (m *MockConverter) Format() constant.ConversionFormat { + return constant.WebP +} + func (m *MockConverter) PrepareConverter() error { return nil } @@ -79,6 +78,7 @@ func TestConvertCbzCommand(t *testing.T) { cmd.Flags().Uint8P("quality", "q", 85, "Quality for conversion (0-100)") cmd.Flags().IntP("parallelism", "n", 2, "Number of chapters to convert in parallel") cmd.Flags().BoolP("override", "o", false, "Override the original CBZ files") + cmd.Flags().BoolP("split", "s", false, "Split long pages into smaller chunks") // Execute the command err = ConvertCbzCommand(cmd, []string{tempDir})