summaryrefslogtreecommitdiff
diff options
from:
to:
context:
space:
mode:
-rw-r--r--config/config.go6
-rw-r--r--config/config.json2
-rw-r--r--internal/converter/processor_interface.go (renamed from internal/processor/processor_interface.go)4
-rw-r--r--internal/converter/webp.go (renamed from internal/processor/webp.go)16
-rw-r--r--main.go20
5 files changed, 26 insertions, 22 deletions
diff --git a/config/config.go b/config/config.go
index 66533a6..3ca8f84 100644
--- a/config/config.go
+++ b/config/config.go
@@ -11,7 +11,7 @@ import (
type Config struct {
Input InputConfig `json:"Input" validate:"required"`
- Processor ProcessorConfig `json:"Processor" validate:"required"`
+ Converter ConverterConfig `json:"Converter" validate:"required"`
Output OutputConfig `json:"Output" validate:"required"`
MaxConcurrentJobs int `json:"MaxConcurrentJobs" validate:"required,min=1"`
ForceRewrite bool `json:"ForceRewrite" validate:"required"`
@@ -72,12 +72,12 @@ type LocalConfig struct {
Path string `json:"Path" validate:"required,min=1"`
}
-type ProcessorConfig struct {
+type ConverterConfig struct {
Type string `json:"Type" validate:"required,oneof=webp"`
Config any `json:"Config" validate:"required"`
}
-func (pc *ProcessorConfig) UnmarshalJSON(data []byte) error {
+func (pc *ConverterConfig) UnmarshalJSON(data []byte) error {
var tmp struct {
Type string `json:"Type"`
Config json.RawMessage `json:"Config"`
diff --git a/config/config.json b/config/config.json
index acf3e02..db4ddd4 100644
--- a/config/config.json
+++ b/config/config.json
@@ -19,7 +19,7 @@
"png"
]
},
- "Processor": {
+ "Converter": {
"Type": "webp",
"Config": {
"Quality": 80,
diff --git a/internal/processor/processor_interface.go b/internal/converter/processor_interface.go
index 7cf20f2..88b5ac3 100644
--- a/internal/processor/processor_interface.go
+++ b/internal/converter/processor_interface.go
@@ -1,8 +1,8 @@
-package processor
+package converter
import "io"
-type Processor interface {
+type Converter interface {
DeductOutputPath(inputPath string) string
Process(ext string, reader io.ReadCloser, writer io.WriteCloser) error
}
diff --git a/internal/processor/webp.go b/internal/converter/webp.go
index 86ff567..b7f1216 100644
--- a/internal/processor/webp.go
+++ b/internal/converter/webp.go
@@ -1,4 +1,4 @@
-package processor
+package converter
import (
"fmt"
@@ -16,24 +16,24 @@ import (
"github.com/kolesa-team/go-webp/webp"
)
-var _ Processor = (*WebpProcessor)(nil)
+var _ Converter = (*WebpConverter)(nil)
-type WebpProcessor struct {
+type WebpConverter struct {
maxWidth int
maxHeight int
quality int
}
-func NewWebpProcessor(cfg *config.ProcessorConfig) (*WebpProcessor, error) {
+func NewWebpConverter(cfg *config.ConverterConfig) (*WebpConverter, error) {
if cfg.Type != "webp" {
- return nil, fmt.Errorf("invalid storage type for WebpProcessor")
+ return nil, fmt.Errorf("invalid storage type for WebpConverter")
}
webpCfg := cfg.Config.(*config.WebpConfig)
- return &WebpProcessor{webpCfg.Size.MaxWidth, webpCfg.Size.MaxHeight, webpCfg.Quality}, nil
+ return &WebpConverter{webpCfg.Size.MaxWidth, webpCfg.Size.MaxHeight, webpCfg.Quality}, nil
}
-func (p *WebpProcessor) DeductOutputPath(inputPath string) string {
+func (p *WebpConverter) DeductOutputPath(inputPath string) string {
pathParts := strings.Split(inputPath, ".")
if len(pathParts) < 2 {
return inputPath + ".webp"
@@ -42,7 +42,7 @@ func (p *WebpProcessor) DeductOutputPath(inputPath string) string {
return strings.Join(pathParts, ".")
}
-func (p *WebpProcessor) Process(contentType string, reader io.ReadCloser, writer io.WriteCloser) error {
+func (p *WebpConverter) Process(contentType string, reader io.ReadCloser, writer io.WriteCloser) error {
var src image.Image
var err error
diff --git a/main.go b/main.go
index 32ff634..16523fd 100644
--- a/main.go
+++ b/main.go
@@ -11,7 +11,7 @@ import (
"github.com/SayaAndy/saya-today-thumbnail-generator/config"
"github.com/SayaAndy/saya-today-thumbnail-generator/internal/client/input"
"github.com/SayaAndy/saya-today-thumbnail-generator/internal/client/output"
- "github.com/SayaAndy/saya-today-thumbnail-generator/internal/processor"
+ "github.com/SayaAndy/saya-today-thumbnail-generator/internal/converter"
)
var (
@@ -20,6 +20,7 @@ var (
)
func main() {
+ var err error
signal.Notify(sigTermChan, os.Interrupt, syscall.SIGTERM)
flag.Parse()
@@ -40,19 +41,22 @@ func main() {
default:
}
- inputClient, err := input.NewB2InputClient(&cfg.Input)
+ var inputClient input.InputClient
+ inputClient, err = input.NewB2InputClient(&cfg.Input)
if err != nil {
slog.Error("fail to initialize input client", slog.String("error", err.Error()))
os.Exit(1)
}
- outputClient, err := output.NewB2OutputClient(&cfg.Output)
+ var outputClient output.OutputClient
+ outputClient, err = output.NewB2OutputClient(&cfg.Output)
if err != nil {
slog.Error("fail to initialize output client", slog.String("error", err.Error()))
os.Exit(1)
}
- converter, err := processor.NewWebpProcessor(&cfg.Processor)
+ var conv converter.Converter
+ conv, err = converter.NewWebpConverter(&cfg.Converter)
if err != nil {
slog.Error("fail to initialize converter", slog.String("error", err.Error()))
os.Exit(1)
@@ -60,10 +64,10 @@ func main() {
generalLogger := slog.With(
slog.String("input_storage", cfg.Input.Storage.Type),
- slog.String("processor_type", cfg.Processor.Type),
+ slog.String("converter_type", cfg.Converter.Type),
slog.String("output_storage", cfg.Output.Storage.Type),
)
- generalLogger.Info("initialized clients and processor")
+ generalLogger.Info("initialized clients and converter")
select {
case <-sigTermChan:
@@ -92,7 +96,7 @@ func main() {
for i, file := range files {
go func(index int, inputName string) {
- outputName := converter.DeductOutputPath(inputName)
+ outputName := conv.DeductOutputPath(inputName)
fileLogger := generalLogger.With(slog.String("input_path", inputName), slog.String("output_path", outputName), slog.Int("file_index", index))
threadSigTermChannel := make(chan os.Signal, 1)
@@ -139,7 +143,7 @@ func main() {
return
}
- if err := converter.Process(inputMetadata.ContentType, reader, writer); err != nil {
+ if err := conv.Process(inputMetadata.ContentType, reader, writer); err != nil {
fileLogger.Warn("fail to convert file", slog.String("error", err.Error()))
return
}