From c63235cd3d654415c800ce222d97b99a0d8445e4 Mon Sep 17 00:00:00 2001 From: Julien Neuhart Date: Sat, 23 Mar 2024 16:40:05 +0100 Subject: [PATCH] feat(exiftool): handle boolean metadata --- pkg/modules/exiftool/exiftool.go | 6 ++++-- pkg/modules/exiftool/exiftool_test.go | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/pkg/modules/exiftool/exiftool.go b/pkg/modules/exiftool/exiftool.go index 2191e7c8..13ed02b8 100644 --- a/pkg/modules/exiftool/exiftool.go +++ b/pkg/modules/exiftool/exiftool.go @@ -107,6 +107,10 @@ func (engine *ExifTool) WriteMetadata(ctx context.Context, logger *zap.Logger, m switch val := value.(type) { case string: fileMetadata[0].SetString(key, val) + case []string: + fileMetadata[0].SetStrings(key, val) + case bool: + fileMetadata[0].SetString(key, fmt.Sprintf("%t", val)) case int: fileMetadata[0].SetInt(key, int64(val)) case int64: @@ -115,8 +119,6 @@ func (engine *ExifTool) WriteMetadata(ctx context.Context, logger *zap.Logger, m fileMetadata[0].SetFloat(key, float64(val)) case float64: fileMetadata[0].SetFloat(key, val) - case []string: - fileMetadata[0].SetStrings(key, val) // TODO: support more complex cases, e.g., arrays and nested objects // (limitations in underlying library). default: diff --git a/pkg/modules/exiftool/exiftool_test.go b/pkg/modules/exiftool/exiftool_test.go index ebbc0865..96f3eeab 100644 --- a/pkg/modules/exiftool/exiftool_test.go +++ b/pkg/modules/exiftool/exiftool_test.go @@ -184,7 +184,7 @@ func TestExiftool_WriteMetadata(t *testing.T) { "first", "second", }, - "Marked": "true", + "Marked": true, "ModDate": "2006-09-18T16:27:50-04:00", "PDFVersion": 1.7, "Producer": "Gotenberg",