feat: add image sniffer
This commit is contained in:
@ -2,6 +2,7 @@ package main
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"context"
|
||||
"errors"
|
||||
"fmt"
|
||||
"io"
|
||||
@ -208,6 +209,25 @@ func tryDecFile(inputFile string, outputDir string, allDec []common.NewDecoderFu
|
||||
return err
|
||||
}
|
||||
|
||||
if coverGetter, ok := dec.(common.CoverImageGetter); ok {
|
||||
ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
|
||||
defer cancel()
|
||||
|
||||
cover, err := coverGetter.GetCoverImage(ctx)
|
||||
if err != nil {
|
||||
logger.Warn("get cover image failed", zap.Error(err))
|
||||
} else if imgExt, ok := sniff.ImageExtension(cover); !ok {
|
||||
logger.Warn("sniff cover image type failed", zap.Error(err))
|
||||
} else {
|
||||
coverPath := filepath.Join(outputDir, inFilename+imgExt)
|
||||
err = os.WriteFile(coverPath, cover, 0644)
|
||||
if err != nil {
|
||||
logger.Warn("write cover image failed", zap.Error(err))
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// if source file need to be removed
|
||||
if removeSource {
|
||||
err := os.RemoveAll(inputFile)
|
||||
|
Reference in New Issue
Block a user