fix
This commit is contained in:
parent
ad5dca42cb
commit
4cb24ae691
1 changed files with 17 additions and 14 deletions
31
main.go
31
main.go
|
|
@ -78,7 +78,7 @@ func (c *PDFComicFile) save(outputPath string) error {
|
||||||
|
|
||||||
type CBZComicFile struct {
|
type CBZComicFile struct {
|
||||||
zipWriter *zip.Writer
|
zipWriter *zip.Writer
|
||||||
outFile *os.File
|
buffer *bytes.Buffer
|
||||||
numFiles int
|
numFiles int
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -86,16 +86,13 @@ type CBZComicFile struct {
|
||||||
var _ ComicFile = &CBZComicFile{}
|
var _ ComicFile = &CBZComicFile{}
|
||||||
|
|
||||||
func newCBZComicFile() (*CBZComicFile, error) {
|
func newCBZComicFile() (*CBZComicFile, error) {
|
||||||
out, err := os.CreateTemp("", "output.tmp.cbz")
|
buffer := new(bytes.Buffer)
|
||||||
if err != nil {
|
zipWriter := zip.NewWriter(buffer)
|
||||||
return nil, err
|
return &CBZComicFile{zipWriter: zipWriter, buffer: buffer, numFiles: 0}, nil
|
||||||
}
|
|
||||||
zipWriter := zip.NewWriter(out)
|
|
||||||
return &CBZComicFile{zipWriter: zipWriter, outFile: out, numFiles: 0}, nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *CBZComicFile) addImage(img []byte) error {
|
func (c *CBZComicFile) addImage(img []byte) error {
|
||||||
f, err := c.zipWriter.Create(fmt.Sprintf("%d.jpg", c.numFiles))
|
f, err := c.zipWriter.Create(fmt.Sprintf("%010d.jpg", c.numFiles))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
@ -108,15 +105,21 @@ func (c *CBZComicFile) addImage(img []byte) error {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *CBZComicFile) save(outputPath string) error {
|
func (c *CBZComicFile) save(outputPath string) error {
|
||||||
err := c.zipWriter.Close()
|
if err := c.zipWriter.Close(); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
file, err := os.Create(outputPath)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
err = c.outFile.Close()
|
defer func(file *os.File) {
|
||||||
if err != nil {
|
err := file.Close()
|
||||||
return err
|
if err != nil {
|
||||||
}
|
fmt.Println(err.Error())
|
||||||
err = os.Rename(c.outFile.Name(), outputPath)
|
os.Exit(1)
|
||||||
|
}
|
||||||
|
}(file)
|
||||||
|
_, err = c.buffer.WriteTo(file)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue