diff --git a/services/templater.go b/services/templater.go index 103123b..d865990 100644 --- a/services/templater.go +++ b/services/templater.go @@ -82,12 +82,11 @@ func (t *DefaultTemplater) GenerateBarcode(code string, format string, prefix st } func (t *DefaultTemplater) SelectSponsorImage(id int) (string, error) { - sponsors := []string{ - "vrbank", - "odit", - "sparkasse", + sponsors, err := ListFilesInStaticSubFolder("images/sponsors") + if err != nil { + return "", err } - return GetImage(sponsors[id%len(sponsors)]), nil + return GetImage("sponsors/" + strings.TrimSuffix(sponsors[id%len(sponsors)], ".base64")), nil } func (t *DefaultTemplater) LoadImage(name string) (string, error) { diff --git a/services/templates.go b/services/templates.go index 0fe9e4b..d318371 100644 --- a/services/templates.go +++ b/services/templates.go @@ -16,6 +16,22 @@ func GetTemplate(locale, templateName string) (string, error) { return string(content), nil } +func ListFilesInStaticSubFolder(folderName string) ([]string, error) { + files, err := os.ReadDir(fmt.Sprintf("static/%s", folderName)) + if err != nil { + log.Printf("error reading files from folder %s: %v", folderName, err) + return nil, err + } + var images []string + for _, file := range files { + if file.IsDir() { + continue + } + images = append(images, file.Name()) + } + return images, nil +} + func GetImage(imageName string) string { content, err := os.ReadFile("static/images/" + imageName + ".base64") if content == nil || err != nil { diff --git a/static/images/odit.base64 b/static/images/sponsors/odit.base64 similarity index 100% rename from static/images/odit.base64 rename to static/images/sponsors/odit.base64 diff --git a/static/images/sparkasse.base64 b/static/images/sponsors/sparkasse.base64 similarity index 100% rename from static/images/sparkasse.base64 rename to static/images/sponsors/sparkasse.base64 diff --git a/static/images/vrbank.base64 b/static/images/sponsors/vrbank.base64 similarity index 100% rename from static/images/vrbank.base64 rename to static/images/sponsors/vrbank.base64