From 1713041e14a8640bb5e86248931af70b097c2653 Mon Sep 17 00:00:00 2001 From: Christian Richter Date: Thu, 23 Nov 2023 17:26:15 +0100 Subject: [PATCH] Add skel for preview generator for ggs Co-authored-by: Ralf Haferkamp Signed-off-by: Christian Richter --- .../app-registry/pkg/config/defaults/defaultconfig.go | 6 ++++++ services/thumbnails/pkg/thumbnail/encoding.go | 3 +++ services/thumbnails/pkg/thumbnail/generator.go | 10 ++++++++++ services/web/pkg/config/defaults/defaultconfig.go | 3 +-- 4 files changed, 20 insertions(+), 2 deletions(-) diff --git a/services/app-registry/pkg/config/defaults/defaultconfig.go b/services/app-registry/pkg/config/defaults/defaultconfig.go index 121ea6eeb8..1c51f77c7f 100644 --- a/services/app-registry/pkg/config/defaults/defaultconfig.go +++ b/services/app-registry/pkg/config/defaults/defaultconfig.go @@ -111,6 +111,12 @@ func defaultMimeTypeConfig() []config.MimeTypeConfig { Name: "Compressed markdown file", Description: "Compressed markdown file", }, + { + MimeType: "application/vnd.geogebra.slides", + Extension: "ggs", + Name: "GeoGebra Slides", + Description: "GeoGebra Slides", + }, } } diff --git a/services/thumbnails/pkg/thumbnail/encoding.go b/services/thumbnails/pkg/thumbnail/encoding.go index 96f7107443..af7fd349b0 100644 --- a/services/thumbnails/pkg/thumbnail/encoding.go +++ b/services/thumbnails/pkg/thumbnail/encoding.go @@ -15,6 +15,7 @@ const ( typeJpg = "jpg" typeJpeg = "jpeg" typeGif = "gif" + typeGgs = "ggs" ) var ( @@ -119,6 +120,8 @@ func GetExtForMime(fileType string) string { switch ext { case typeJpg, typeJpeg, typePng, typeGif: return ext + case "application/vnd.geogebra.slides": + return typeGgs default: return "" } diff --git a/services/thumbnails/pkg/thumbnail/generator.go b/services/thumbnails/pkg/thumbnail/generator.go index e8d967c4eb..8ae2d3a726 100644 --- a/services/thumbnails/pkg/thumbnail/generator.go +++ b/services/thumbnails/pkg/thumbnail/generator.go @@ -71,6 +71,14 @@ func (g GifGenerator) imageToPaletted(img image.Image, p color.Palette) *image.P return pm } +// GgsGenerator is used to create a web friendly version of the provided ggs image. +type GgsGenerator struct{} + +func (g GgsGenerator) Generate(size image.Rectangle, img interface{}, processor Processor) (interface{}, error) { + // TODO: write zip extractor, get image from zip, process image, return image + return nil, nil +} + // GeneratorForType returns the generator for a given file type // or nil if the type is not supported. func GeneratorForType(fileType string) (Generator, error) { @@ -79,6 +87,8 @@ func GeneratorForType(fileType string) (Generator, error) { return SimpleGenerator{}, nil case typeGif: return GifGenerator{}, nil + case typeGgs: + return GgsGenerator{}, nil default: return nil, ErrNoEncoderForType } diff --git a/services/web/pkg/config/defaults/defaultconfig.go b/services/web/pkg/config/defaults/defaultconfig.go index e50e7484f3..f8d620f24f 100644 --- a/services/web/pkg/config/defaults/defaultconfig.go +++ b/services/web/pkg/config/defaults/defaultconfig.go @@ -106,14 +106,13 @@ func DefaultConfig() *config.Config { "image/tiff", "image/bmp", "image/x-ms-bmp", - "application/vnd.geogebra.slides", }, }, }, }, Options: config.Options{ ContextHelpersReadMore: true, - PreviewFileMimeTypes: []string{"image/gif", "image/png", "image/jpeg", "text/plain", "image/tiff", "image/bmp", "image/x-ms-bmp"}, + PreviewFileMimeTypes: []string{"image/gif", "image/png", "image/jpeg", "text/plain", "image/tiff", "image/bmp", "image/x-ms-bmp", "application/vnd.geogebra.slides"}, SharingRecipientsPerPage: 200, AccountEditLink: &config.AccountEditLink{}, Editor: &config.Editor{},