summaryrefslogtreecommitdiff
path: root/internal/converter/converter_interface.go
diff refs
from: back
to: back
| flip
diff options
context:
space:
mode:
Diffstat (limited to 'internal/converter/converter_interface.go')
-rw-r--r--internal/converter/converter_interface.go21
1 files changed, 21 insertions, 0 deletions
diff --git a/internal/converter/converter_interface.go b/internal/converter/converter_interface.go
new file mode 100644
index 0000000..abff99d
--- /dev/null
+++ b/internal/converter/converter_interface.go
@@ -0,0 +1,21 @@
+package converter
+
+import (
+ "io"
+
+ "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"
+)
+
+type Converter interface {
+ Process(inputMetadata *input.MetadataStruct, reader io.Reader, outputName string) error
+ DeductOutputPath(inputPath string) string
+ ReadMetadata(path string) (*output.MetadataStruct, error)
+ IsMissing(path string) bool
+}
+
+var NewConverterMap = map[string]func(cfg *config.ConverterConfig) (Converter, error){
+ "webp": NewWebpConverter,
+ "jpeg": NewJpegConverter,
+}