package main
import (
_ "embed"
"encoding/base64"
"fmt"
"log"
"os"
"path/filepath"
"strings"
"time"
)
//go:embed web/overlay.html
var overlayHTML string
//go:embed web/themes/aurora.html
var themeAurora string
//go:embed web/themes/starfield.html
var themeStarfield string
//go:embed web/themes/gradient.html
var themeGradient string
//go:embed web/themes/particles.html
var themeParticles string
var themeMap = map[ThemeName]string{
ThemeAurora: themeAurora,
ThemeStar: themeStarfield,
ThemeGradient: themeGradient,
ThemeParticle: themeParticles,
}
func buildWallpaperHTML(cfg *Config) string {
var bg string
switch cfg.WallpaperType {
case WPTheme:
if t, ok := themeMap[cfg.Theme]; ok {
bg = t
} else {
bg = themeAurora
}
case WPImage:
if cfg.ImagePath != "" {
src := imageToDataURI(cfg.ImagePath)
if src != "" {
bg = fmt.Sprintf(``, src)
}
}
case WPBing:
bingPath := filepath.Join(configDir(), "bing_wallpaper.jpg")
if _, err := os.Stat(bingPath); err == nil {
src := imageToDataURI(bingPath)
if src != "" {
bg = fmt.Sprintf(`
`, src)
}
}
case WPColor:
if cfg.ColorGradient && cfg.Color2 != "" {
bg = fmt.Sprintf(`