mirror of
https://github.com/celogeek/go-comic-converter.git
synced 2025-05-25 00:02:37 +02:00
improve error handling
This commit is contained in:
parent
dbec9b81e8
commit
07e04e514b
@ -49,12 +49,7 @@ type epubPart struct {
|
||||
}
|
||||
|
||||
func New(options *Options) *ePub {
|
||||
uid, err := uuid.NewV4()
|
||||
if err != nil {
|
||||
fmt.Fprintln(os.Stderr, err)
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
uid := uuid.Must(uuid.NewV4())
|
||||
tmpl := template.New("parser")
|
||||
tmpl.Funcs(template.FuncMap{
|
||||
"mod": func(i, j int) bool { return i%j == 0 },
|
||||
@ -71,20 +66,12 @@ func New(options *Options) *ePub {
|
||||
}
|
||||
|
||||
func (e *ePub) render(templateString string, data any) string {
|
||||
tmpl, err := e.templateProcessor.Parse(templateString)
|
||||
if err != nil {
|
||||
fmt.Fprintln(os.Stderr, err)
|
||||
os.Exit(1)
|
||||
var result strings.Builder
|
||||
tmpl := template.Must(e.templateProcessor.Parse(templateString))
|
||||
if err := tmpl.Execute(&result, data); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
result := &strings.Builder{}
|
||||
if err := tmpl.Execute(result, data); err != nil {
|
||||
fmt.Fprintln(os.Stderr, err)
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
stripBlank := regexp.MustCompile("\n+")
|
||||
|
||||
return stripBlank.ReplaceAllString(result.String(), "\n")
|
||||
return regexp.MustCompile("\n+").ReplaceAllString(result.String(), "\n")
|
||||
}
|
||||
|
||||
func (e *ePub) writeImage(wz *epubzip.EpubZip, img *epubimage.Image) error {
|
||||
|
@ -21,30 +21,42 @@ func (img *ImageData) CompressedSize() uint64 {
|
||||
return img.Header.CompressedSize64 + 30 + uint64(len(img.Header.Name))
|
||||
}
|
||||
|
||||
func exitWithError(err error) {
|
||||
fmt.Fprintln(os.Stderr, err)
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
func New(id int, part int, img image.Image, quality int) *ImageData {
|
||||
name := fmt.Sprintf("OEBPS/Images/%d_p%d.jpg", id, part)
|
||||
return NewRaw(name, img, quality)
|
||||
}
|
||||
|
||||
func NewRaw(name string, img image.Image, quality int) *ImageData {
|
||||
data := bytes.NewBuffer([]byte{})
|
||||
if err := jpeg.Encode(data, img, &jpeg.Options{Quality: quality}); err != nil {
|
||||
fmt.Fprintln(os.Stderr, err)
|
||||
os.Exit(1)
|
||||
var (
|
||||
data, cdata bytes.Buffer
|
||||
err error
|
||||
)
|
||||
|
||||
err = jpeg.Encode(&data, img, &jpeg.Options{Quality: quality})
|
||||
if err != nil {
|
||||
exitWithError(err)
|
||||
}
|
||||
|
||||
cdata := bytes.NewBuffer([]byte{})
|
||||
wcdata, err := flate.NewWriter(cdata, flate.BestCompression)
|
||||
wcdata, err := flate.NewWriter(&cdata, flate.BestCompression)
|
||||
if err != nil {
|
||||
fmt.Fprintln(os.Stderr, err)
|
||||
os.Exit(1)
|
||||
exitWithError(err)
|
||||
}
|
||||
wcdata.Write(data.Bytes())
|
||||
wcdata.Close()
|
||||
|
||||
_, err = wcdata.Write(data.Bytes())
|
||||
if err != nil {
|
||||
fmt.Fprintln(os.Stderr, err)
|
||||
os.Exit(1)
|
||||
exitWithError(err)
|
||||
}
|
||||
|
||||
err = wcdata.Close()
|
||||
if err != nil {
|
||||
exitWithError(err)
|
||||
}
|
||||
|
||||
t := time.Now()
|
||||
return &ImageData{
|
||||
&zip.FileHeader{
|
||||
|
Loading…
x
Reference in New Issue
Block a user