mirror of
https://github.com/celogeek/go-comic-converter.git
synced 2025-05-25 16:22: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 {
|
func New(options *Options) *ePub {
|
||||||
uid, err := uuid.NewV4()
|
uid := uuid.Must(uuid.NewV4())
|
||||||
if err != nil {
|
|
||||||
fmt.Fprintln(os.Stderr, err)
|
|
||||||
os.Exit(1)
|
|
||||||
}
|
|
||||||
|
|
||||||
tmpl := template.New("parser")
|
tmpl := template.New("parser")
|
||||||
tmpl.Funcs(template.FuncMap{
|
tmpl.Funcs(template.FuncMap{
|
||||||
"mod": func(i, j int) bool { return i%j == 0 },
|
"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 {
|
func (e *ePub) render(templateString string, data any) string {
|
||||||
tmpl, err := e.templateProcessor.Parse(templateString)
|
var result strings.Builder
|
||||||
if err != nil {
|
tmpl := template.Must(e.templateProcessor.Parse(templateString))
|
||||||
fmt.Fprintln(os.Stderr, err)
|
if err := tmpl.Execute(&result, data); err != nil {
|
||||||
os.Exit(1)
|
panic(err)
|
||||||
}
|
}
|
||||||
result := &strings.Builder{}
|
return regexp.MustCompile("\n+").ReplaceAllString(result.String(), "\n")
|
||||||
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")
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (e *ePub) writeImage(wz *epubzip.EpubZip, img *epubimage.Image) error {
|
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))
|
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 {
|
func New(id int, part int, img image.Image, quality int) *ImageData {
|
||||||
name := fmt.Sprintf("OEBPS/Images/%d_p%d.jpg", id, part)
|
name := fmt.Sprintf("OEBPS/Images/%d_p%d.jpg", id, part)
|
||||||
return NewRaw(name, img, quality)
|
return NewRaw(name, img, quality)
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewRaw(name string, img image.Image, quality int) *ImageData {
|
func NewRaw(name string, img image.Image, quality int) *ImageData {
|
||||||
data := bytes.NewBuffer([]byte{})
|
var (
|
||||||
if err := jpeg.Encode(data, img, &jpeg.Options{Quality: quality}); err != nil {
|
data, cdata bytes.Buffer
|
||||||
fmt.Fprintln(os.Stderr, err)
|
err error
|
||||||
os.Exit(1)
|
)
|
||||||
|
|
||||||
|
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 {
|
if err != nil {
|
||||||
fmt.Fprintln(os.Stderr, err)
|
exitWithError(err)
|
||||||
os.Exit(1)
|
|
||||||
}
|
}
|
||||||
wcdata.Write(data.Bytes())
|
|
||||||
wcdata.Close()
|
_, err = wcdata.Write(data.Bytes())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Fprintln(os.Stderr, err)
|
exitWithError(err)
|
||||||
os.Exit(1)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
err = wcdata.Close()
|
||||||
|
if err != nil {
|
||||||
|
exitWithError(err)
|
||||||
|
}
|
||||||
|
|
||||||
t := time.Now()
|
t := time.Now()
|
||||||
return &ImageData{
|
return &ImageData{
|
||||||
&zip.FileHeader{
|
&zip.FileHeader{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user